4

我试图将模式的属性元素限制在 3 到 20 个字符之间,但我收到一条错误消息,指出我的 RegEx 无效:

<xs:attribute name="name" use="required">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-Z]{3,20}" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>

知道我在这里做错了什么吗?具体错误是"Range end code point is less than the start end code point"

4

2 回答 2

6

a-Z是无效范围,您应该改用小写z字母a-z

 <xs:pattern value="[A-Za-z]{3,20}" />

请注意,aascii 值为 97 和Z90,因此您实际上是在定义从 97 到 90 的区间 =>end-point code is lower than the start-point code

于 2012-01-20T17:31:41.027 回答
2

您还可以使用xs:maxLengthand xs:minLength

<xsd:restriction base="xsd:string">
  <xsd:minLength value="3"/>
  <xsd:maxLength value="20"/>
</xsd:restriction>
于 2012-01-20T18:16:14.260 回答