2014-02-17 197 views
1

我無法弄清楚如何用Xsd表達以下內容:具有simpleType限制(值的枚舉)的元素,並且需要此元素的屬性。例如:Xsd元素SimpleType加屬性

<myElement some_id_value="1">Apples</myElement> 

當簡單類型被定義爲:

<xs:simpleType name="simpleType_Fruit"> 
    <xs:restriction base="xs:string"> 
    <xs:enumeration value="Apples" /> 
    <xs:enumeration value="Bananas" /> 
    <xs:enumeration value="Oranges" /> 
    </xs:restriction> 
</xs:simplType> 

我的元素現在被定義爲:

<xs:element name="myElement" type="simpleType_Fruit"/> 

類似的問題在這裏問過了,可以這樣回答,但我不確定(答案只有一個加號票)

XSD: How to derive a simpletype both to add a attribute to it and to restrict the acceptable value of it

回答

1

您可以在元素聲明中將「simpleType_Fruit」用作基本類型,並使用必需的屬性擴展它。

<xs:element name="myElement"> 
    <xs:complexType> 
     <xs:simpleContent> 
      <xs:extension base="simpleType_Fruit"> 
       <xs:attribute name="some_id_value" type ="xs:byte"/> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:element> 
<xs:simpleType name="simpleType_Fruit"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="Apples"/> 
     <xs:enumeration value="Bananas"/> 
     <xs:enumeration value="Oranges"/> 
    </xs:restriction> 
</xs:simpleType>