2009-11-12 6 views
5

I HAVA un documento XML (y elemento complejo) que es similar a este ejemplo:Es posible tener tipoCompuesto y los elementos dentro pero sin la parte de la secuencia

<xs:element name="employee"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element name="firstname" type="xs:string"/> 
    <xs:element name="lastname" type="xs:string"/> 
    </xs:sequence> 
</xs:complexType> 
</xs:element> 

Pero en mi xml no debe importar si agrego primer nombre o apellido primero. Así que me gustaría eliminar la parte "xs: sequence" pero no estoy seguro de con qué debería reemplazarla.

Si no es posible, ¿por qué no es posible?

Actualización: Si cambio con < cx: Todos> Me sale este error: "El {max} se produce de todas las partes {} de un grupo todos debe ser 0 o 1".

+2

sí, esa es una limitación del sistema conocido de - maxOccurs puede ser solo 0 o 1. Usted no mencionó nada más en su ejemplo, ya sea ..... –

+0

¿Hay alguna otra opción que donde no hago? t obtener esta limitación? – Imageree

+0

¿Un empleado puede tener más de un nombre o más de un apellido? – jason

Respuesta

8

Uso <xs:all> en lugar de <xs:sequence>:

<xs:element name="employee"> 
<xs:complexType> 
    <xs:all> 
    <xs:element name="firstname" type="xs:string"/> 
    <xs:element name="lastname" type="xs:string"/> 
    </xs:all> 
</xs:complexType> 
</xs:element> 

Véase el W3Schools page en los indicadores de esquema:

All Indicator

The <all> indicator specifies that the child elements can appear in any order, and that each child element must occur only once:

+0

Si lo cambio con me sale este error: "El {max ocurre} de todas las {partes} de un grupo debe ser 0 o 1 ". – Imageree

+0

sí, esa es una limitación de '' - maxOccurs solo puede ser 0 o 1. No mencionó nada más en su ejemplo, ya sea ..... –

0

desea que el All indicator (<xs:all>).

<xs:element name="employee"> 
    <xs:complexType> 
    <xs:all> 
     <xs:element name="firstname" type="xs:string"/> 
     <xs:element name="lastname" type="xs:string"/> 
    </xs:all> 
</xs:complexType> 
</xs:element> 

El XML Schema Tutorial en W3Schools es muy útil.

+0

Si lo cambio con me sale este error: "El {máximo ocurre} de todos los {parties} de un grupo total debe ser 0 o 1 ". – Imageree

2
<xs:element name="employee"> 
    <xs:complexType> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
      <xs:element name="firstname" type="xs:string" /> 
      <xs:element name="lastname" type="xs:string" /> 
     </xs:choice> 
    </xs:complexType> 
</xs:element> 

Esto le permitirá tener elementos en cualquier secuencia y cantidad.

+1

Lamentablemente, no es cierto. '' solo permite uno de los elementos especificados. Entonces, en su ejemplo, solo permitiría el nombre * XOR * lastname (pero podría contener cualquier cantidad de ocurrencias). – user2846469

Cuestiones relacionadas