O Esquema XML para construir "um número Qualquer de elementos em qualquer ordem"
Pergunta
Eu preciso criar um esquema XML semelhante a este:
<xs:element name="wrapperElement">
<xs:complexType>
<xs:sequence>
<xs:element type="el1">
<xs:element type="el2">
</xs:sequence>
<xs:WhatGoesHere?>
<xs:element type="el3">
<xs:element type="el4">
<xs:element type="el5">
</xs:WhatGoesHere?>
<xs:sequence>
<xs:element type="el6">
<xs:element type="el7">
</xs:sequence>
</xs:complexType>
</xs:element>
O que eu preciso é um substituto para o "WhatGoesHere" de tal forma que qualquer número de el3, el4 e el5 podem aparecer em qualquer ordem.Por exemplo, ele pode conter {el3, el3, el5, el3}
Alguma idéia de como resolver isso?
Solução
Você quer xs:choice
com a ocorrência de restrições:
<xs:element name="wrapperElement">
<xs:complexType>
<xs:sequence>
<xs:element name="e11"/>
<xs:element name="el2"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="el3"/>
<xs:element name="el4"/>
<xs:element name="el5"/>
</xs:choice>
<xs:element name="el6"/>
<xs:element name="el7"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow