2009-07-22 6 views
26

나는 다음과 같은 세 가지 값 중 하나만 가질 수있는 필드를 포함하는 XSD 정의하려고 붙어 :XSD 정의 열거 값

  • 녹색
  • 레드
  • 블루

기본적으로 스키마 수준에서 엄격한 열거 형을 정의하려고합니다.

첫 번째 시도가 잘못 표시되어 있으며이를 수정하기위한 "올바른"방법이 확실하지 않습니다. 자동 XML 생성기를 사용하여

<xs:element name="color"> 
    <xs:complexType> 
     <xs:choice> 
      <xs:element name="green"/> 
      <xs:element name="red"/> 
      <xs:element name="blue"/> 
     </xs:choice> 
    </xs:complexType> 
</xs:element> 

, 그것은 문자열 개체로하는 요소 이름을 취급 :

<xs0:color> 
    <xs0:green>text</xs0:green> 
</xs0:color> 

답변

55

당신은 형 simpleType의 컨텍스트 내에서 열거를 정의 할 수 있습니다.

<xs:simpleType name="color" final="restriction" > 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="green" /> 
     <xs:enumeration value="red" /> 
     <xs:enumeration value="blue" /> 
    </xs:restriction> 
</xs:simpleType> 
<xs:element name="SomeElement"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Color" type="color" /> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
+5

String이 아닌 NMTOKEN을 사용하는 것이 좋습니다. 열거 형 아이디어에 더 가깝습니다. 특히 코드 생성기와 같이 도구 친화적입니다. – skaffman