2017-03-20 6 views
1

내가 XXX 코드와 TP 인 형태 1120XXXTP의 식별자를 만들려고 해요 유형입니다 : lc, lb, pr or exXSD 식별자 패턴

이 내가 무엇을 가지고 지금까지

<xs:simpleType name="complex" > 
<xs:union> 
    <xs:simpleType> 
    <xs:restriction base="xs:string" > 
     <xs:pattern value="[1][1][2][0][0-9]{3}" /> 
    </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="lc" /> 
     <xs:enumeration value="lb" /> 
     <xs:enumeration value="pr" /> 
     <xs:enumeration value="ex" /> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:union> 

이것은 XML에서 식별자의 모양을 나타내는 예입니다.

<Classes> 
    <CoursePartReference code="1120002lc"> 

패턴을 올바르게 설정할 수 없습니다.

답변

1

단일 정규식 패턴을 사용하여 식별자를 일치시킬 수 있습니다 :

<CoursePartReference code="1120002lc"> 

이 XSD에 대한 유효합니다,

전부
<xs:pattern value="1120\d{3}(lc|lb|pr|ex)" /> 

,이 XML을

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="CoursePartReference"> 
    <xs:complexType> 
     <xs:attribute name="code"> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
      <xs:pattern value="1120\d{3}(lc|lb|pr|ex)" /> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:attribute> 
    </xs:complexType> 
    </xs:element> 
</xs:schema>