2013-10-24 2 views
0

나는 다음과 같은 XSD를 사용하고 있는데, 여기에 몇 가지를 추가하려고합니다. GroupType의 항목을 "peer"및 "child"단어 만 허용하도록 제한하고 싶습니다. 나는 여러 영역에서 구제 조항을 시도했지만 아직 작동하지는 않는다.XSD 내의 값 제한

간결성을 위해 제거 된 일부 요소는 변경되지만 흐름은 변경되지 않았습니다.

도움을 주시면 감사하겠습니다.

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="AllMeta"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="unbounded" name="WikiMeta"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Groups"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:element maxOccurs="unbounded" name="WikiGroup"> 
         <xs:complexType> 
         <xs:sequence> 
          <xs:element name="GroupType" type="xs:string" minOccurs="1" maxOccurs="1" /> 
          <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" /> 
         </xs:sequence> 
         </xs:complexType> 
        </xs:element> 
        </xs:sequence> 
       </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

답변

0

난 단지에 GroupType에 항목을 제한 할 수 있도록 할 단어 "피어"하고 그래서 오히려 type="xs:string"보다는 당신이 요소를 사용자 정의 simpleType을 제공해야합니다 "아이"

열거 값 :

<xs:element name="GroupType" minOccurs="1" maxOccurs="1"> 
    <xs:simpleType> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="peer" /> 
     <xs:enumeration value="child" /> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:element> 

당신이 다음 simpleType라는 이름의 최상위를 선언 할 수있는 다른 곳에서 같은 제한을해야하는 경우와 그런 다음 해당 유형을 xs:element에 이름으로 참조하십시오.

+0

감사합니다. Ian. 최상위 수준의 simpleType을 사용하여이 작업을 수행하려고했지만 스키마에 한 번만 표시되기 때문에 어디서나 행복합니다. – dotnetnoob