Единственная проблема с принятым в настоящее время ответом состоит в том, что он не заставляет использовать только один элемент в любом порядке.Например, вы можете иметь 2 eltype2
элементов и не eltype3
элементов.
Если вам необходимо убедиться, что оба элемента присутствуют и каждый из них встречается только один раз, это более точное объявление элемента:
<!ELEMENT eltype1 ((eltype2, eltype3)|(eltype3, eltype2))>
Пример во внутреннем подмножестве:
<!DOCTYPE eltype1 [
<!ELEMENT eltype1 ((eltype2, eltype3)|(eltype3, eltype2))>
<!ELEMENT eltype2 (#PCDATA)>
<!ELEMENT eltype3 (#PCDATA)>
]>
<eltype1>
<eltype3>element three</eltype3>
<eltype2>element two</eltype2>
</eltype1>