2009-10-16 5 views
5

ich diesen komplexen Typ haben:enthalten Elemente in XSD komplexer Typ Ohne Neues Element

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

Jetzt möchte ich dies in einem anderen komplexen Typ gehören, und ich habe gezeigt, dass wie dies zu tun:

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

Das ist nicht, was ich wirklich will. Ich möchte die Elemente des Bezeichner-Typs direkt in meinen zweiten komplexen Typ einfügen, ohne ein neues Element zu erstellen. Z.B. das gleiche wie nur das tun:

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

Hoffnung, die Sinn macht.

Vielen Dank im Voraus.

Antwort

6

Sie Typen erweitern können, wie folgt:

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

Perfekt - danke. Wissen Sie, wie Sie mehrere Erweiterungen in einen einzigen komplexen Typ einschließen? – ng5000

+1

Die Antwort gefunden. Was ich wollte, war Mehrfachvererbung, die mit xsd: group erreicht werden kann. – ng5000

+0

Aye, Gruppen sind sehr handliche Dinge, obwohl sie verwirrend werden können, wenn du es übertreibst. – skaffman

1

wird diese komplexe Art immer lösen

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

wenn Sie nicht über ein Kind Struktur wünschen könnten Sie Id und Version als Elemente definieren und

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

später mit verweisen. Aber dann haben Sie nicht die Garantie, dass sie beide vorkommen

Sie können auch Id und Version machen Attribute zum Identifier Element in einem komplexen Typ

Glück Mike