如何在XML Schema中为fractionDigits限制指定最小值?

时间:2014-03-20 14:41:08

标签: xml xsd xsd-1.0

我有以下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.545214582.0001等输入上失败,但也会在输入1000.510000上失败。

PS:使用XML Schema 1.0

1 个答案:

答案 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元素,因为正则表达式涵盖了该约束。