2015-01-14 6 views
1

Можно ли ограничить комбинацию значений атрибутов в XML-схеме? У меня есть тег с двумя атрибутами, и я хотел бы разрешить некоторые комбинации их значений. Например. если атрибут_1 имеет значение «А», тогда атрибут_2 не должен иметь значение «В».Ограничить значения атрибутов в XML-схеме

+0

Связанный: http://stackoverflow.com/questions/19734733/xml-schema-restricting-the-value-type-of-an-attirbute-based-on-the-ty-of-anot?rq=1 – Thilo

ответ

2

В XSD 1.1 вы можете использовать assertions. Что-то вроде (непроверенные):

<xs:element name="SomeType"> 
    <xs:complexType> 
    <xs:attribute name="attribute_1" type="xs:string"> 
    <xs:attribute name="attribute_2" type="xs:string"/> 
    <xs:assert test="if (@attribute_1 = 'A') then @attribute_2 != 'B' else true()"/> 
    </xs:complexType> 
</xs:element> 

Другие примеры here.

Смежные вопросы