发生1个以上[重复]的xml无序元素。

问题描述 投票:0回答:1

我想改变xsd中的complexType,使其支持无序元素和多重发生元素。

比如说,我有如下的xsd和config1,我也想在不改变config1的情况下同时支持config1和config2(config1和config2的元素顺序不同(IsEnable和Name))。(config1和config2的元素顺序不同(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>
xml xsd
1个回答
0
投票

XSD 1.0不允许你这样做。

你可以在XSD 1.1中做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.