Antworten zu den Testfragen aus XSLT und XPath – Runde zwei

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

Frage 1: Welche Sequenz wählt der Pfadausdruck beispiel[test]?

a) Alle Kindknoten <test> eines <beispiel>-Elements.

b) Alle Elemente <beispiel>, die einen Kindknoten <test> besitzen.

c) Alle Elemente <beispiel> mit einem Attribut test.

Richtig ist b). Die Ergebnismenge eines Pfadausdrucks wird stets durch den Knotentest des letzten Location Steps bestimmt. In diesem Fall muss es sich also um Elementknoten mit dem Namen <beispiel> handeln. Durch ein Pre­dicate wird diese Menge lediglich eingeschränkt. In diesem Fall sind nur die Elemente <beispiel> enthalten, die über ein Kindelement <test> verfügen.

Frage 2: Was gibt die Funktion fn:position() zurück?

a) Den aktuellen Knoten.

b) Die Position des aktuellen Knotens im Dokument.

c) Den Wert des aktuellen Knotens als Ganzzahl.

d) Die Position des aktuellen Knotens in einer Sequenz.

Richtig ist d). Die Funktion bezieht sich immer auf die aktuelle Sequenz und gibt die Position des aktuellen Items in Form einer Ganzzahl zurück. Wichtig ist die Funktion, weil der Rückgabewert eben nicht von der Dokumentreihenfolge abhängig ist. Einen anderen Wert als eine Ganzzahl gibt die Funktion unter kei­nen Umständen zurück.

Frage 3: Welche XSLT-Instruktion kopiert auch Attribute eines Element­knotens ins Ergebnisdokument?

a) Die Instruktion xsl:copy.

b) Die Instruktion xsl:copy-of.

c) Die Instruktion xsl:attribute.

d) Die Instruktion xsl:attribute-set.

Richtig ist b). Die Instruktion xsl:copy-of kopiert generell den gesamten Zweig der ausgewählten Knoten mitsamt Attributen und gegebenenfalls Namensräumen. Dagegen kopiert xsl:copy stets nur den Kontextknoten. Attributknoten können ebenfalls kopiert werden, sobald sie Kontextknoten sind, aber eben nicht unmittelbar beim Kopieren ihres Elternelements.

Frage 4: Welches Attribut von xsl:number bestimmt die zu zählenden Knoten?

a) Das format-Attribut.

b) Das value-Attribut.

c) Das count-Attribut.

d) Das level-Attribut.

Richtig ist c). Auch bei multi-hierarchischer Bezifferung werden die zu berück­­sichtigenden Elementbezeichner im count-Attribut genannt. Die Reihenfolge ihrer Nennung ist dabei irrelevant, da xsl:number die Dokument-Hierarchie selbst zur Bestimmung der Zuordnung zum Formatstring verwendet. Wird das value-Attribut übergeben, so wird nicht gezählt, sondern der so erzeugte Wert lediglich formatiert.

Frage 5: Auf welcher XPath-Achse zählt xsl:number?

a) Auf der Preceding-Achse.

b) Auf der Preceding-Sibling-Achse.

c) Auf der Following-Sibling-Achse.

d) Auf der Following-Achse.

Richtig ist b). Der Zählvorgang ist stets rückwärts gewandt, wobei auf der Ance­stor-Achse des Kontextknotens so weit zurückgegangen wird, bis ein Knoten gefunden wird, auf den das count-Attribut passt. Dessen Preceding-Siblings werden dann gezählt. Mittels des select-Attributs kann ein anderer Knoten als Ausgangspunkt gewählt, mittels des from-Attributs eine zusätzliche Begren­zung des Arbeitsbereichs der Funktion gesetzt werden.

Frage 6: Welche dieser Funktionen bildet eine eigene Sequenz?

a) Die Funktion fn:count().

b) Die Funktion fn:last().

c) Die Funktion fn:sum().

d) Die Funktion fn:position().

Richtig sind a) und c). Die Funktionen fn:count() und fn:sum() übernehmen als Argument einen XPath-Ausdruck, der eine Sequenz erzeugt, die anschließend von der Funktion als Eingangswert übernommen und verarbeitet wird. Die Funktionen fn:last() und fn:position() hingegen sind Kontextfunktionen, die keine Argumente übernehmen, sondern sich stets auf die aktuell bestehende Sequenz beziehen.

   

<< 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