xsd 忽略元素的顺序和未绑定的 maxOccurs
xsd ignore order of elements and maxOccurs unbound
我希望我的 xsd-文件与元素中的 xml 标签相匹配,这些标签可以无限制地以不同的顺序出现。这是一个例子 xml:
<Root>
<List Name="ListNode">
<FirstNode Name="Test" />
<SecondNode />
<SecondNode />
<FirstNode Name="Test2" />
<ThirdNode />
</List>
<FirstNode Name="Test3" />
<ThirdNode />
</Root>
那是我的 xsd-文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Root">
<xsd:complexType>
<xsd:all>
<xsd:element name="List">
<xsd:complexType>
<xsd:all>
<xsd:element name="FirstNode" >
<xsd:complexType>
<xsd:attribute name="Name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="SecondNode" />
<xsd:element name="ThirdNode" />
</xsd:all>
<xsd:attribute name="Name" />
</xsd:complexType>
</xsd:element>
<xsd:element name="FirstNode" >
<xsd:complexType>
<xsd:attribute name="Name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="SecondNode" />
<xsd:element name="ThirdNode" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
我认为 xsd:all 不是正确的标签。有人帮帮我吗?
使用
<xs:choice maxOccurs="unbounded">
<xsd:element name="FirstNode"/>
<xsd:element name="SecondNode" />
<xsd:element name="ThirdNode" />
</xs:choice>
我希望我的 xsd-文件与元素中的 xml 标签相匹配,这些标签可以无限制地以不同的顺序出现。这是一个例子 xml:
<Root>
<List Name="ListNode">
<FirstNode Name="Test" />
<SecondNode />
<SecondNode />
<FirstNode Name="Test2" />
<ThirdNode />
</List>
<FirstNode Name="Test3" />
<ThirdNode />
</Root>
那是我的 xsd-文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Root">
<xsd:complexType>
<xsd:all>
<xsd:element name="List">
<xsd:complexType>
<xsd:all>
<xsd:element name="FirstNode" >
<xsd:complexType>
<xsd:attribute name="Name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="SecondNode" />
<xsd:element name="ThirdNode" />
</xsd:all>
<xsd:attribute name="Name" />
</xsd:complexType>
</xsd:element>
<xsd:element name="FirstNode" >
<xsd:complexType>
<xsd:attribute name="Name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="SecondNode" />
<xsd:element name="ThirdNode" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
我认为 xsd:all 不是正确的标签。有人帮帮我吗?
使用
<xs:choice maxOccurs="unbounded">
<xsd:element name="FirstNode"/>
<xsd:element name="SecondNode" />
<xsd:element name="ThirdNode" />
</xs:choice>