如何在XSD中为受限属性添加限制

时间:2012-04-26 06:09:52

标签: attributes for-loop xsd restrictions

我的要求是: 我需要验证一个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 个答案:

答案 0 :(得分:0)

这种条件限制是一个相当常见的要求,但XSD不支持。