Erforschung der Landschaft

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

W3C XML Schema hat viele verschiedene Wege eingeführt, auf denen man das Ziel der Informationsmodellierung erreichen kann. Wir werden ein globales Bild der Landschaft zu zeichnen versuchen, um zu verhindern, daß wir uns verlaufen. Wir müssen zwei grundlegende Entscheidungen treffen: welches Inhaltsmodell wir verwenden und ob wir neue Typen erzeugen oder sie von vordefinierten Typen ableiten.

Inhaltsmodelle

Kehren wir zur Definition der Inhaltsmodelle zurück und versuchen wir, die verschiedenen Fälle in der folgenden Tabelle zu veranschaulichen. Sie zeigt den Zusammenhang zwischen Inhaltsmodell und Kindknoten mit Text bzw. Elementen.

Tabelle: Inhaltsmodelle

InhaltsmodellGemischtKomplexEinfachLeer
KindelementeJaJaNeinNein
KindtextJaNeinJaNein

W3C XML Schema stellt im wesentlichen zwei Arten zur Definition komplexer Typen zur Verfügung: eine für komplexe und eine für einfache Inhaltsmodelle. Zusätzlich gibt es eine Reihe von Tricks, um die Definition von gemischtem und von leerem Inhalt auf diese Definitionen aufzusetzen (für gemischten Inhalt durch das Attribut mixed bei der Definition eines komplexen Typs; für leeren Inhalt dadurch, daß man die Möglichkeit, Elemente zu deklarieren oder einfachen Inhalt zuzuweisen, nicht nutzt und dadurch einen Nullinhalt festlegt).

Benannte und anonyme Typen

Genau wie einfache Datentypen können auch komplexe Datentypen entweder benannt (d.h. global) oder anonym (d.h. lokal) sein. Globale Definitionen müssen einen Namen tragen und Elemente der obersten Ebene sein, die unmittelbar unterhalb des Dokumentenelements xs:schema enthalten sind. Auf die globalen Definitionen kann dann mit dem Elementattribut type direkt in einer Elementdefinition verwiesen werden; neue komplexe Typen können von den globalen Definitionen abgeleitet werden. Lokale komplexe Typen werden unmittelbar dort in einem Schema, wo sie benötigt werden, definiert; sie sind anonym (d.h., sie haben kein Namensattribut), und sie haben nur einen lokalen Gültigkeitsbereich.

Erzeugung und Ableitung

Für einfache Datentypen gibt es keine Wahl: Man kann keine neuen primitiven Datentypen erzeugen, man kann nur durch Ableitung neue Datentypen definieren. Für komplexe Datentypen ist die Lage genau umgekehrt: Es gibt keine primitiven komplexen Typen, komplexe Typen müssen zunächst erzeugt werden, bevor man Ableitungen vornehmen kann. Wenn wir unsere ersten komplexen Typen erzeugen, haben wir die Wahl, ob wir neue Inhaltsmodelle aus dem Nichts erzeugen oder ob wir sie durch Erweiterung oder Einschränkung von bereits definierten komplexen Typen ableiten. Das ermöglicht es, Bibliotheken komplexer Datentypen innerhalb eines Schemas oder über verschiedene Schemas hinweg wiederzuverwenden. Was die Validierung angeht, machen diese Ableitungen gegenüber einfacheren Definitionen keinen Unterschied: Sie erlauben die Definition genau der gleichen Modelle, die auf dieselben Instanzdokumente passen. Andererseits könnten einige Anwendungen in der Lage sein, aus der Kette der Ableitungen Schlußfolgerungen zu ziehen.

   

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