Может ли в документе схемы XML указываться, что два элемента должны совместно встречаться?
Например, есть два необязательных элемента, и они либо присутствуют, либо оба отсутствуют.
a b? c d? e # giving only {ace, abcde}
# instead of all combinations: {ace, acde, abce, abcde}
<element name="root">
<complexType>
<sequence>
<element ref="a"/>
<element ref="b" minOccurs="0"/>
<element ref="c"/>
<element ref="d" minOccurs="0"/>
<element ref="e"/>
<sequence>
<complexType>
<element>
Другой пример: есть два повторяющихся элемента и что, сколько раз первый встречается, второй также встречается много раз:
a b^n c d^n e # where ^n is a superscript denoting number of repeats
# giving {ace, abcde, abbcdde, abbbcddde, ...}
# but no other combinations
<element name="root">
<complexType>
<sequence>
<element ref="a"/>
<element ref="b" minOccurs="0" maxOccurs="unbounded"/>
<element ref="c"/>
<element ref="d" minOccurs="0" maxOccurs="unbounded"/>
<element ref="e"/>
<sequence>
<complexType>
<element>
Возможно, что-то есть в ограничениях идентичности в спецификации XML-схемы, но, похоже, речь идет о получении точно одного экземпляра с определенной характеристикой, а не о том, что два имеют одинаковую характеристику.