| |
als Working Draft vorliegt, entwickelt. Dabei orientierten sie sich natürlich stark an bestehenden
Entwicklungen wie XPath und dem XML Information Set.
Das XML Query Data Model definiert nun formal den Aufbau der Informationen, die als Input von
einem XML Query processor verarbeitet werden. Der XML Query processor berechnet also eine
Anfrage mittels einer Instanz des Datenmodells2, wobei eine Instanz ein oder mehrere XML-
Dokumente oder Dokumententeile repräsentiert.
Anforderungen
Nach [CFMR01b] ist es notwendig, daß das Datenmodell Datentypen unterstützen muß, die aus dem
XML Standard und der Spezifikation des XMLSchema hervorgehen. Dies umfaßt demnach Character
Data (CDATA) und einfache & komplexe Datentypen aus der Schemaspezifikation. Weiterhin sollte
es möglich sein Bezug auf andere Daten, die sowohl innerhalb eines Dokumentes als auch extern
vorhanden sind, nehmen zu können. Ferner müssen Mengen von XML-Dokumenten repräsentierbar
sein.
Konzepte
Da XML-Dokumente, wie in Kapitel 1 beschrieben, eine Baum-Struktur haben, benutzt auch das
Datenmodell dieses Konzept. Um Bäume zu beschreiben existieren verschiedene formale Konzepte,
von denen zwei hier kurz dargestellt werden [FR01].
Die graphentheoretische Repräsentation beschreibt einen Baum als ein Tupel (N,E,r), wobei N eine
Menge von Knoten, E eine Menge von Kanten und r der Wurzelknoten ist. Dabei bezeichnet die
Menge der Kanten von Elternknoten zu ihren Kinderknoten eine 1:N Beziehung.
Ein anderes Konzept ist die Repräsentation durch sog. Baumkonstruktoren, die einen Baum durch
rekursive Anwendung von Baumkonstruktor-Funktionen, auf eine Liste seiner Teilbäume beschreibt.
In beiden Konzepten können die Daten des Baums an die Knoten (node-labeled) oder an die Kanten
(edge-labeled) gebunden werden.
Spezifikation
Das XML Query Data Model basiert nun auf dem Konzept des Baumkonstruktors mit beschrifteten
Knoten, wobei auch noch Knotenidentität unterstützt wird. Dabei wird jedem Knoten einen
eindeutigen Identifikator (kurz ID) zugeordnet, womit die Darstellung von Referenzen in XML
vereinfacht wird. Die Basis des Datenmodells sind Knoten und Funktionen, wobei zwischen
constructors und accessors unterschieden wird. Constructors dienen dem Aufbau von Baumknoten
und die accessors dem Zugriff auf diese. Diese Operatoren bilden die Grundlage der XML Query
Algebra [FR01].
Wie schon erwähnt bilden die Knoten das Basiskonzept des Datenmodells. Dabei gibt es
folgende 9 verschiedene Knotentypen:
Node = DocNode | ElemNode | ValueNode | AttrNode
| NSNode | PINode | CommentNode | InfoItemNode
| RefNode
Jedes dieser Knoten hat nun eigene bestimmte Konstruktoren und Accessoren. Als Beispiel werden die
des Knotentyps DocNode angeben:
Konstruktor:
docNode : (uriReference, [ ElemNode | PINode | CommentNode])
-> DocNode
D.h. der Konstruktor docNode hat als Parameter eine URI reference und einen nichtleeren geordneten
Baum seiner Kinderknoten.
2
Im weiteren entspricht der Ausdruck Datenmodell dem XML Query Data Model
8
|  |
|
| |
|
|