Tengo siguiente código XSD:Validación XML con XSD: ¿cómo evitar preocuparse por la secuencia de los elementos?
<xsd:complexType name="questions">
<xsd:sequence>
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
El problema aquí es: la ubicación de los elementos, multipleChoiceInput, etc., deben aparecer en el mismo orden en que se declaran. No quiero que esto suceda, quiero que, en el proceso de validación, la secuencia no sea relevante. ¿Cómo puedo conseguir esto?
Otra posibilidad que hemos probado ha sido:
<xsd:complexType name="questions">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
</xsd:complexType>
En este ejemplo, la secuencia realmente no importa más, y puede tener tantos elementos como quiero (lo que "todos" no permitiría yo para hacer). Pero todavía tengo el problema con el mínimo y el máximo de Ocurrencias. En este ejemplo, podría tener tantos "pictureInput" como sea posible, ¿cuál es la restricción que me gustaría tener 0 o 1.
¡Muchas gracias por ayudarme!
Gracias por responder Yok, pero "todos" no se pueden utilizar en mi caso, la causa "todo" requiere que el elemento aparezca solo UNA VEZ (los eventos mínimo y máximo solo pueden aceptar los valores 0 y 1). – jcborges
Entonces, tal vez '' es tu amigo. –
Tomalak
Ya en este caso, cualquiera debe ser utilizado. También actualizará la respuesta. – YoK