我需要编写一个接受XML的XML模式,例如:
<?xml version="1.0" encoding="utf-8"?>
<Data>
<NodeA>something</NodeA>
<NodeB>something</NodeB>
<NodeC>something</NodeC>
<NodeD>something</NodeD>
</Data>
<?xml version="1.0" encoding="utf-8"?>
<Data>
<NodeA>something</NodeA>
<NodeC>something</NodeC>
<NodeB>something</NodeB>
<NodeD>something</NodeD>
</Data>
所以一般来说,我希望对列表中的元素进行排序,除了列表的一部分可以按任何顺序出现。
但是我为xsd文件尝试了几个appoach,但没有一个适用,例如。
<xs:complexType name="Data">
<xs:sequence>
<xs:element name="NodeA"/>
<xs:all xmlns:xs="">
<xs:element name="NodeB"/>
<xs:element name="NodeC"/>
</xs:all>
<xs:element name="NodeD"/>
</xs:sequence>
</xs:complexType>
将NodeB和NodeC放入一个组也不起作用。
我用谷歌搜索了那些错误消息,但找不到任何有用的东西......为什么这些xsds失败了,我应该怎么写呢?谢谢!
答案 0 :(得分:1)
这个怎么样?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="NodeA"/>
<xs:choice>
<xs:sequence>
<xs:element name="NodeB"/>
<xs:element name="NodeC"/>
</xs:sequence>
<xs:sequence>
<xs:element name="NodeC"/>
<xs:element name="NodeB"/>
</xs:sequence>
</xs:choice>
<xs:element name="NodeD"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>