我想向具有子节点序列的元素添加具有限制的属性。元素“car”具有其子节点序列。元素 car 的属性“condition”具有枚举限制。我不确定将创建的复杂类型“atr”放在“car”元素中的什么位置。
这是我目前想到的:
<test>
<car condition = "new">
<brand>audi</brand>
<engine>diesel</engine>
</car>
</test>
XSD:
<xs:element name = "car">
<xs:complexType>
<xs:sequence>
<xs:element name = "brand" type = "xs:string"/>
<xs:element name = "engine" type = "xs:string"/>
</xs:sequence>
<xs:attribute name = "condition" type = "atr"/>
</xs:complexType>
</xs:element>
<xs:complexType name = "atr">
<xs:simpleContent>
<xs:extension base = "xs:string">
<xs:attribute name = "condition">
<xs:simpleType>
<xs:restriction base = "xs:string">
<xs:enumeration value = "new"/>
<xs:enumeration value = "used"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name = "test">
<xs:complexType>
<xs:sequence>
<xs:element ref = "car" maxOccurs = "unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
属性总是具有简单类型,因此只需使用