2009-10-16 9 views
5

J'ai ce type complexe:Inclure des éléments de type complexe XSD Sans nouvel élément

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

Maintenant, je veux inclure dans un autre type complexe et je l'ai fait ça comme ça:

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

Ce n'est pas ce que je veux vraiment. Je veux inclure les éléments du type Identifiant directement dans mon deuxième type complexe sans créer un nouvel élément. Par exemple. la même chose que de faire ceci:

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

Espérons que cela a du sens.

Merci d'avance.

Répondre

6

Vous pouvez étendre les types, comme ceci:

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

Parfait - merci. Savez-vous comment inclure plusieurs extensions dans un seul type complexe? – ng5000

+1

Trouvé la réponse. Ce que je voulais, c'était de l'héritage multiple, ce qui peut être réalisé en utilisant xsd: group. – ng5000

+0

Oui, les groupes sont des choses très pratiques, bien qu'ils puissent être déroutants si vous les faites trop. – skaffman

1

ce type complexe sera toujours résoudre à

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

si vous ne voulez pas une structure d'enfant, vous pouvez définir Id et version comme éléments et les référencer en utilisant

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

plus tard. Mais alors vous n'avez pas la garantie que les deux se produisent

Vous pouvez également Id et version attributs à l'élément identificateur dans un type complexe

bonne chance Mike

Questions connexes