2011-06-29 15 views
8

¿es posible usar xs: union para complexTypes?

<xs:element name="Kunde" type="tKunde"/> 


<xs:complexType name="tKunde"> 
    <xs:union memberTypes="tPerson tStudent"></xs:union> 
</xs:complexType> 
<xs:complexType name="tPerson"> 
    <xs:sequence> 
     <xs:element name="Vorname" type="xs:string"/> 
     <xs:element name="Nachname" type="xs:string"/> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="tStudent"> 
    <xs:complexContent> 
     <xs:extension base="tPerson"> 
     <xs:sequence> 
      <xs:element name="Matrikelnummer" type="xs:int" minOccurs="0" maxOccurs="1"/> 
     </xs:sequence> 
     </xs:extension> 
    </xs:complexContent> 
</xs:complexType> 

eso es lo que debe ser similar. La tarea es derivar un Estudiante de Persona y luego hacer posible usar uno de los dos tipos para el elemento Kunde.

Parece que no es válido.

Respuesta

2

No se puede usar xs: union para esto. Puede usar xs: choice o poner los elementos en un grupo de sustitución para que cualquiera de ellos pueda aparecer en lugar del elemento a la cabeza del grupo de sustitución.

Cuestiones relacionadas