Antworten zu den Testfragen aus XSLT und XPath – der Start

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)

Frage 1: Welcher Knotentyp ist nicht »Child« seines Elternknotens?

a) Der Textknoten

b) Der Attributknoten

c) Der Kommentarknoten

d) Der Processing-Instructions-Knoten

e) Der Namensraumknoten

Richtig sind b) und e). Sowohl Attribut- als auch Namensraumknoten zählen nicht als Kindknoten ihres Elements. Sie stehen damit außerhalb der Doku­mentreihenfolge und sind auch nicht Teil des normalen Dokumentbaums. Für XPath-Ausdrücke sind beide Knotentypen nur über ihre jeweilige, spezielle Achse erreichbar. Alle anderen hier genannten Knoten befinden sich auf den Elementachsen.

Frage 2: Was versteht man unter dem »value« eines Elementknotens?

a) Text- und Elementinhalt

b) Attributwerte und Textinhalte

c) Eigene Textinhalte und Textinhalte von Child-Elementen

d) Nur die unmittelbaren Child-Textknoten

Richtig ist c). Unter »value« wird stets der Stringwert eines Knotens verstanden. Für einen Elementknoten besteht dieser aus allen in ihm unmittelbar (als eige­ner direkter Inhalt) und mittelbar (als Inhalte von Kindelementen und deren Kindelementen) enthaltenen Textknoten. Dazu zählen auch Whitespace Nodes. Für den Stringwert werden alle diese Textknoten in Dokumentreihenfolge ver­kettet. Attributwerte werden nicht berücksichtigt, ebenso wenig Kommentare oder PI-Knoten.

Frage 3: Der Document Node ist …

a) ... das Wurzelelement des verarbeiteten XML-Dokuments.

b) ... das Wurzelelement des XSLT-Stylesheets.

c) ... ein virtueller Knoten, der das verarbeitete XML-Dokument enthält.

Richtig ist c). Ein Dokument Node ist generell ein namen- und elternloser Kno­ten, der ein Dokument beinhaltet. In der Baumstruktur eines Quell­dokuments stellt er den Wurzelknoten dar (nicht das Wurzelelement). Während einer Transformation werden Dokumentknoten erzeugt, die zum Teil als Dokumente serialisiert werden (Ausnahme: temporäre Bäume).

Frage 4: Warum ist der XSL-Namensraum-URI bei xsl:stylesheet wichtig?

a) Der Prozessor holt sich Anweisungen unter dieser Adresse.

b) Damit erst werden XSLT-Elemente als Befehle kenntlich.

c) Ganz unwichtig. Hauptsache das Präfix lautet xsl.

Richtig ist b). Der XSL-Namensraum-URI dient zur Identifizierung der XSLT-Ele­mente über ihren qualifizierten Bezeichner. Hierzu müssen diese mittels eines – im Grunde beliebig wählbaren – Präfixes an den festgelegten URI-String "http://www.w3.org/1999/XSL/Transform" gebunden sein. Weder wird unter dieser Adresse nach einer realen Ressource gesucht noch muss das an den URI gebundene Präfix zwingend xsl lauten.

Frage 5: Welche XSLT-Instruktion stellt eine Nodesequenz zusammen?

a) xsl:stylesheet

b) xsl:template

c) xsl:apply-templates

d) xsl:value-of

Richtig ist c). Die Instruktion xsl:apply-templates stellt ausgehend von Kontextknoten eine Nodesequenz zusammen, deren Zusammensetzung durch ihr select-Attribut bestimmt wird. Liegt kein select-Attribut vor, so besteht die Sequenz aus allen Kindknoten des Kontextknotens. Da die Sequenz nur auf der Elementachse zusammengestellt wird, sind keine Attributknoten (und auch keine Namensraumknoten) in ihr enthalten.

Frage 6: Womit wird der XSLT-Prozess eingeleitet?

a) Mit einem Template mit Match auf den Document Node

b) Mit dem ersten Template in Dokumentreihenfolge

c) Mit dem Template mit höchster Priorität

Richtig ist a). Das erste ausgeführte Template ist jenes mit einem Match auf den Dokumentknoten des Quelldokuments (oder das entsprechende Default­­-Template), da dieser zu Beginn den Kontextknoten darstellt. Die Quelltext­reihenfolge der Template-Regeln im Stylesheet ist dabei ohne Bedeutung.

Ausnahme von dieser Regel ist ein explizit als Einstiegs-Template – initial template – angeordne­tes benanntes(!) Template. Bei Saxon 9 wird ein Start-Template mit der Option -it:name_des_templates befohlen. In diesem Fall braucht kein Quelldokument vorzuliegen.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn