XQuery

XQuery steht für XML Query Language (manchmal auch XQL abgekürzt) und bezeichnet eine vom W3C spezifizierte Abfragesprache für XML-basierte Datenbanken.

XQuery benutzt eine an XSLT, SQL und C angelehnte Syntax und verwendet XPath sowie XML Schema für sein Datenmodell und seine Funktionsbibliothek. XQuery ist aus den Sprachen XQL, XML-QL und Quilt hervorgegangen.

XQuery ist eine funktionale, deklarative, stark typisierte Programmiersprache. XQuery ist Turing-vollständig. Außer Pfadausdrücken (XPath), gibt es eine ganze Reihe weiterer interessanter Spracheigenschaften:

Im Gegensatz zu der relationalen Algebra oder SQL besitzen XML Datenelemente eine implizit vorgegebene Ordnung ("documentorder"). Alle XQuery Ausdrücke müssen diese Ordnung erhalten, es sei denn dies wird im Ausdruck explicit ausgeschaltet (Ordering mode: unordered).

XQuery ist dazu gedacht, aus großen XML Datensammlungen einzelne Teile herauszusuchen. Im Gegensatz dazu dient XSLT dazu, komplette XML Dokumente zu transformieren.

Beispiele

Zählen aller question-XML-Elemente im Quelldokument:

fn:count(//question)
 

Komplexeres Beispiel, Auflisten aller Fragen aller Dokumente einer Galerie für KEduca, die weniger als zwei Antworten haben:

<noanswerquestions>
     {
     for $s in (fn:doc("lpi101.edugallery")//server/@address)
         for $d in (fn:doc($s)[//question[(count(true) + count(false)) <= 1]])
             return <doc src="{$s}">{
                     for $q in ($d//question[(count(true) + count(false)) <= 1])
                         return $q
                 }</doc>
     }
 </noanswerquestions>
 

Weblinks

Siehe auch: XML, XSLT, XPath, XML Schema

See also: XQuery, Abfragesprache, C (Programmiersprache), Datenbank, Deklarative Programmierung, Funktionale Programmiersprache, KEduca, Relationale Algebra, SQL, Starke Typisierung