Xml 如何在XSD中设置货币限制?
我有一个关于XSD的问题 假设我的货币是500美元 如何设置值应在$0.00至$1000.00范围内的限制 我不能直接使用xsd:float,因为前面有美元符号Xml 如何在XSD中设置货币限制?,xml,xsd,Xml,Xsd,我有一个关于XSD的问题 假设我的货币是500美元 如何设置值应在$0.00至$1000.00范围内的限制 我不能直接使用xsd:float,因为前面有美元符号 我该怎么办?非常感谢您的帮助。如果您将内容视为一个数字(例如:xs:decimal),您可以限制最大值和最小值: <xs:element name="money"> <xs:simpleType> <xs:restriction base="xs:decimal">
我该怎么办?非常感谢您的帮助。如果您将内容视为一个数字(例如:
xs:decimal
),您可以限制最大值和最小值:
<xs:element name="money">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:pattern value="\d*\.\d{2}"/>
<xs:maxInclusive value="1000" />
<xs:minInclusive value="0" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="money">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\$\d{1,4}\.\d{2}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
这将允许值介于$0.00和$9999.99之间,但它不是验证数字,而是验证字符串。这意味着它还将验证$0001.00等值
如果您决定分别处理数字和字符串,将数字存储在一个属性或简单内容中,将字符串存储在另一个属性或简单内容中,请查看此问题的答案:首先,如果必须添加$符号,则基值必须是字符串。这里举个例子,
<xs:simpleType name="decimalType">
<xs:restriction base="xs:string">
<xs:pattern value="\$\d{1,4}\,*\d*" />
</xs:restriction>
</xs:simpleType>
最好将数字单独存储在另一个属性中或作为简单内容。例如,您可以有
,`。然后,您可以更轻松地验证字符串和数字。如果您需要处理字符串“$500.00”,则可以使用正则表达式限制(请参见
)也可以参见:如果您决定使用模式。