xs:group (Definition)

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

Globale Elementgruppen-Deklaration, die innerhalb desselben Schemas oder durch andere Schemas referenziert werden kann.

<xs:group
    name = xs:NCName
    >
    Content: (xs:annotation?, (xs:all | xs:choice | xs:sequence))
</xs:group>

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

Beschreibung

Gruppen von Elementen können global definiert und als Container verwendet werden, die an anderen Stellen in diesem Schema oder in anderen Schemas verwendet werden können. Diese Container, die fast semantikfrei sind, sind sehr flexibel und können als Bausteine für die Definition lokaler oder globaler komplexer Typen verwendet werden.

Da sie globale Komponenten sind, können sie auch verwendet werden, um Elementdefinitionen zu kapseln, die nicht global gemacht werden können, wie beispielsweise unqualifizierte Elemente in einem Schema mit Ziel-Namensraum, mehrere Elemente mit demselben Namen in einem Schema, Elemente, die nicht als Dokumentenelemente verwendet werden sollten, oder Elemente, die in anderen Schemas durch xs:redefine redefiniert werden können sollen.

Elementgruppen können durch xs:redefine redefiniert werden; die Redefinition kann entweder eine Einschränkung (ähnlich einer Ableitung eines komplexen Typs durch Einschränkung) oder eine Erweiterung sein. (Dies ist flexibler als eine Erweiterung eines komplexen Typs, da der Ort, an dem die Basisgruppe in die neue Gruppe eingebunden wird, gewählt werden kann, während neue Elemente bei einer Ableitung durch Erweiterung stets nach dem Basistyp angeordnet werden.)

Jeder der drei Kompositoren (xs:all, xs:sequence oder xs:choice) kann gewählt werden, um eine Elementgruppe zu erzeugen.

Einschränkungen

Wenn eine Gruppe mit Hilfe eines xs:all-Kompositors erzeugt wird, erbt diese Gruppe sämtliche Einschränkungen von xs:all. Mit anderen Worten, einen xs:all-Kompositor in eine Gruppe einzubinden schafft die fundamentalen Einschränkungen von xs:all nicht aus der Welt.

Gruppendefinitionen können nicht rekursiv sein.

Beispiel

<xs:group name="name">
    <xs:choice>
        <xs:element ref="name"/>
        <xs:sequence>
            <xs:element ref="first-name"/>
            <xs:element ref="middle-name" minOccurs="0"/>
            <xs:element ref="last-name"/>
        </xs:sequence>
    </xs:choice>
</xs:group>

Attribute

name
Name der Gruppe (unqualifiziert).

   

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