我正在尝试将架构的属性元素限制在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"
答案 0 :(得分:4)
a-Z
是无效范围,您应该使用小写z
代替a-z
<xs:pattern value="[A-Za-z]{3,20}" />
请注意,a
ascii值为97且Z
为90,因此您实际上定义的间隔为97到90 =&gt; end-point code is lower than the start-point code
答案 1 :(得分:1)
您还可以使用xs:maxLength
和xs:minLength
:
<xsd:restriction base="xsd:string">
<xsd:minLength value="3"/>
<xsd:maxLength value="20"/>
</xsd:restriction>