2009-10-16 15 views
5

ho questo tipo complesso:includere elementi in XSD tipo complesso Senza Nuovo 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> 

Ora voglio includere questo in un altro tipo complesso e ho fatto che in questo modo:

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

Questo non è quello che voglio davvero però. Voglio includere gli elementi del tipo Identifier direttamente nel mio secondo tipo complesso senza creare un nuovo elemento. Per esempio. lo stesso appena facendo questo:

<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> 

Speranza che ha senso.

Grazie in anticipo.

risposta

6

È possibile estendere i tipi, In questo modo:

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

Perfetto - grazie. Sai come includere più estensioni in un unico tipo complesso? – ng5000

+1

Trovato la risposta. Quello che volevo era l'ereditarietà multipla, che può essere ottenuta usando xsd: group. – ng5000

+0

Sì, i gruppi sono cose molto utili, anche se possono creare confusione se lo fai troppo. – skaffman

1

questo tipo complesso sarà sempre risolvere per

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

se non si desidera una struttura di bambino, è possibile definire Id e la versione come elementi di riferimento e utilizzando

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

in seguito. Ma poi non si ha la garanzia che entrambi si verificano

È anche possibile fare Id e la versione attributi all'elemento Identifier in un tipo complesso

buona fortuna Mike

Problemi correlati