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