Я нахожусь в процессе создания XML-схемы, и одним из моих значений является год. Поэтому я хотел бы убедиться, что все значения имеют ровно 4 символа. Для этого я использую следующий синтаксис:
<xs:element name="publish_year" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:totalDigits value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Если я правильно понимаю «totalDigits», кто-то может передать значение «publish_year» в «2008» или «200». Оба будут действительны. Таким образом, как я могу структурировать свой XSD, чтобы обеспечить 4 цифры? На первый взгляд, я предполагаю, что использовал бы регулярное выражение, но я хотел бы знать, пропускаю ли я что-то, что уже запечено (например, "totalDigits")
UPDATE:
Я выбрал следующее решение. Это может быть излишним, но оно получает смысл:
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:totalDigits value="4" fixed="true"/>
<xs:minInclusive value="1900"/>
<xs:pattern value="^([1][9]\d\d|[2]\d\d\d)$"/>
</xs:restriction>
</xs:simpleType>