Я хочу иметь список необходимых элементов в любом порядке, определенном в дате, но понятия не иметь, как я мог сделать это.
Например, у меня есть следующее определение:
<!ELEMENT parent (child1, child2, child3)>
Это объявление даты успешно проверит следующую часть xml:
<parent>
<child1></child1>
<child2></child2>
<child3></child3>
</parent>
Но в следующем случае xml не передаст проверку:
<parent>
<child2></child2>
<child1></child1>
<child3></child3>
</parent>
Одно из возможного решения состоит в том, чтобы объявить
<!ELEMENT parent (child1 | child2 | child3)>
Но в этом случае один из childs мог бы отсутствовать, хотя проверка будет успешна.
Я должен исправить объявление элемента даты для случая, когда список необходимых элементов может присутствовать в любом порядке.
Читая спецификацию можно сделать вывод, что нельзя.
Когда дочерние элементы объявляются в последовательности, разделенной запятыми, они должны появляться в той же последовательности в документе. В полном объявлении дочерние элементы также должны быть объявлены, и дочерние элементы также могут иметь детей.
Я думаю, это потому, что вы объявляете последовательность (или упорядоченный список, если хотите), а не коллекцию (или неупорядоченный список).