Дублируйте некоторые части XML, не переписывая их

У меня есть файл 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?


person Jeremy Pare    schedule 04.05.2018    source источник
comment
Если вы знаете, как использовать XSLT, скорее всего, это ваш ответ. Однако XSLT не для слабонервных.   -  person Display name    schedule 04.05.2018
comment
Я думаю, вам нужно использовать цикл. Возможно, это может помочь: stackoverflow.com/questions/3462418/   -  person Gabrielė    schedule 04.05.2018


Ответы (1)


Для этого вы можете использовать "сущности" SGML/XML, которые могут содержать замещающий текст или разметку для повторного использования в нескольких местах:

<!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.

См. также Наследование конфигурации XML, избегайте дублирования

person imhotap    schedule 04.05.2018