在XSD中限制为01到10?

时间:2018-08-28 22:28:15

标签: regex xml xsd xsd-validation xml-validation

我试图了解XSD中模式的使用。 限制模式中的“ +”在XSD中如何工作?

经过研究,我发现可以对模式使用限制。我确实知道“ +”表示1或更大。但这也适用于这种情况吗?

<xsd:simpleType name="typeNumber">
        <xsd:restriction base="xsd:ID">
            <xsd:pattern value="nr[0-9]+"/>
        </xsd:restriction>
    </xsd:simpleType>

例如,值nr12345是否有效? 此外,我想知道如何在nr01nr10之间设置可接受的值。

2 个答案:

答案 0 :(得分:2)

此XSD类型

<xsd:simpleType name="typeNumber">
    <xsd:restriction base="xsd:ID">
        <xsd:pattern value="nr0[1-9]"/>
        <xsd:pattern value="nr10"/>
    </xsd:restriction>
</xsd:simpleType>

将根据要求允许nr01nr09nr10,而无需+,这的确意味着1次或多次发生。

答案 1 :(得分:0)

您可以使用

<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的值。