xs:complexType (lokale Definition)

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

Lokale Definition eines komplexen Typs (lokale Definitionen können nicht referenziert werden).

<xs:complexType
    id = xs:ID
    mixed = xs:boolean : "false"
    {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:element (innerhalb von xs:all), xs:element (Verweis oder lokale Definition), xs:element (globale Definition)

Beschreibung

Die Definition eines komplexen Typs kann auf verschiedenen Wegen erzeugt werden. Sie kann durch Ableitung mit Hilfe eines der Elemente xs:simpleContent (für einfache Inhaltsmodelle) oder xs:complexContent (für komplexe Inhaltsmodelle) erreicht werden, oder sie kann beschrieben werden mit Hilfe von xs:sequence (für eine geordnete Sequenz von Elementen), xs:choice (für eine Auswahl aus verschiedenen Elementen), xs:all (für eine ungeordnete Aufzählung von Elementen) oder xs:group (um auf eine Gruppe von Elementen zu verweisen), und zusätzlich kann mit xs:attribute, xs:attributeGroup und xs:anyAttribute die Menge seiner Attribute definiert werden.

Komplexe Typen beschreiben sämtliche Bedingungen für die Element-, Zeichen- und Attributknoten, die in das Element aufgenommen werden dürfen, außer denjenigen, die durch xs:unique, xs:key und xs:keyref beschrieben werden, die unmittelbar unterhalb der jeweiligen Elementdefinition mit xs:element festgelegt werden.

Einschränkungen

Beschränkungen, die durch xs:unique, xs:key und xs:keyref festgelegt werden, werden nicht innerhalb der komplexen Typen definiert, sondern unmittelbar unterhalb der jeweiligen Elementdefinition mit xs:element.

Lokale Definitionen können weder abgeleitet (durch Einschränkung oder Erweiterung) noch ersetzt werden. Außerdem sind die Ableitung durch Einschränkung komplexer Typen und die Redefinition durch Einschränkung von Elementgruppen (auch der von Elementen, die mit lokalen Definitionen komplexen Typs definiert sind), begrenzt, da Ableitungen durch Einschränkung die Elemente, die beibehalten werden, mit expliziten Ableitungen redefinieren müssen.

Im Gegensatz zu anderen Komponenten (xs:element, xs:attribute, xs:group und xs:attributeGroup) können lokale xs:complexType-Komponenten nicht benutzt werden, um globale komplexe Typen zu referenzieren. Verweise auf komplexe Typen werden durch das type-Attribut von xs:element sowie das base-Attribut von xs:restriction und xs:extension realisiert.

Beispiel

<xs:element name="title">
    <xs:complexType>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute ref="lang"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:element>

Attribute

id
Element-ID laut W3C XML Schema.

mixed
Legt fest, ob der Inhaltstyp gemischt sein wird.

   

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