Как добавить ограничение в атрибут с ограничениями в XSD

Мое требование таково: мне нужно проверить xml, в котором есть элемент "Term" и его атрибуты, такие как termType, ValueName, Value. Мне нужно добавить ограничение для termType, чтобы при получении значения атрибута termType в качестве "выражения" значение ValueName должно быть только IF, ELSE или THEN, а если значение valueName равно "IF", значение должно быть "1". только. Как мне этого добиться?

XML выглядит так:

<Term termType="Input" value="97397D89-C044-47CC-8153-267CBBE71D29" valueName="PolicyType"/>
**<Term termType="expression" value="1" valueName="IF"/>**
<Term termType="mask" value="" valueName=""/>

Соответствующий XSD, который я пробовал:

<xs:simpleType name="termType">
 <xs:restriction base="xs:string">
              <xs:enumeration value="expression" />...
 </xs:restriction>
</xs:simpleType>
<xs:complexType name="TermType">
 <xs:attribute name="termType" use="required" type="termType" />
 <xs:attribute name="value" use="required" type="xs:string" />
 <xs:attribute name="valueName" use="required" type="xs:string" />
</xs:complexType>

1 ответ

Этот вид условного ограничения является довольно распространенным требованием, но не поддерживается XSD.

Другие вопросы по тегам