Einführung in XSLT und XQuery Flashcards
Was ist XLST?
XSLT ist eine XML-Anwendung, d. h. ein XSLT-Dokument ist auch ein XML-Dokument. Ein XSLT-Dokument beinhaltet Regeln, nach denen ein anderes XML-Dokument transformiert werden kann. Dabei ist das Zielformat prinzipiell frei und nur von dem XSLT-Dokument abhängig.
Wie wird ein XLST-Dokument noch genannt?
Ein XSLT-Dokument wird u. a. auch Stylesheet genannt. Ein Stylesheet enthält Vorlagen oder Muster (engl. templates), die jeweils aus einem Muster und einem Inhalt bestehen.
Was ist ein XLST-Prozessor?
eine Anwendung, die ein XML-Dokument nach Maßgabe eines XSLT-Stylesheets transformiert
Wofür steht XLST?
XSL-Transformationen
XSLT-Stylesheets sind selbst … XML-Dokumente.
wohlgeformte
XSLT benutzt bei der Transformation nur das im XML-Dokument vorhandene … . Inhaltsmodelle wie … oder … werden nicht einbezogen. Es erfolgt somit keine Prüfung auf Gültigkeit, aber das Quelldokument muss wohlgeformt sein.
Markup, DTDs, XML-Schemata
Was ist das Anwendungsgebiet von XLST?
Das Anwendungsgebiet von XSLT ist zum einen die Transformation zum Zwecke der Darstellung, auch Präsentationsorientiertes Publizieren (engl. presenta-tion oriented publishing, POP) genannt. Mit unterschiedlichen Stylesheets können die Daten unter anderem in XHTML, SVG und viele andere Formate umgewandelt werden.
Weiter wird die Transformation zum Zwecke des Datenaustausches, gerne mit dem englischen Begriff message oriented middleware (MOM) bezeichnet, benutzt.
Warum kann man XLST-Stylesheets nicht auf HTML-Dateien anwenden?
Weil keine Prüfung auf Gültigkeit vorgenommen wird
Eine Transformation besteht aus einer Reihe von einzelnen … , die … genannt werden. Ein Template beinhaltet ein auf … basierendes Muster, das beschreibt, für welche … es gilt.
Transformationsregeln, Templates, XPath, Knoten
Für jede Art Knoten gibt es eine vorgegebene Regel, die greift, wenn im Stylesheet keine Regel für diese Art Knoten definiert ist. Diese Regeln lauten:
- Für Element- und Wurzelknoten werden die Kindelemente untersucht.
- Für Text- und Attributknoten wird der Text bzw. der Attributwert ausgegeben.
- Für Kommentar- und Steueranweisungsknoten wird nichts ausgegeben.
- Für Namensraumknoten werden alle Namensraum-Deklarationen automatisch in das Ausgabedokument eingefügt.
Die Top-Level-Elemente von stylesheet sind:
< xsl:import / >
< xsl:include / >
< xsl:namespace-alias / >
< xsl:strip-space / >
< xsl:preserve-space / >
< xsl:output / >
< xsl:key / >
< xsl:decimal-format / >
< xsl:atribute-set / >
< xsl:variable / >
< xsl:param / >
< xsl:template / >
Nun folgen noch kurz die Prioritätsregeln, wenn es zu Template-Konflikten kommen sollte, also wenn mehrere Templates auf ein und denselben Knoten betreffen:
- Regeln mit spezifischen Informationen kommen immer vor Regeln mit allgemeinen Informationen, z. B. kommt die spezifische Information.
- match=“/fernuni/lehrgebiet/multimedia/professor/name“ vor
match=“//name“. Suchmuster mit Wildcards sind allgemeiner als Suchmuster ohne Wildcards. - Wenn mit den Optionen in Punkt 1 und 2 nicht priorisiert werden kann, dann bekommt die zuletzt stehende Regel den Vorrang.
- Mit dem Attribut priority kann die Priorität gezielt beeinflusst werden, wobei Ganzzahlen als auch reelle Zahlen verwendet werden können, je höher die Zahl, umso höher die Priorität.
Was ist XQuery?
XQuery ist also eine Abfragesprache für XML-Dokumente, die ähnlich wie SQL für relationale Datenbanken funktioniert und als Ergebnisse Datensätze zurückliefert. Für XQuery gibt es eine non-XML-Syntax und eine XML-Syntax.
XQuery ist eine Abfragesprache für XML-Dokumente, die ähnlich wie SQL für relationale ______________________________ funktioniert und als Ergebnisse Datensätze zurückliefert. Für XQuery gibt es eine ______________________________ und eine XML-Syntax. Für XQuery und XPath gilt, dass sie selbst keine XML-____________________________________ sind, sondern eine eigene Syntax zur Bildung von Zeichenketten enthalten, vor allem zu Adressierung von __________________________________ eines Dokumentes.
XQuery ist eine Abfragesprache für XML-Dokumente, die ähnlich wie SQL für relationale Datenbanken funktioniert und als Ergebnisse Datensätze zurückliefert. Für XQuery gibt es eine non-XML-Syntax und eine XML-Syntax.
Für XQuery und XPath gilt, dass sie selbst keine XML-Anwendungen sind, sondern eine eigene Syntax zur Bildung von Zeichenketten enthalten, vor allem zur Adressierung von Untermengen eines Dokumentes.
Worin unterscheiden sich die statische Analysephase und die dynamische Auswertungsphase bei XQuery-Abfragen?
X-Query definiert zwei Phasen der Verarbeitung:
statische Analysephase:
Während dieser Phase wird die Abfrage in eine interne Darstellung, den sogenannten Operationsbaum überführt.
dynamische Auswertungsphase:
Phase, während der der Wert eines Ausdruckes berechnet wird. Sie beginnt nach Vollendung der statischen Analysephase und kann nur starten, wenn keine Fehler während der statischen Analysephase ermittelt wurden.
Atomare Werte (XQuery)
Atomare Werte sind die primitiven Schematypen mit dem Präfix xs und benutzer-definierte Typen. Sie werden durch Konstruktoren erzeugt. Dabei wird dem Wert ein Typ zugeordnet.
Knoten (XQuery)
Knoten bilden einen Baum, der aus einem Wurzelknoten plus allen Knoten besteht, die direkt oder indirekt vom Wurzelknoten erreichbar sind. Jeder Knoten gehört genau einem Baum, und jeder Baum hat genau einen Wurzelknoten.
Bei XQuery sind die sieben Arten von Knoten von XPath übernommen:
Dokumentknoten: Ein Baum, dessen Wurzelknoten ein Dokumentknoten ist, kennzeichnet ein Dokument. Wenn der Wurzelknoten des Baumes kein Do-kumentknoten ist, dann handelt es sich um ein Fragment.
Elementknoten: entspricht einem XML-Element. Der Wert eines Elementknotens ist der textuelle Wert des Knotens und seiner Nachfolger bzw. der typisierte Wert aus der Schemavalidierung (oder xs:untypedAny ohne Schema: nicht typisiert und xdt:untypedAtomic: typisiert).
Textknoten: haben reinen Text als Inhalt, der nicht weiter ausgewertet wird Attributknoten: entsprechen den Attributen von XML-Elementen Namens-raumknoten: stehen für den im aktuellen Kontext gültigen Namensraum
Verarbeitungsanweisungs-Knoten: nehmen eine Verarbeitungsanweisung (Ziel und Inhalt) auf
Kommentarknoten: Knoten haben einen textuellen und einen typisierten Wert
Typsystem von XQuery
XQuery hat ein mächtiges und komplexes Typsystem. Die Typen werden von XML- Schema importiert. Jeder Ausdruck in XQuery hat einen statischen Typ und jede XDM- Instanz hat einen dynamischen Typ.
Elementare Ausdrücke (XQuery)
Elementare Ausdrücke sind Literale, Variablenreferenzen, Ausdrücke für Kontextknoten, Konstruktoren und Funktionsaufrufe.
Variablenreferenzen (XQuery)
Variablenreferenzen bestehen aus einem Dollarzeichen gefolgt von einem qualifizierten Variablenreferenzen binden Namen.
Context Items in XQuery
Ausdrücke für Kontextknoten erlauben es, zum Auswertungszeitpunkt einen Bezug auf den aktuellen Kontextknoten herzustellen. Der Bezug wird durch einen Punkt ausgedrückt.
FLWOR-Ausdrücke
FLWOR steht für die möglichen Klauseln For, Let, Where, Order by und Return eines FLWOR-Ausdrucks. Dieser Ausdruck ist der zentrale Teil einer XQuery-Abfrage, ähnlich einer SELECT FROM WHERE-Anweisung in SQL. FLWOR-Ausdrücke können verschachtelt sein.
For- und Let-Klauseln
For- und Let-Klauseln dienen der Bindung von Variablen und können auch ohne den Kontext eines FLWOR-Ausdrucks sinnvoll eingesetzt werden. Die for-Klausel ist vergleichbar mit der FROM-Anweisung in SQL und leitet einen einfachen Iterationsausdruck ein.
Die let-Klausel hat die Bedeutung einer lokalen Variablendeklaration. Die Deklaration der XQuery-Variable beginnt immer mit einem $-Zeichen: