Ограничение значениями от 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 значение.
Другие вопросы по тегам