xsd自定义十进制类型定义,而不是零

时间:2014-08-19 10:35:56

标签: xsd decimal restriction

我想定义一个XSD类型,它是十进制(正数或负数)但不能为零。我该怎么办?

这是定义的主体:

<simpleType name="grossValueType">
<restriction base="decimal">
<!-- What put here? -->
</restriction>
</simpleType>

1 个答案:

答案 0 :(得分:3)

定义两个类型,negativeDecimals和positiveDecimals,然后将它们组合在一起以获得你想要的东西:

<xs:simpleType name="negativeDecimals">
    <xs:restriction base="xs:decimal">
        <xs:maxExclusive value="0"/>
    </xs:restriction>
</xs:simpleType>

<xs:simpleType name="positiveDecimals">
    <xs:restriction base="xs:decimal">
        <xs:minExclusive value="0"/>
    </xs:restriction>
</xs:simpleType>

<xs:element name="measure">
    <xs:simpleType>
            <xs:union memberTypes="negativeDecimals positiveDecimals"/>
    </xs:simpleType>
</xs:element>

由于基本类型都不能接受0,因此该值是非法的;所有其他小数值都是合法的。

相关问题