我需要对一个整数进行限制,该整数可以取1到48之间的值,但也可以取单个值63.可以这样做吗?
我知道以下内容会处理第一个限制,但如何在列表中添加63?
<xs:simpleType name="nameId">
<xs:element name="id">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="48"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:simpleType>
答案 0 :(得分:2)
定义两种类型:一种允许1-48范围内的整数,另一种只允许整数64;然后定义一个这两个联合的类型。
或者在XSD 1.1中,只需定义一个用facet
限制xs:integer的类型 <assert test="$value=(1 to 48, 64)"/>
答案 1 :(得分:0)
您可以使用RegEx而不是使用整数基数吗?
例如,这几乎可以工作,但它有一个警告......
<xs:simpleType name="nameId">
<xs:element name="id">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([1-4]{1}\d|63)"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:simpleType>
希望这有帮助
答案 2 :(得分:0)
在您的情况下,您可以简单地使用包含所需值的枚举,并将base作为整数
<xs:restriction base="xs:integer">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:enumeration value="6"/>
<xs:enumeration value="7"/>
<xs:enumeration value="8"/>
<xs:enumeration value="9"/>
<xs:enumeration value="10"/>
<xs:enumeration value="11"/>
<xs:enumeration value="12"/>
<xs:enumeration value="13"/>
<xs:enumeration value="14"/>
<xs:enumeration value="15"/>
<xs:enumeration value="16"/>
<xs:enumeration value="17"/>
<xs:enumeration value="18"/>
<xs:enumeration value="19"/>
<xs:enumeration value="20"/>
<xs:enumeration value="21"/>
<xs:enumeration value="22"/>
<xs:enumeration value="23"/>
<xs:enumeration value="24"/>
<xs:enumeration value="25"/>
<xs:enumeration value="26"/>
<xs:enumeration value="27"/>
<xs:enumeration value="28"/>
<xs:enumeration value="29"/>
<xs:enumeration value="30"/>
<xs:enumeration value="31"/>
<xs:enumeration value="32"/>
<xs:enumeration value="33"/>
<xs:enumeration value="34"/>
<xs:enumeration value="36"/>
<xs:enumeration value="36"/>
<xs:enumeration value="37"/>
<xs:enumeration value="38"/>
<xs:enumeration value="39"/>
<xs:enumeration value="40"/>
<xs:enumeration value="41"/>
<xs:enumeration value="42"/>
<xs:enumeration value="43"/>
<xs:enumeration value="44"/>
<xs:enumeration value="45"/>
<xs:enumeration value="46"/>
<xs:enumeration value="47"/>
<xs:enumeration value="48"/>
<xs:enumeration value="63"/>
</xs:restriction>