Esquema XSD que permite a ordem aleatória
-
26-09-2019 - |
Pergunta
Estou tentando projetar um esquema XSD que permita que os elementos estejam em uma ordem aleatória e tenham maxoccurs = "ilimitado".
Meu xml:
<root>
<key></key>
<group></group>
<group>
<key></key>
<key></key>
<group>
<key></key>
<key></key>
</group>
</group>
<key></key>
<key></key>
<group>
<key></key>
<key></key>
<key></key>
</group>
<key></key>
</root>
Solução
Você quer <xs:choice>
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="groupType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="group" type="groupType"/>
<xs:element name="key"/>
</xs:choice>
</xs:complexType>
<xs:element name="root" type="groupType" />
</xs:schema>
Recebi isso colando sua amostra XML no editor XML do Oxygen e usando "Ferramentas> Gerar/Converter Schema", com entrada = seu documento XML de amostra. (Ele pode usar Trang sob as cobertas ... não tenho certeza.) Então eu ajustei o resultado.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow