感兴趣的是以下xml子元素:
<optInItem type='MARKETING_EMAILS'>NO</optInItem>
我想为属性'type'枚举可能的值(假设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>
任何建议/指示都将不胜感激。
感谢
答案 0 :(得分:2)
经过多次迭代后,看起来如下所示:
<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 扩展基数允许用户定义类型,因此是拉动它的关键 一起来。