7

我有以下 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并且验证应该在 or 之类的输入上失败,而且在输入1000.5452or上也应该失败。14582.00011000.510000

PS:使用 XML Schema 1.0

4

1 回答 1

12

您可以添加模式限制:

<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 元素,因为该约束已被正则表达式覆盖。

于 2014-03-20T15:03:53.197 回答