Share via


<xsd:complexType>-Element

Definiert einen komplexen Typ, der die Gruppe von Attributen und den Inhalt eines Elements bestimmt.

<complexType
  abstract = Boolean : false 
  block = (#all | List of (extension | restriction))
  final = (#all | List of (extension | restriction))
  id = ID 
  mixed = Boolean : false
  name = NCName 
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleContent | complexContent | ((group | all | 
choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>

Attribute

  • abstract
    Ein Indikator dafür, ob der komplexe Typ in einem Instanzdokument verwendet werden kann. Wenn dieser Wert true ist, kann ein Element diesen komplexen Typ nicht direkt verwenden, sondern muss einen von diesem komplexen Typ abgeleiteten komplexen Typ verwenden. Der Standardwert ist false.

    Dies ist optional.

  • block
    Der Typ der Ableitung. Das block-Attribut verhindert, dass ein komplexer Typ mit dem angegebenen Ableitungstyp anstelle dieses komplexen Typs verwendet wird. Der Wert kann #all bzw. eine Liste enthalten, die eine Teilmenge von extension oder restriction darstellt. Das block-Attribut wird nur verwendet, wenn ein Instanzdokument während der Validierung den normalen Typ für ein Element mithilfe des schema-instance:type-Attributs überschreibt. Durch das block-Attribut kann verhindert werden, dass Elemente durch Erweiterung und/oder Einschränkung definierte komplexe Typen auswählen, um den für ein Element angegebenen ursprünglichen Typ zu ersetzen.

    Erweiterung

    Verhindert, dass durch Erweiterung abgeleitete Typen anstelle dieses komplexen Typs verwendet werden.

    Einschränkung

    Verhindert, dass durch Einschränkung abgeleitete Typen anstelle dieses komplexen Typs verwendet werden.

    #all

    Verhindert, dass alle abgeleiteten komplexen Typen anstelle dieses komplexen Typs verwendet werden.

    Dies ist optional.

  • final
    Der Typ der Ableitung. Das final-Attribut verhindert den angegebenen Ableitungstyp dieses complexType-Elements. Der Wert kann #all bzw. eine Liste enthalten, die eine Teilmenge von extension oder restriction darstellt.

    Erweiterung

    Verhindert eine Ableitung durch Erweiterung.

    Einschränkung

    Verhindert eine Ableitung durch Einschränkung.

    #all

    Verhindert jegliche Ableitung (durch Erweiterung oder Einschränkung).

    Dies ist optional.

  • id
    Die ID dieses Elements. Der id-Wert muss vom Typ "ID" sein und innerhalb des Dokuments, in dem dieses Element enthalten ist, eindeutig sein.

    Dies ist optional.

  • Gemischt
    Ein Indikator dafür, ob die Zeichendaten zwischen den untergeordneten Elementen dieses komplexen Typs angezeigt werden dürfen. Der Standardwert ist false.

    Wenn das simpleContent-Element ein untergeordnetes Element darstellt, ist das mixed-Attribut nicht zulässig.

    Wenn das complexContent-Element ein untergeordnetes Element darstellt, kann dieses mixed-Attribut mit dem mixed-Attribut des complexContent-Elements überschrieben werden.

    Dies ist optional.

  • Name
    Der Name des Typs. Der Name muss gemäß der Definition in der Spezifikation für XML-Namespaces ein NCName (Name ohne Doppelpunkt) sein.

    Erforderlich, wenn es sich bei dem enthaltenden Element um das schema-Element handelt, andernfalls nicht zulässig.

    Wenn der Name angegeben ist, muss er für alle simpleType-Elementen und complexType-Elementen eindeutig sein.

    Dies ist optional.

Elementinformationen

Anzahl der Vorkommen

Unbegrenzt im Schema; einmal im Element.

Übergeordnete Elemente

element, redefine, schema

Inhalt

annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute

Hinweise

Bei einem komplexen Typ handelt es sich im Wesentlichen um eine Typdefinition für Elemente, die Attribute und Elemente enthalten können. Ein Element kann mit einem type-Attribut deklariert werden, das sich auf ein die Struktur, den Inhalt und die Attribute dieses Elements definierendes complexType-Element bezieht. (Elemente können auch auf ein simpleType im type-Attribut verweisen).

Ein komplexer Typ kann nur eines der folgenden Elemente enthalten, das den Typ des im komplexen Typ zulässigen Inhalts bestimmt.

Element

Beschreibung 

simpleContent

Der komplexe Typ verfügt über Zeichendaten oder simpleType als Inhalt und enthält keine Elemente, jedoch möglicherweise Attribute.

complexContent

Der komplexe Typ enthält nur Elemente oder keinen Elementinhalt (leer).

Gruppe

Der komplexe Typ enthält die Elemente, die in der Gruppe definiert sind, auf die verwiesen wird.

Sequenz

Der komplexe Typ enthält die in der angegebenen Sequenz definierten Elemente.

Auswahl

Für den komplexen Typ ist nur eines der im Auswahlelement angegebenen Elemente zulässig.

all

Der komplexe Typ lässt eine beliebige Anzahl von Elementen oder alle Elemente zu, die im all-Element angegeben sind und einmal angezeigt werden sollen.

Wenn group, sequence, choice oder all als untergeordnetes Element angegeben ist, können die Attribute für complexType optional mithilfe der folgenden Elemente deklariert werden.

Element

Beschreibung 

Attribut

Das angegebene Attribut ist im komplexen Typ enthalten.

attributeGroup

Der komplexe Typ enthält die Attribute, die im attributeGroup-Element definiert sind, auf das verwiesen wird.

anyAttribute

Der komplexe Typ kann jedes beliebige Attribut aus dem (den) angegebenen Namespace(s) enthalten.

Es kann eine beliebige Anzahl von attribute-Elementen oder attributeGroup-Elementen verwendet werden. Eine Instanz von anyAttribute kann ebenfalls verwendet werden.

Wenn group, sequence, choice oder all angegeben ist, müssen die Elemente die folgende Reihenfolge aufweisen.

  1. Gruppe | Sequenz | Auswahl | all

  2. Attribut | attributeGroup

  3. anyAttribute

Beispiele

Im folgenden Beispiel wird ein komplexer Typ veranschaulicht, der einen einfachen Typ (decimal) mit einer Attribut- und Elementdeklaration enthält, die wiederum einen komplexen Typ verwendet.

<xs:complexType name='internationalShoeSize'>
 <xs:simpleContent>
  <xs:extension base='xs:decimal'>
   <xs:attribute name='sizing' type='xs:string' />
  </xs:extension>
 </xs:simpleContent>
</xs:complexType>
<xs:element name='myShoeSize' type='internationalShoeSize'/>

Im folgenden Beispiel wird eine Instanz des myShoeSize-Elements in einem XML-Dokument dargestellt.

<myShoeSize sizing='UK'>10.5</myShoeSize>

Im folgenden Beispiel wird ein myShoeSize-Element mit complexType dargestellt, das im Element anonym definiert ist. (Beachten Sie, dass das name-Attribut nicht vorhanden ist.)

<xs:element name='myShoeSize'>
 <xs:complexType>
  <xs:simpleContent>
   <xs:extension base='xs:decimal'>
     <xs:attribute name='sizing' type='xs:string' />
   </xs:extension>
  </xs:simpleContent>
 </xs:complexType>
</xs:element>

Siehe auch

Referenz

Referenz zu XML-Schemata (XSD)

Elemente des XML-Schemas