<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="size" type="PatternType" />
<xs:simpleType name="PatternType">
<xs:restriction base="xs:string">
<xs:pattern value="[T][0-9]{1,2}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
我需要为轨道Id T1,T2等创建一个模式,并希望限制到T20。但如果我遵循模式<xs:pattern value="[T][0-9]{1,2}"/>
,它也允许T99。你知道如何解决这个问题吗?
答案 0 :(得分:3)
以下XSD允许size
的值为T1
,T2
,T3
,... T20
:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="size" type="PatternType"/>
<xs:simpleType name="PatternType">
<xs:restriction base="xs:string">
<xs:pattern value="T1?\d"/>
<xs:pattern value="T20"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
答案 1 :(得分:1)
在XSD 1.1中当然可以写
<xs:assertion test="number(substring-after($value)) = 1 to 20"/>