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.
中完成
我想更改 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.
中完成