При использовании XML Schema 1.1 я хотел бы определить группу атрибутов, которая встречается полностью вместе, то есть все атрибуты в attributeGroup либо присутствуют, либо отсутствуют. В следующем примере я бы хотел, чтобы в <anelement>
присутствовали оба атрибута (attr_one
и attr_two
) или не было ни одного атрибута, а не только один атрибут.
<attributeGroup name="attrgroup">
<attribute name="attr_one" />
<attribute name="attr_one" />
</attributeGroup>
<element name="anelement">
<complexType>
<attributeGroup ref="attrgroup" />
</complexType>
</element>
Насколько я понимаю, XML Schema 1.0 не может задавать эти отношения атрибутов (правильно?). Как лучше всего указать их в XSD 1.1? Я полагаю, что могу использовать assert
для указания отношения, что-то вроде следующего:
<element name="anelement">
<complexType>
<attributeGroup ref="attrgroup" />
<assert test="(@attr_one and @attr_two) or not(@attr_one or @attr_two)" />
</complexType>
</element>
Но я надеялся, что в 1.1 было добавлено что-то, что позволило бы мне определить отношения, используя существующий язык, например атрибут use
для attributeGroup
с. Каков наилучший способ указать это отношение в XML-схеме 1.1?