xml架构约束整数增量

时间:2016-09-01 07:03:51

标签: xml xsd integer constraints schema

我想编写一个带有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等。

我怎样才能实现这一目标?

2 个答案:

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

未经测试。