13.07.2015 Aufrufe

ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4. Rahmenbedingungen <strong>ein</strong>er Implementierunggeschweiften Klammern umgeben sind. Ausdrücke sind zum Beispiel Variablen, die mit Funktionenoder FLWR-Ausdrücken geb<strong>und</strong>en wurden.Beispiel für <strong>ein</strong>en Konstruktor:{ $b//title }Here is an exampleFLWR-Ausdrücke: Sie dienen der Deklaration <strong>und</strong> Bindung von Variablen. Sie bestehen ausFor-, Let-, Where- <strong>und</strong> Return-Klauseln.– For-Klauseln binden Variablen der Reihe nach an alle Elemente, die durch <strong>ein</strong>en Pfadausdruckbestimmt wurden (Iteration).– Let-Klauseln binden die Variablen an die ganze Sequenz der durch den Pfadausdruck bestimmtenElementen.– Where-Klauseln filtern die Variablenbindungen.– Return-Klauseln b<strong>ein</strong>halten <strong>ein</strong>en Ausdruck, mit dem das Ergebnis <strong>ein</strong>es FLWR-Ausdrucksgebildet wird; dies ist entweder <strong>ein</strong> Konstruktor oder auch <strong>ein</strong> primitiver Rückgabewert(Integer, Text, . . . ).Beispiel für <strong>ein</strong>en FLWR-Ausdruck:for $b in document("bib.xml")//bookwhere $b/publisher = "Addison-Wesley"and $b/year = "2001"return $b/titleDas Beispiel liefert <strong>ein</strong>e Sequenz aller Buchtitel von Addison-Wesley, die 2001 erschienen sind.Quantifizierte Ausdrücke: Sie beschreiben sowohl Allquantoren (every) als auch Existenzquantoren(some).Beispiele für quantifizierende Ausdrücke:some $b in //book satisfies $b/year = "2001"Der Ausdruck ist wahr, wenn es mindestens <strong>ein</strong> Buch gibt, das 2001 erschienen ist.every $b in //book satisfies $b/year = "2001"Der Ausdruck ist wahr, wenn alle vorkommenden Bücher 2001 erschienen sind.XQuery läßt die Definition von benutzerspezifischen Funktionen zu. Die Funktionen können beliebigeWerte über Parameter erhalten, also sowohl Werte mit primitivem Datentyp als z.B. auch Elemente,<strong>und</strong> ebensolche Werte <strong>zur</strong>ückgeben. Der rekursive Aufruf von Funktionen ist ebenfalls erlaubt.Beispiel für <strong>ein</strong>e benutzerspezifische Funktion:define function depth(element $e) returns xs:integer {if (empty($e/*)) then 1else max(for $c in $e/* return depth($c)) + 1}depth(document("partlist.xml"))Der Funktionsaufruf im Beipiel liefert die maximale Tiefe des Dokuments ”partlist.xml“.48

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!