我想定义一个XSD类型,它是十进制(正数或负数)但不能为零。我该怎么办?
这是定义的主体:
<simpleType name="grossValueType">
<restriction base="decimal">
<!-- What put here? -->
</restriction>
</simpleType>
答案 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,因此该值是非法的;所有其他小数值都是合法的。