Knotentest auf den Bezeichner: NameTest

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

Jede Achse besitzt einen sogenannten vorherrschenden Knotentyp (principal node kind). Für die meisten Achsen ist dies der Elementknoten. Lediglich für die Attribute-Achse ist der vorherrschende Knotentyp der Attributknoten, für die Namespace-Achse analog der Namensraumknoten.

Jeder Knotentest, der aus einem QName besteht, wird als NameTest bezeich­net. Ein NameTest bezieht sich stets auf den vorherrschenden Knotentyp der Achse, der also bereits durch deren Wahl bestimmt ist.

Der NameTest ist dann erfüllt, wenn der expandierte QName des NameTest dem expandierten Bezeichner des Knotens entspricht. Hierbei besteht die Möglichkeit, den gesamten QName oder dessen Partikel (den Namensrauman­teil oder den lokalen Bezeichner) durch einen Wildcard-Platzhalter in Form des Asterisk * zu ersetzen.

Ein NameTest kann folgende Formen annehmen:

  • QName
    Der vollständige QName wird zum Vergleich übergeben. Ein Kno­ten muss, um den Test zu bestehen, einen identischen expandierten QName besitzen. Der übergebene QName darf aus nur einem lokalen Bezeichner bestehen, es muss also nicht zwangsläufig ein Namensraumanteil existieren.
  • präfix:*
    Mit einem spezifizierten Namensraumpräfix wird ein Wild­card-Platzhalter für den lokalen Bezeichner kombiniert. Der Test ist erfüllt, wenn der Knoten denselben Namensraum besitzt, der durch das übergebene Präfix bezeichnet ist.
  • *:NCName
    Mit einem spezifizierten lokalen Bezeichner in Form eines NCNames wird ein Wildcard-Platzhalter für den Namensraum kombiniert. Der Test ist erfüllt, wenn der geprüfte Knoten den bezeichneten lokalen Bezeichner besitzt, ungeachtet seines Namensraumes (inklusive des Null-Namensraumes).
  • *
    Wird anstelle eines QNames nur ein Wildcard-Platzhalter übergeben, so wird der Test durch jeden Knoten auf der Achse erfüllt, der einen Bezeichner besitzt – mit anderen Worten durch alle Knoten des vorherrschenden Kno­tentyps. Der Wildcard-Platzhalter wählt also auf Elementachse alle Element­knoten und auf der Attribute-Achse alle Attributknoten ungeachtet ihrer Bezeichner aus.

Anmerkung der Redaktion:
Die Zuweisung der Namensraum-URI zu den verwendeten Präfixen wird auf dieser Seite ausführlich beschrieben. Da XPath-Ausdrücke in XSLT immer in einem XML-Dokument stehen (das XSLT-Stylesheet), werden für die Präfix-Namensraum-Bindung die Namensraum-Deklarationen des Stylesheets verwendet. In anderen Sprachen, die XPath verwenden (Host Language), wird dies gegebenenfalls anders behandelt, da dies von der XPath-Spezifikation offen gelassen wurde. Grundsätzlich ist es möglich, dass sich die Präfixe des Quelldokuments von denen der XPath-Ausdrücke unterscheiden.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XPath 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