| |
FLWR-Ausdrücke (FOR, LET, WHERE, RETURN:
Ein FLWR-Ausdruck bindet Werte an Variablen (FOR und/oder LET), gibt Bedingungen für diese
Variablen an (WHERE) und erzeugt die Ausgabe (RETURN). Diese Ausgabe ist wieder eine Instanz
des Datenmodells, also ein Knoten, ein einzelner Wert oder ein geordneter Baum.
Anfrage: Liste alle Titel der Bücher auf ,die 2001 veröffentlicht wurden.
FOR $b IN document("bib.xml")//item
WHERE $b/@typ = Buch
AND $b/jahr = "2001"
RETURN $b/titel
Bei dieser Abfrage ist zu beachten, dass das Ergebnis kein wohlgeformtes XML-Dokument ist, da das
root-Element fehlt. Im Datenmodell wird das Ergebnis dann als Liste von Knoten dargestellt.
IF THEN ELSE:
Anfrage: Für Bücher soll der Titel und der Autor ausgegeben werden, für Magazine der Titel und der
Redakteur.
FOR $b IN document(bib.xml)//item
RETURN
<result>
$b/titel,
IF $b/@typ = Buch
THEN $b//author
ELSE $b//redakteur
</result>
2.3 Verwandte Entwicklungen
Nachfolgend werden einige Anfragesprachen kurz vorgestellt, die in die Entwicklung von XQuery mit
eingeflossen sind. Auf eine genaue Beschreibung der Syntax wird dabei verzichtet, und auf die
entsprechenden Literaturangaben verwiesen.
Die XML Query Language (Arbeitstitel XQL) ist im wesentlichen eine Sprache zum Adressieren und
Filtern von Daten in bzw. aus einzelnen XML-Dokumenten. Der Sprachvorschlag ([LRS98]) wurde
im September 1998 bei der XSL-Arbeitsgruppe des W3C als eine mögliche Erweiterung von XSLT
eingereicht, jedoch nie als Standard verabschiedet. Aufgrund der Einfachheit und des Alters von XQL
existieren heute jedoch trotzdem zahlreiche Implementierungen. XQuery übernahm von XQL unter
anderem die Syntax der Pfadausdrücke für hierarchisch strukturierte Dokumente.
XML-QL wurde in den AT&T Labs entwickelt und ist wesentlich mächtiger als XQL. Die Syntax ist
eine Kombination von typischen Anfragesprachen und XMLSyntax allgemein. Das gewährleistet das
die Sprache, genau wie die Daten, leicht verständlich ist [DFF+99]. XML-QL hat die Entwicklung von
XQuery in der Hinsicht beeinflusst, dass die Idee der Bindung von Variablen und die Verwendung
dieser gebundenen Variablen zum Aufbau neuer Strukturen in der Sprache Quilt realisiert ist.
Quilt ist eine relativ junge Sprache. Einige Entwickler arbeiteten bereits an anderen existierenden
XML-Anfragesprachen mit, und brachten dadurch ihre gewonnenen Erfahrungen mit in die
Entwicklung ein. Das Ziel war es eine Sprache zu entwickeln die Syntaktisch klein ist, und dennoch
den Anforderungen der XML Query working group entspricht [CFR00]. So war Quilt auch ein erster
Vorschlag an die XML Query working group für eine XML-Anfragesprache. Quilt hatte den grössten
Einfluss auf die Entwicklung der Anfragesprache XQuery.
Einen Vergleich des Sprachumfanges dieser Entwicklungen findet man in [BC99].
16
|  |
|
| |
|
|