Als Abfragesprache für XML-Dokumente scheint sich XQuery durchzusetzen. Im Mai 2003 wurde unter der Adresse http://www.w3.org/TR/xquery
der letzte W3C Working Draft veröffentlicht.
In XQuery werden Abfragen durch eine Kombination von FLWR-Ausdrücken, Pfadausdrücken und Element-Konstruktoren formuliert. Ein FLWR-Ausdruck (gesprochen wie das englische Wort Flower) besteht aus einer Sequenz der Schlüsselworte FOR, LET, WHERE, RETURN. Ein Pfadausdruck nach der XPath-Syntax ( http://www.w3.org/TR/xpath.html ) fasst das Dokument als Baum von Element-Knoten auf und liefert durch gezielte Navigation den gewünschten Teilbaum ab. Dabei trennt ein einzelner Schrägstrich ('/') Elemente in direkter Vater/Sohn-Beziehung, ein doppelter Schrägstrich ('//') bedeutet eine Nachkommen-Beziehung über eine oder auch mehrere Baum-Ebenen. Ein Element-Konstruktor klammert das Ergebnis der Query mit öffnenden und schließenden Tags.
document("dozenten.xml")/dozenten/dozent[Rang="C4"]
<aktive-Dozenten>
FOR $d IN document("dozenten.xml")//dozent
LET $v := document("vorlesungen.xml")//vorlesung[gelesenVon=$d/PersNr]
WHERE count($v) > 0
RETURN <Dozent>$d/Name</Dozent>
</aktive-Dozenten>
<Vorlesungsverzeichnis>
FOR $d IN document("dozenten.xml")//dozent,
$v IN document("vorlesungen.xml")//vorlesung
WHERE $d/PersNr = $v/gelesenVon
RETURN <Veranstaltung>$d/Name, $v/Titel</Veranstaltung>
</Vorlesungsverzeichnis>
<Vorlesungsverzeichnis>
FOR $d IN document("dozenten.xml")//dozent
RETURN
<Dozent>$d/Name</Dozent>
FOR $v IN document("vorlesungen.xml")//vorlesung
WHERE $d/PersNr = $v/gelesenVon
RETURN <Vorlesung>$v/Titel</Vorlesung>
</Vorlesungsverzeichnis>
<Dozenten>
FOR $d IN document("dozenten.xml")//dozent
LET $s := sum(document("vorlesungen.xml")
//vorlesung[gelesenVon=$d/PersNr]/SWS)
WHERE $s > 0
RETURN <Dozent>
<Name>$d/Name</Name>
<Lehrbelastung>$s</Lehrbelastung>
</Dozent>
</Dozenten>
<Rang-wie-Sokrates>
FOR $d1 IN document("dozenten.xml")//dozent[Name="Sokrates"],
$d2 IN document("dozenten.xml")//dozent[Rang=$d1/Rang]
RETURN <Name>$d2/Name</Name>
</Rang-wie-Sokrates>