3

我试图了解 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

4

2 回答 2

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>

将根据要求允许nr01通过nr09and nr10,而不需要+,是的,这确实意味着 1 次或多次出现。

于 2018-08-29T00:08:45.477 回答
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值。
于 2019-02-08T09:59:57.920 回答