复制 XML 的某些部分而不重写它们

Duplicate some parts of XML without rewriting them

我有一个包含重复部分的 XML 文件,例如:

<argument name="create">
    <argument name="user" type="text"></argument>
    <argument name="password" type="password"></argument>
    (and so on)
</argument>

<argument name="update">
    <argument name="user" type="text"></argument>
    <argument name="password" type="password"></argument>
    (and so on)
</argument>

我希望将创建和更新之间的部分声明一次,然后使用单行将其附加到创建和更新之间。这会为我节省很多行。

在 XML 中有什么方法可以做到这一点?

您可以为此使用 SGML/XML"entities",它可以包含替换文本或标记以便在多个地方重复使用:

<!DOCTYPE arguments [
  <!ENTITY user-and-password
   '<argument name="user" type="text"/>
    <argument name="password" type="password"/>'>
]>
<arguments>
  <argument name="create">
    &user-and-password;
  </argument>
  <argument name="update">
    &user-and-password;
  </argument>
</arguments>

请注意,您必须调整 DOCTYPE:它必须与您 XML 的文档元素相匹配。

另见