xs:complexType (globale Definition)

(Auszug aus "XML Schema" von Eric van der Vlist)

Globale Definition eines komplexen Typs, die innerhalb desselben Schemas oder durch andere Schemas referenziert werden kann.

<xs:complexType
    abstract = xs:boolean : "false"
    block = ( "#all" | list of ( "extension" | "restriction" ) )
    final = ( "#all" | list of ( "extension" | "restriction" ) )
    id = xs:ID
    mixed = xs:boolean : "false"
    name = xs:NCName
    {beliebige Attribute mit einem Nicht-Schema-Namensraum}
    >
    Content: (xs:annotation?, (xs:simpleContent | xs:complexContent | (, (xs:group | xs:all | xs:choice | xs:sequence)?, ((xs:attribute | xs:attributeGroup)*, xs:anyAttribute? ?))))
</xs:complexType>

Kann auftreten innerhalb von: xs:redefine, xs:schema

Beschreibung

Diese Komponente wird verwendet, um globale komplexe Typen durch unmittelbare Beschreibungen ihres Inhaltsmodells oder durch Ableitung von einfachen Typen oder anderen komplexen Typen zu erzeugen. Die Erzeugung eines neuen komplexen Typs geschieht durch einen Kompositor (xs:sequence, xs:choice oder xs:all), der die Kindelemente beschreibt, gefolgt von einer Aufzählung der Attribute (oder Attributgruppen oder Attribut-Wildcards). Die Ableitung eines komplexen Typs von bereits vorliegenden einfachen oder komplexen Typen geschieht durch Angabe eines der Elemente xs:simpleContent (für einfache Inhalte) oder xs:complexContent (für komplexe Inhalte). Sofern der Inhalt nicht einfach ist, legt in beiden Fällen das Attribut mixed fest, ob das Inhaltsmodell gemischt ist (d.h., ob es sowohl Text- als auch Elementknoten zuläßt) oder nicht.

Mehrere Steuerungsmöglichkeiten werden durch die Attribute geboten. Komplexe Typen können für »abstrakt« erklärt werden, ihre Ersetzung kann »blockiert« werden, und sie können für Ableitungszwecke »final« sein.

Einschränkungen

Beschränkungen zu Schlüsseln (xs:key, xs:unique und xs:keyref) können auf dieser Ebene nicht definiert werden, sondern müssen im Element xs:element angegeben werden. Während in vielen Fällen der Verweis auf eine globale Elementdefinition oder eine globale Definition eines komplexen Typs als gleichbedeutend mit der Definition modularer Inhaltsmodelle betrachtet werden kann, bedeutet dies, daß komplexe Typen nicht mehr zur Wahl stehen, wenn solche Einschränkungen in das Inhaltsmodell eingebunden werden müssen.

Beispiel

<xs:complexType name="title">
    <xs:simpleContent>
        <xs:extension base="tokenWithLang">
            <xs:attribute name="note" type="xs:token"/>
        </xs:extension>
    </xs:simpleContent>
</xs:complexType>

Attribute

abstract
Wenn der Wert true ist, kann dieser komplexe Typ nicht unmittelbar in den Instanzdokumenten verwendet werden, sondern muß mit Hilfe des Attributs xsi:type ersetzt werden.

block
Steuert, ob eine Ersetzung (entweder durch xsi:type oder durch Ersetzungsgruppen) durch einen komplexen Typ vorgenommen werden kann, der eine Erweiterung oder eine Einschränkung des vorliegenden komplexen Typs ist. Dieses Attribut kann nur diejenigen Ersetzungen blockieren (sie können nicht »entblockiert« werden), die auch in der Elementdefinition blockiert werden können. Der Standardwert wird durch das Attribut blockDefault von xs:schema festgelegt.

final
Steuert, ob der komplexe Typ durch Erweiterung oder Einschränkung weiter abgeleitet werden kann, um neue komplexe Typen zu erzeugen.

id
Element-ID laut W3C XML Schema.

mixed
Definiert, ob das Inhaltsmodell gemischt sein wird.

name
Name des komplexen Typs.

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML Schema bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2003 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML Schema" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de