XML-схема xsd TotalDigits против MaxInclusive

я столкнулся с XML-схемой со следующим определением:

<xs:simpleType name="ClassRankType">
    <xs:restriction base="xs:integer">
        <xs:totalDigits value="4"/>
        <xs:minInclusive value="1"/>
        <xs:maxInclusive value="9999"/>
    </xs:restriction>
</xs:simpleType>

однако мне кажется, что totalDigits избыточна. Я несколько новичок в XML-схеме и хочу убедиться, что ничего не пропустил.

каково фактическое поведение totalDigits и maxInclusive?

Can totalDigits всегда быть представленным с комбинацией minInclusive и MaxInclusive?

как totalDigits влияет на отрицательные числа?

2 ответов


могут ли totalDigits всегда быть представлены комбинацией minInclusive и MaxInclusive?

в данном случае, да. Поскольку вы имеете дело с целым числом, значение должно быть целым числом, поэтому у вас есть конечный набор значений между minInclusive и maxInclusive. Если у вас были десятичные значения,totalDigits скажет вам, сколько чисел в общей сложности это значение может иметь.

как totalDigits влияет на отрицательные числа?

Это общее количество цифр в числе, и не зависит от запятой, минуса и т. д. От auxy.com:

число, указанное атрибутом value <xsd:totalDigits> фасет ограничит общее количество цифр, которые разрешены в номере, с обеих сторон десятичной точки.


totalDigits-общее количество цифр, которое может иметь число, включая десятичные числа. Таким образом, totalDigits 4 позволит 4.345 или 65.43 или 932.1 или 4-значное целое число, как в приведенном выше примере. То же самое с негативом. Любой из этих предыдущих примеров может быть отрицательным и по-прежнему проверять как totalDigits 4.

max и min inclusive / exclusive ограничивают диапазон чисел. Maxinclusive может показаться немного избыточным в вашем примере, но mininclusive гарантирует, что число больше 0.