xml 出现次数超过 1 次的无序元素

xml disorder elements with occurs more than 1

我想更改 xsd 中的复杂类型,使其支持无序元素和多次出现的元素。

比方说,我有 xsd 和 config1,如下所示,我还想在不更改 config1 的情况下同时支持 config1 和 config2。 (配置 1 和 2 在某些元素顺序(IsEnable 和 Name)上有所不同。)这可能吗?

我尝试用xs:all替换xs:sequence,但是xs:all下的元素只能准确出现0次或1次。

//xsd
<xs:element name="Config">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="IsEnabled" type="xs:boolean" minOccurs="1" />
        <xs:element name="Name" type="xs:string" minOccurs="1" />
        <xs:element name="Address" type="xs:string" minOccurs="0" maxOccurs="unbounded">
      </xs:sequence>
    </xs:complexType>
  </xs:element>

//config1
<Congfig>
  <IsEnable>true</IsEnable>
  <Name>name</Name>
  <Address>addr1</Address>
  <Address>addr2</Address>
</Config>

//config2
<Congfig>
  <Name>name</Name>
  <IsEnable>true</IsEnable>
  <Address>addr1</Address>
  <Address>addr2</Address>
</Config>

XSD 1.0 不允许您这样做。

您可以在 XSD 1.1.

中完成