2016-08-31 16 views
2
<?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도 허용됩니다. 이 문제를 해결하는 방법을 알고 있습니까?XSD의 패턴을 통해 ID 범위 (T1..T20)를 정의하는 방법은 무엇입니까?

답변

3

다음 XSD는 sizeT1의 값 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

XSD 1.1 물론 당신이 쓸 수

<xs:assertion test="number(substring-after($value)) = 1 to 20"/>