2012-06-27 167 views
0

感興趣的是下面的XML子元素:xml元素枚舉屬性和枚舉值

<optInItem type='MARKETING_EMAILS'>NO</optInItem> 

我想列舉可能的值(假設2個可能的值)的屬性「類型」和枚舉可能optInItem的文本值的值(值可能是Yes | No)。我從下面的xsd開始,但不知道如何添加兩個單獨的枚舉。

<xs:element name="optInItem" maxOccurs="2" minOccurs="2"> 
     <xs:complexType> 
     <xs:simpleContent> 
      <xs:extension base="xs:string"> 
      <xs:attribute type="xs:string" name="type" use="required"/> 
      </xs:extension> 
     </xs:simpleContent> 
     </xs:complexType> 
</xs:element> 

任何建議/指針,將不勝感激。

感謝

回答

1

多次迭代後,它看起來像下面的伎倆:

<xs:element name="account"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element type="optInItemType" name="optInItem" maxOccurs="2" minOccurs="2"> 
    </xs:sequence> 
</xs:complexType> 
</xs:element> 
<xs:complexType name="optInItemType"> 
<xs:simpleContent> 
    <xs:extension base="elementOptInItemType"> 
     <xs:attribute name="type" type="attrOptInItemType"/> 
    </xs:extension> 
</xs:simpleContent> 
</xs:complexType> 
<xs:simpleType name="elementOptInItemType"> 
<xs:restriction base="xs:string"> 
    <xs:enumeration value="YES"/> 
    <xs:enumeration value="NO"/> 
</xs:restriction> 
</xs:simpleType> 
<xs:simpleType name="attrOptInItemType"> 
<xs:restriction base="xs:string"> 
    <xs:enumeration value="MARKETING_EMAILS"/> 
    <xs:enumeration value="UPDATE_NOTIFICATIONS"/> 
</xs:restriction> 
</xs:simpleType> 

這是一個比我想象的要複雜得多。 simpleContent 擴展基礎允許使用用戶定義的類型,因此是將其全部拉到一起的關鍵。