2017-03-20 11 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

:全体で

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

、このXML、

<CoursePartReference code="1120002lc"> 

は、このXSDに対して

<?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> 
有効になります