我有一个xml元素,其值范围是(本质上)1-20所以我可以使用:
minInclusive=1
和maxInclusive=20
限制内在集合。
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="20"/>
</xs:restriction>
但是,我还希望能够设置一个具有特定含义的外在值-4:«未知»
这可能吗?那就是:1-20&amp; -4(不是-4-20)。
我以为我可以通过添加枚举值= -4来逃避但这似乎不起作用。
<xs:restriction base="xs:integer">
<xs:enumeration value="-4"/>
<xs:minInclusive value="1"/>
<xs:maxInclusive value="20"/>
</xs:restriction>
答案 0 :(得分:4)
我认为你需要的是xs:union
,它允许你将两种限制类型加在一起,例如。
<xs:simpleType name="numbersOnetoTwenty">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="20"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="justMinusFour">
<xs:restriction base="xs:integer">
<xs:enumeration value="-4"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="mySet">
<xs:union memberTypes="numbersOnetoTwenty justMinusFour" />
</xs:simpleType>