【发布时间】:2019-05-16 17:35:54
【问题描述】:
我有下面的xml,
<miniHome>
<required>
<washing_machine/>
<vessels/>
<refrigerator/><!--THIS SHOULD BE A CHOICE-->
<cooler/><!--THIS SHOULD BE A CHOICE-->
</required>
</miniHome>
在此我需要选择“冰箱”和“冷却器”。一次只能有一个人在场。而且这两个元素不是强制性的。
这里的问题是我需要在下面的 xsd 中满足这个要求
<xs:complexType name="homeOperationType"/>
<xs:element name="homeType" type="homeOperationType" abstract="true"/>
<xs:complexType name="miniHomeType">
<xs:complexContent>
<xs:extension base="homeOperationType">
<xs:all>
<xs:element name="AC"/>
<xs:element name="washing_machine"/>
<xs:element ref="cooler"/> <!--THIS SHOULD BE A CHOICE-->
<xs:element ref="refridgerator"/> <!--THIS SHOULD BE A CHOICE-->
</xs:choice>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="miniHome" type="miniHomeType" substitutionGroup="homeType"/>
<xs:complexType name="coolerType">
<xs:complexContent>
<xs:extension base="xs:anyType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="cooler" type="coolerType"/>
<xs:complexType name="configUriType">
<xs:simpleContent>
<xs:extension base="xs:anyURI"/>
</xs:simpleContent>
</xs:complexType>
<xs:element name="refrigerator" type="configUriType"/>
- “冷却器”和“冰箱”属于上述类型。
-
'cooler' 和 'refrigerator' 已经如上定义并在其他地方使用。
请帮忙。
【问题讨论】:
标签: xml xsd xsd-validation