eTutor XQuery und Datalog - Data & Knowledge Engineering
eTutor XQuery und Datalog - Data & Knowledge Engineering
eTutor XQuery und Datalog - Data & Knowledge Engineering
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
22 Kapitel 3. Lösungsansatz<br />
3.2. <strong>XQuery</strong>-Modul<br />
Eine Übungsaufgabe, die im <strong>XQuery</strong>-Modul definiert wird, setzt sich aus<br />
mindestens einem XML-Dokument zusammen, das die Datenbasis darstellt, sowie<br />
aus einem <strong>XQuery</strong>-Ausdruck – der Musterlösung. Abbildung 3.10 zeigt ein<br />
einfaches Beispiel eines XML-Dokumentes, das Informationen zu Personen<br />
enthält.<br />
<br />
<br />
Maria<br />
ledig<br />
<br />
<br />
Max<br />
verheiratet<br />
<br />
<br />
Michael<br />
ledig<br />
<br />
<br />
Berta<br />
verwitwet<br />
<br />
<br />
Abbildung 3.10: XML-Dokument als Datenbasis für eine <strong>XQuery</strong>-Aufgabe<br />
Ein ebenso einfaches Beispiel für einen <strong>XQuery</strong>-Ausdruck, der die Musterlösung<br />
darstellen könnte, wird in Abbildung 3.11 gezeigt. Ermittelt werden sollen alle<br />
Personen, deren Name mit dem Buchstaben M beginnt, wobei diese Personen<br />
nach ihrem Namen sortiert ausgegeben werden sollen. Über die doc-Funktion<br />
kann auf die XML-Dokumente zugegriffen werden, die als Datenbasis dienen. In<br />
diesem Beispiel wird also angenommen, dass das Dokument über die angegebene<br />
URL geladen werden kann.<br />
let $db := doc('http://etutor.dke.uni-linz.ac.at/XML?id=1')/db,<br />
$personen := $db/person<br />
return (<br />
for $p in $personen[starts-with(name,'M')]<br />
order by $p/name<br />
return $p)<br />
Abbildung 3.11: <strong>XQuery</strong>-Ausdruck für eine <strong>XQuery</strong>-Aufgabe<br />
Als Ergebnis dieser Abfrage werden drei XML-Knoten geliefert, die für die<br />
gewünschten Personen stehen. Das Ergebnis wird bei der Analyse immer als