| |
2.2.4 Die XML Query Language
Im Februar 2001 veröffentlichte die XML Query Working Group ihren ersten Entwurf für eine XML
Anfragesprache namens XQuery. Sie basiert auf der zuvor entwickelten Algebra und dem
dazugehörigen Datenmodell, und soll so die Vielfältigkeit von XML ausnutzen. Daraus resultieren
jedoch vielseitige Anforderungen.
Anforderungen
Wie für das XML Data Model wurden zunächst Anforderungen an eine XML Anfragesprache in
[CFMR01b] spezifiziert. Demnach sollte eine Anfragesprache eine intuitive und leicht lesbare Syntax
haben, die sich in XML ausdrücken läßt. Eine weitaus genauer spezifizierte Anforderung ist, daß die
Sprache deklarativ sein muß. Diese Forderung erleichtert sicherlich, in Anlehnung an SQL oder OQL,
den Umgang mit einer Sprache. Weiterhin ist es notwendig, standardisierte Fehlerbedingungen zu
definieren, die während der Ausführung einer Anfrage auftreten können.
Des weiteren wurde in den Anforderungen auch funktionale Aspekte spezifiziert. So muss die Query
Language beispielsweise Operationen über allen möglichen Datentypen des Datenmodells gestatten.
Diese
Operationen
entsprechen
größtenteils
den
Bekannten
aus
herkömmlichen
Datenbanksystemen. Übertragen auf XML bedeuten diese z.B. die Selektion, Aggregation, oder
Sortierung von Elementen eines Dokumentes, oder mit Joins mehrere XML-Dokumente anhand von
Elementen oder Attributen in Beziehung zu setzen. Als letztes sei noch die Forderung nach der
Unterstützung von Namensräume genannt.
Die Sprache
XQuery ist eine Anfragesprache, die von vielen anderen Konzepten beeinflusst wurde. Zum Beispiel
übernahm man von SQL die Idee, die Anfragen auf Schlüsselwörtern mit bestimmten Mustern
(SELECT-FROM-WHERE) zu basieren. Auf weitere verwandte Anfragesprachen wird im nächsten
Kapitel näher eingegangen.
XQuery ist eine funktionale Sprache, wo Anfragen mittels Ausdrücken gestellt werden. Die Eingabe
und Ausgabe einer Anfrage ist eine Instanz des XML Query Data Model, welches eine Verbesserung
des Datenmodells in XPath ist, wo ein Dokument als Baum von Knoten interpretiert wird.
Wir verzichten hier auf die vollständige Syntax und erläutern einige XQuery Ausdrücke anhand
einiger Beispiele:
Pfad-Ausdrücke
Für Pfad-Ausdrücke wird im wesentlichen die verkürzte Syntax von XPath verwendet.
Anfrage: Finde alle Titel der Bücher des Dokumentes bib.xml.
document("bib.xml")//item/titel
Element-Konstruktoren:
Mit Element-Konstruktoren werden in XQuery-Ausdrücken Elemente erzeugt. Dazu wird ein Starttag
und ein Endtag angegeben, die eine Anzahl von Ausdrücken beinhalten, die nachher den Inhalt des
Elements bilden. Mit dem starttag können auch die Werte von einem oder mehreren Attributen
zugewiesen werden. Der Name des Tags kann entweder eine Konstante sein oder wie im folgenden
Beispiel eine Variable.
Anfrage: Erzeuge ein Element, mit einem variablen Namen, das Elemente <description> und <price>
enthalten soll.
<$tagname>
<description> $d </description> ,
<price> $p </price>
</$tagname>
Dabei werden alle Variablen (d, p und tagname) an einer anderen Stelle der Anfrage defniniert.
15
|  |
|
| |
|
|