xs:list

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

Ableitung durch Aufzählung.

<xs:list
    id = xs:ID
    itemType = xs:QName
    {beliebige Attribute mit einem Nicht-Schema-Namensraum}
    >
    Content: ((xs:annotation?), (xs:simpleType?))
</xs:list>

Kann auftreten innerhalb von: xs:simpleType (lokale Definition), xs:simpleType (globale Definition)

Beschreibung

Ableitung durch Aufzählung ist der Vorgang der Umformung eines einfachen Datentyps (»Einzeltyp« genannt) in eine Whitespace-getrennte Aufzählung von Werten dieses Datentyps.

Der Einzeltyp kann inline durch Hinzufügen einer simpleType-Definition als Kindelement des Listenelements oder durch Verweis mit Hilfe des Attributs itemType definiert werden (beide zu verwenden ist ein Fehler).

Die Semantik des Einzeltyps und die Menge der auf ihn anwendbaren Facetten gehen verloren. Der neue Datentyp erhält eine Menge von Facetten, die allen Listen-Datentypen gemeinsam ist: xs:enumeration, xs:length, xs:maxLength, xs:minLength und xs:pattern. Whitespace wird stets zusammengefaßt.

Nach einer Ableitung durch Aufzählung ist der Typ des sich ergebenden Datentyps eine Aufzählung dessen, was der Einzeltyp war (atomar oder Vereinigung).

Es ist möglich, Aufzählungen atomarer Datentypen zu definieren, die Whitespace zulassen, wie etwa xs:string. In diesem Fall wird Whitespace stets als Trennzeichen angesehen.

Einschränkungen

Die Facetten, die auf einen Listen-Datentyp angewendet werden können, sind allen Listen-Datentypen gemeinsam und fügen der Liste als Ganzem Bedingungen hinzu (nicht etwa den einzelnen Einträgen, aus denen sich die Liste aufbaut). Die Bedingungen für die Einträge, aus denen sich die Liste aufbaut, müssen daher vor der Ableitung durch Aufzählung angewendet werden.

Die Listentrennzeichen können nicht gewählt werden, die Trennung erfolgt vielmehr stets durch Whitespace.

Es wird durch die Recommendation ausdrücklich verboten, Listen von Listen zu definieren. Sowohl Listen von Vereinigungen als auch Vereinigungen von Listen sind erlaubt, deswegen sollte es möglich sein, diese Begrenzung zu umgehen, indem man eine Dummy-Vereinigung einer Liste definiert und diese Vereinigung bei Bedarf als Listeneintrag verwendet. Da alle Listentypen jedoch dieselbe Menge von Trennzeichen haben, sind Listen von Listen letztlich sinnlos.

Beispiel

<xs:simpleType name="integerList">
    <xs:list itemType="xs:integer"/>
</xs:simpleType>

Attribute

id
Element-ID laut W3C XML Schema.

itemType
Verweis auf den Einzeltyp, wenn er nicht inline durch ein xs:simpleType-Element definiert ist.

   

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