在xml中混合mininclusive和枚举

时间:2014-12-22 06:31:23

标签: xml xsd

我有一个xml元素,其值范围是(本质上)1-20所以我可以使用: minInclusive=1maxInclusive=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>

1 个答案:

答案 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>