我有要求,因为特定元素应至少出现一次&所有元素都可以按任何顺序排列。 例如:
<xs:element name="ABC">
<xs:complexType>
<xs:choice>
<xs:element ref="SCH" minOccurs="0" maxOccurs="1"/>
<xs:element ref="ELM" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute type="xs:string" name="id" use="required"/>
.........
</xs:complexType>
</xs:element>
<xs:element name="SCH">
<xs:complexType>
<xs:choice>
<xs:element ref="PTN" minOccurs="1" maxOccurs="unbounded" />
<xs:element ref="ELM" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute type="String" name="type" use="required"/>
.............
</xs:complexType>
</xs:element>
我想测试'PTN'应始终存在于'SCH'中,minOccurs为'1'和'PTN'&amp; 'ELM'可以按任何顺序出现。 我检查了以下选项:
有效的XML案例:
<ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/><PTN id="NA" type="gxgfd"><ELM id="dfg2" type="fff"/></SCH></ABC>
<ABC id="000021"><SCH id="" type="aaa"><PTN id="NA" name="Machine" type="dgdh"><ELM id="dfg" type="fff"/><ELM id="dfg2" type="fff"/><PTN id="NA" type="machine"></SCH></ABC>
<ABC id="000021"><PTN id="NA" type="gdfg"></SCH></ABC>
以上XML案例有效,因为它至少包含一次“PTN”节点。 PTN&amp; ELM可以是任何顺序和计数。
无效案例:
<ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/><ELM id="dfg2" type="fff"/></SCH></ABC>
<ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/></SCH></ABC>
以上情况无效,因为它没有PTN节点。