我想编写一个带有intgegers约束的XML Schema。整数只应在有一定增量的情况下有效。
基本元素可能是这样的:
<xs:element name="MotorFrequency">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1" />
<xs:maxInclusive value="2000000" />
</xs:restriction>
</xs:simpleType>
</xs:element>
我需要一个约束,只允许4000增量的整数,如4000,8000,12000等。
我怎样才能实现这一目标?
答案 0 :(得分:0)
仅限XSD 1.1 ,您可以使用<xs:assertion>
:
<xs:element name="MotorFrequency">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1" />
<xs:maxInclusive value="2000000" />
<xs:assertion test="($value mod 4000) = 0"></xs:assertion>
</xs:restriction>
</xs:simpleType>
</xs:element>
这样,如果断言失败,将会引发错误。
答案 1 :(得分:0)
如果您坚持使用XSD 1.0,那么您可以编写正则表达式
value="[0-9]*(([02468][048])|([13579][26])000"
未经测试。