我有一个带有属性(类别)的父元素(产品),它可以采用2个值中的任何一个(易腐和非易失)。如果该项目是易腐烂的,我想让孩子元素“食物”,如果它不易腐烂,我想拥有子元素“库存”。从中看,我认为这可以在XSD 1.1中完成,但不能在XSD 1.0中完成。但是,我没有找到如何做到这一点。
以下是我的代码,缩写为显示重要部分:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="products">
<xs:complexType>
<xs:sequence>
<xs:element name="product" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:choice>
<xs:element name="food">
<xs:complexType>
/*DEFINED FOOD HERE*?
</xs:complexType>
</xs:element>
<xs:element name="stock">
<xs:complexType>
/*DEFINED STOCK HERE*/
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="perishable"/>
<xs:enumeration value="nonPerishable"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
有人可以帮我吗?
答案 0 :(得分:0)
如果你正在寻找类似的东西:
<perishable>
<food>cheese</food>
</perishable>
<xs:element name="perishable">
<xs:complexType>
<xs:sequence>
<xs:element name="food" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>