Ограничение значениями от 01 до 10 в XSD?
Я пытаюсь понять использование шаблонов в XSD. Как работает '+' в шаблоне для ограничения в XSD?
После некоторых исследований я обнаружил, что могу использовать ограничения с шаблонами. Я понимаю, что "+" означает 1 или более. Но будет ли это также применяться в этом случае?
<xsd:simpleType name="typeNumber">
<xsd:restriction base="xsd:ID">
<xsd:pattern value="nr[0-9]+"/>
</xsd:restriction>
</xsd:simpleType>
Будет, например, значение nr12345
быть действительным? Кроме того, я хотел бы знать, как можно сделать приемлемое значение между nr01
а также nr10
,
1 ответ
Этот тип XSD,
<xsd:simpleType name="typeNumber">
<xsd:restriction base="xsd:ID">
<xsd:pattern value="nr0[1-9]"/>
<xsd:pattern value="nr10"/>
</xsd:restriction>
</xsd:simpleType>
позволит nr01
через nr09
а также nr10
по запросу, без необходимости +
, что, да, означает 1 или более вхождений.
Вы можете использовать
<xsd:simpleType name="typeNumber">
<xsd:restriction base="xsd:ID">
<xsd:pattern value="nr(0?[1-9]|10)"/>
</xsd:restriction>
</xsd:simpleType>
подробности
Регулярное выражение будет соответствовать всей строке, которая соответствует
nr
-nr
в начале строки(0?[1-9]|10)
- необязательный0
сопровождается ненулевой цифрой (см.0?[1-9]
альтернатива) или (|
)10
значение.