我想改变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>
XSD 1.0不允许你这样做。
你可以在XSD 1.1中做到这一点。