Как указать минимальное значение для ограничения FractionDigits в XML-схеме?

У меня есть следующая схема 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

1 ответ

Решение

Вы можете добавить ограничение шаблона:

<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, так как это ограничение охватывается регулярным выражением.

Другие вопросы по тегам