2009-10-16 10 views
5

tengo este tipo complejo:incluir elementos en XSD Tipo Complejo Sin nuevo elemento

<xsd:complexType name="Identifier"> 
    <xsd:sequence> 
     <xsd:element name="Id" type="xsd:string"/> 
     <xsd:element name="Version" type="xsd:string"/> 
    </xsd:sequence> 
</xsd:complexType> 

Ahora queremos incluir esto en otro tipo complejo y yo he estado haciendo de esta manera:

<xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="Id" type="Identifier"/> 
       <!-- More elements here --> 
    </xsd:sequence> 
</xsd:complexType> 

Esto no es lo que realmente quiero. Quiero incluir los elementos del tipo Identificador directamente en mi segundo tipo complejo sin crear un elemento nuevo. P.ej. lo mismo que simplemente hacer esto:

<xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="Id" type="xsd:string"/> 
     <xsd:element name="Version" type="xsd:string"/> 
       <!-- More elements here --> 
    </xsd:sequence> 
</xsd:complexType> 

Espero que tenga sentido.

Gracias de antemano.

Respuesta

6

Puede extender tipos, como este:

<xsd:complexType name="MySubType"> 
    <xsd:complexContent> 
     <xsd:extension base="Identifier"> 
         <xsd:sequence> 
          <!-- More elements here --> 
         </xsd:sequence> 
     </xsd:extension> 
    </xsd:complexContent> 
</xsd:complexType> 
+0

Perfecto - gracias. ¿Sabes cómo incluir múltiples extensiones en un solo tipo complejo? – ng5000

+1

Encontré la respuesta. Lo que quería era herencia múltiple, que se puede lograr usando xsd: group. – ng5000

+0

Sí, los grupos son muy útiles, aunque pueden ser confusos si los exageras. – skaffman

1

este tipo compleja siempre se resolverá a

<Identifier> 
    <Id>string</Id> 
    <Version>string</Version> 
</Identifier> 

si no desea una estructura niño, se podría definir Id y versión como elementos y hacer referencia a ellos utilizando

<xsd:element ref="Id"/> 
<xsd:element ref="Version"/> 

más adelante. Pero entonces usted no tiene la garantía de que ambas ocurren

También puede hacer Id y versión atributos al elemento identificador en un tipo complejo

buena suerte Mike

Cuestiones relacionadas