我有以下XML架构:
<xsd:simpleType name="fractionalSalary">
<xsd:restriction base="xsd:decimal">
<xsd:fractionDigits value="2" />
<xsd:minExclusive value="0" />
</xsd:restriction>
</xsd:simpleType>
有没有选项可以指定xsd:fractionDigits
到2的最小数量?因为我对薪水有以下限制:positive number with 2 decimal places precision, e.g. 10000.50
并且验证应该在1000.5452
或14582.0001
等输入上失败,但也会在输入1000.5
或10000
上失败。
PS:使用XML Schema 1.0
答案 0 :(得分:9)
您可以添加模式限制:
<xsd:simpleType name="fractionalSalary">
<xsd:restriction base="xsd:decimal">
<xsd:fractionDigits value="2" />
<xsd:minExclusive value="0" />
<xsd:pattern value="\d+\.\d{2}" />
</xsd:restriction>
</xsd:simpleType>
这意味着提供的小数必须与正则表达式匹配。
此时,您也可以摆脱fractionDigits元素,因为正则表达式涵盖了该约束。