Я создаю doctype для файлов XML, с которыми я работаю, чтобы упростить их проверку. Тем не менее, я хотел бы выразить что-то, и я не знаю, как.
У меня есть <test>
элементов. Эти элементы могут иметь до одного тега <description>
, но должны иметь 1+ <node>
дочерний элемент и любое количество тегов <argument>
. Однако я бы хотел, чтобы можно было указывать их в произвольном порядке. Например, этот фрагмент:
<test>
<node>foo</node>
<argument>baz</argument>
<description>bar</description>
</test>
должно быть действительным <test>
представлением.
Первый очевидный ответ, который мне пришёл в голову, был такой:
<!ELEMENT test (description?, node+, argument*)>
но я понимаю, что оператор запятой потребует, чтобы элементы присутствовали в точном порядке, в котором они указаны .
Как я могу создать тип документа, который не будет соответствовать этому требованию?