unparsed-entity-public-id

(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: Assoziation und Auffindung von Nodes und Ressourcen

Herkunft: XSLT 2.0

Rückgabewert: Ein String xs:string; der PUBLIC-Identifier der ungeparsten Entität, dessen Bezeichner der Funktion übergeben wird.

Aufruf/Argumente:

unparsed-entity-public-id($entity-bezeichner)

$entity-bezeichner:
Obligatorisch. Ein String xs:string; der Bezeichner einer nicht vom XML-Parser zu verarbeitenden Entität. Existiert keine entsprechende ENTITY-Deklaration, so gibt die Funktion einen leeren String zurück.

Verwendungszweck:

Die Funktion gibt den PUBLIC-Identifier derjeni­gen nicht geparsten Entität zurück, deren Entityname ihr übergeben wurde, sofern ein solcher PUBLIC-Identifier existiert. Die Funktion bezieht sich dabei stets auf das Dokument, das den zum Zeitpunkt des Funktionsaufrufs gültigen Kontextknoten enthält.

Es ist ein Fehler, wenn die Funktion aufgerufen wird, falls das Kontextitem kein Knoten ist bzw. der Baum, in dem sich der Kontextknoten befindet, kei­nen Dokumentknoten besitzt (ERR XTDE1380).

Besitzt die übergebene Entität keinen PUBLIC-Identifier, so gibt die Funktion den leeren String zurück. Dasselbe passiert jedoch ebenfalls, wenn keine Entität des übergebenen Bezeichners existiert oder wenn zwar eine entsprechend benanntes Entität deklariert ist, es sich jedoch nicht um eine externe, ungepars­te Entität handelt (sondern z.B. um eine externe Textentität). Anhand des Rückgabewerts können diese drei Situationen daher nicht unterschieden werden.

Ein PUBLIC-Identifier kann, zusätzlich zum obligatorischen SYSTEM-Identifier (der Pfad und Dateiname entspricht) optional im Rahmen der ENTITY-Deklara­tion vergeben werden. Die Deklaration beider Identifier wird durch das Keyword PUBLIC eingeleitet, wobei der obligatorische SYSTEM-Identifierstring dem PUBLIC-Identifierstring folgt:

<!ENTITY meinEntity PUBLIC "Mein Public Identifier" "/mein_pfad/meine_datei.ent" NDATA meine_anwendung>

Ohne PUBLIC-Identifier sieht die Deklaration derselben Entität folgenderma­ßen aus (anstelle von PUBLIC steht jetzt SYSTEM als Keyword):

<!ENTITY meinEntity SYSTEM "/mein_pfad/meine_datei.ent" NDATA meine_anwendung>

Der Sinn eines PUBLIC-Identifiers besteht darin, einer Anwendung die Mög­lichkeit zu geben, eine Ressource alternativ zu dem ebenfalls übergebenen Pfad anhand eines Bezeichners zu finden, der mit einem Katalog lokal vorliegender Entitydateien verglichen wird. Im Fall einer nicht geparsten Entität kann der Zugriff auf eine lokale Kopie die Verarbeitung möglicherweise beschleunigen.

PUBLIC-Identifier externer (geparster) Textentitäten
Auch externe Textentitäten können einen PUBLIC-Identifier besit­zen. Auf diesen eine vergleichbare Funktion anzuwenden, würde jedoch im XSLT-Kontext keinen Sinn machen, da bereits der XML-Parser beim Einlesen des XML-Dokuments die externe Textressource parst und ein­bindet. Für eine nicht geparste Entität wird deren Referenz vom XML-Parser lediglich durchgereicht.

Funktionsdefinition:

XSLT 1.0:

Funktion nicht verfügbar

XSLT 2.0:

unparsed-entity-public-id($entity-name as xs:string)
         as xs:string

   

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