Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.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.extension
Verhindert, dass durch Erweiterung abgeleitete Typen anstelle dieses komplexen Typs verwendet werden.
restriction
Verhindert, dass durch Einschränkung abgeleitete komplexe Typen anstelle dieses komplexen Typs verwendet werden.
#all
Verhindert, dass alle abgeleiteten komplexen Typen anstelle dieses komplexen Typs verwendet werden.
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.extension
Verhindert eine Ableitung durch Erweiterung.
restriction
Verhindert eine Ableitung durch Einschränkung.
#all
Verhindert jegliche Ableitung (durch Erweiterung oder Einschränkung).
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.Optional.
mixed
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.
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 unter allen simpleType-Elementen und complexType-Elementen eindeutig sein.
Optional.
Elementinformationen
Anzahl der Vorkommen |
Unbegrenzt im Schema; einmal im Element. |
Übergeordnete Elemente |
|
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). |
group |
Der komplexe Typ enthält die Elemente, die in der Gruppe definiert sind, auf die verwiesen wird. |
sequence |
Der komplexe Typ enthält die in der angegebenen Sequenz definierten Elemente. |
choice |
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 |
|---|---|
attribute |
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.
group | sequence | choice | all
attribute | attributeGroup
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.
Im folgenden Beispiel wird eine Instanz des myShoeSize-Elements in einem XML-Dokument dargestellt.
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.)