En general, las restricciones de ocurrencia (minOccurs
o maxOccurs
) en grupos de elementos (secuencias o elecciones) significan que todo el grupo puede repetirse d Considerando que las restricciones de ocurrencia en los elementos significan que el elemento se puede repetir antes de que aparezca el siguiente elemento en el grupo.
Si su secuencia contiene solo un elemento, no hay diferencia.
<xs:sequence>
<xs:element maxOccurs="unbounded" name="MyType2">...</xs:element>
</xs:sequence>
es igual a
<xs:sequence maxOccurs="unbounded">
<xs:element name="MyType2">...</xs:element>
</xs:sequence>
y que ambos permiten repetir el elemento <MyType2>
. Habrá una diferencia tan pronto como la secuencia contenga más de una definición de elemento.
<xs:sequence>
<xs:element maxOccurs="unbounded" name="MyType">...</xs:element>
<xs:element maxOccurs="unbounded" name="foobar">...</xs:element>
</xs:sequence>
es no igual a
<xs:sequence maxOccurs="unbounded">
<xs:element name="MyType">...</xs:element>
<xs:element name="foobar">...</xs:element>
</xs:sequence>
El primero permite estructuras como
<MyType/>
<MyType/>
<foobar/>
<foobar/>
pero el segundo no permite que una estructura de este tipo. En cambio, permite estructuras como
<MyType/>
<foobar/>
<MyType/>
<foobar/>
que, por otro lado, no están permitidas por la primera definición.