xs:choice (außerhalb einer Gruppe)

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

Kompositor zur Definition einer Gruppe sich gegenseitig ausschließender Elemente oder Kompositoren.

<xs:choice
    id = xs:ID
    maxOccurs = ( xs:nonNegativeInteger | "unbounded" ) : "1"
    minOccurs = xs:nonNegativeInteger : "1"
    {beliebige Attribute mit einem Nicht-Schema-Namensraum}
    >
    Content: (xs:annotation?, (xs:element | xs:group | xs:choice | xs:sequence | xs:any)
    )*)
</xs:choice>

Kann auftreten innerhalb von: xs:choice (außerhalb einer Gruppe), xs:choice (innerhalb einer Gruppe), xs:complexType (lokale Definition), xs:complexType (globale Definition), xs:extension (komplexer Inhalt), xs:restriction (komplexer Inhalt), xs:sequence (innerhalb einer Gruppe), xs:sequence (außerhalb einer Gruppe)

Beschreibung

xs:choice ist ein Kompositor, der eine Gruppe sich gegenseitig ausschließender Partikeln definiert. Im Instanzdokument darf je Vorkommen des xs:choice-Kompositors nur eine der Partikeln stehen. Die Auftretenshäufigkeit des Kompositors selbst wird durch seine Attribute minOccurs und maxOccurs gesteuert, während die Auftretenshäufigkeit jeder Partikel innerhalb eines einzigen Vorkommens von xs:choice durch die Attribute minOccurs und maxOccurs der jeweiligen Partikel gesteuert werden kann.

Zusätzlich zu Situationen, in denen einfache Auswahlen ausgedrückt werden (»Hier kann Element ›a‹ oder ›b‹ akzeptiert werden«), wird xs:choice oft verwendet, um die Beschränkungen von xs:all zu umgehen und Inhaltsmodelle zu definieren, bei denen eine unbeschränkte Anzahl von Elementen in beliebiger Reihenfolge auftreten können (siehe das Beispiel).

Wenn die Partikel, die in einem xs:choice-Kompositor verwendet wird, ein Element ist, kann ein ähnliches Ergebnis mit Hilfe von Ersetzungsgruppen erreicht werden.

Einschränkungen

Der xs:choice-Kompositor kann Verletzungen der Regel von der eindeutigen Partikelzuordnung und der Regel von der konsistenten Deklaration verursachen.

Beispiel

<xs:choice>
    <!-- Erlaubt entweder "name" oder die Sequenz "first-name", "middle-name" und "last-name". -->
    <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>

Attribute

id
Element-ID laut W3C XML Schema.

maxOccurs
Maximale Auftretenshäufigkeit des choice-Kompositors.

minOccurs
Minimale Auftretenshäufigkeit des choice-Kompositors.

   

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