2012-01-17 1 views
0

私は以下のようなスキーマを持っており、defaultinstanceの要素はrestrictionred/​​/blue)です。私は制限をより高いレベルに移動し、それをすべてcolor要素に設定したい(Java/C#で型宣言または列挙型と同様)xml-schemaで型を宣言するにはどうすればいいですか?

どうすればよいですか?

<xs:element name="something"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="instance" maxOccurs="unbounded"> 
       <xs:complexType> 
        <xs:attribute name="name" type="xs:string" use="required"/> 
        <xs:attribute name="color" use="required"> 
         <xs:simpleType> 
          <xs:restriction base="xs:string"> 
           <xs:enumeration value="red"/> 
           <xs:enumeration value="green"/> 
           <xs:enumeration value="blue"/> 
          </xs:restriction> 
         </xs:simpleType> 
        </xs:attribute> 
       </xs:complexType> 
      </xs:element> 
      <xs:element name="default"> 
       <xs:complexType> 
        <xs:attribute name="color" use="required"> 
         <xs:simpleType> 
          <xs:restriction base="xs:string"> 
           <xs:enumeration value="red"/> 
           <xs:enumeration value="green"/> 
           <xs:enumeration value="blue"/> 
          </xs:restriction> 
         </xs:simpleType> 
        </xs:attribute> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

答えて

5

タイプを定義します

<xs:simpleType name="colorenum"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="red"/> 
     <xs:enumeration value="green"/> 
     <xs:enumeration value="blue"/> 
    </xs:restriction> 
</xs:simpleType> 

をして、それを参照します。

<xs:attribute name="color" type="colorenum" /> 
+0

ところ、この定義を置きますか? –

関連する問題