2011-09-19 5 views
7

Lo que quiero decir es ¿hay situaciones en que esto:Cualquier diferencia cuando se utiliza min/maxOcurrencias en secuencia en lugar de nivel de elemento

<xs:element name="MyType1"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element maxOccurs="unbounded" name="MyType2">...</xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

tiene un significado diferente a esto:

<xs:element name="MyType1"> 
    <xs:complexType> 
     <xs:sequence maxOccurs="unbounded"> 
      <xs:element name="MyType2">...</xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

Gracias de antemano

Respuesta

14

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.

Cuestiones relacionadas