fn:base-uri

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

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

   

Kategorie: Nodenamen, Identifier und URI-Informationen

Herkunft: XPath 2.0

Rückgabewert: Der Basis-URI eines übergebenen Knotens in Form einer Zeichenkette xs:string

Aufruf/Argumente:

fn:base-uri($knoten)

$knoten:
Optional. Das Argument ist ein Knoten, dessen Basis-URI ermittelt werden soll. Wird kein Argument übergeben, so wird der Basis-URI des Kontextitems (context item) des Funktionsaufrufs zurückgegeben.

Verwendungszweck:

Die Funktion gibt den Basis-URI aller Knotentypen zurück, die ein entsprechendes Base-URI-Property besitzen, also von Document-Nodes, Elementen und Processing-Instructions. Der zurückgegebene Wert ist vom Typ xs:anyURI.

Auf Knoten mit leerem Base-URI-Property angewendet, oder auf Knotentypen, die selbst kein Base-URI-Property besitzen, gibt die Funktion den Wert des Base-URI-Properties des Elternknotens zurück, sofern dieses nicht leer ist. Besitzt der nun betrachtete Elternknoten wiederum ein leeres Base-URI-Property, so wird dieses Verfahren rekursiv wiederholt (gegebenenfalls bis zum Document-Node), bis ein Knoten mit nicht-leerem Property gefunden wird. Besitzt der letzte so erreichbare Knoten ein leeres Base-URI-Property und keinen Elternknoten, so erhält man als Rückgabewert die leere Sequenz.

Für Attributknoten wird daher der Basis-URI des Elternelements zurückgegeben, sofern dieses nicht leer ist. Für Namensraumknoten (da deren Elternknoten nicht ermittelbar sein braucht) wird stets die leere Sequenz zurückgegeben.

Ist das übergebene Argument kein Knoten, so wird der Typfehler err:XPTY0004 gemeldet. Existiert kein gültiger statischer Kontext für den Funktionsaufruf, so wird der Fehler err:XPDY0002 ausgegeben.

Beispiele:

Beispiel 1 – Funktionsaufruf ohne Argument:

fn:base-uri()

gibt beispielsweise zurück:

xs:anyURI(file:/D:/xpath2-funktionen/base-uri.xsl)

Ohne übergebenes Argument gibt die Funktion den Basis-URI des statischen Kontextes des Funktionsaufrufs zurück. Da der Aufruf aus dem XSLT-Stylesheet erfolgt, wird dessen Basis-URI zurückgegeben.

Beispiel 2 – Funktionsaufruf mit Argument:

fn:base-uri(beispiel/test)

gibt beispielsweise zurück:

xs:anyURI(file:/D:/xpath2-funktionen/base-uri-beispiel.xml)

Wird der Funktion ein XPath-Ausdruck übergeben, der einen Node des Quell­dokuments bezeichnet (hier <test>), so gibt sie dessen Basis-URI zurück. In diesem Fall entspricht dies dem Basis-URI des verarbeiteten XML-Dokuments.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:base-uri() as xs:anyURI?

fn:base-uri($arg as node()) as xs:anyURI?

   

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