xsl:output-character

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

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

 

Die Sub-Instruktion xsl:output-character dient dazu, bestimmten, durch Character Entities repräsentierten Sonderzeichen je eine Ersatzzeichenkette als Alias für die Serialisierung im Ergebnisdokument zuzuordnen.

Klassifizierung Sub-Instruktion
Funktionsgruppe Ausgabeformatdefinition für Charactermap
Einführung XSLT 2.0

Position im Stylesheet und erlaubte Inhalte:

Das Element xsl:output-character ist der Deklaration xsl:character-map untergeordnet und tritt ausschließlich als deren alleiniges Child-Element auf. Das Element ist stets leer.

Attribute:

Es gelten die Standardattribute. Zusätzlich existieren die beiden obligatorischen Attribute character und string.

character

Wert

char

Verwendung

obligatorisch

Einführung

XSLT 2.0

Als Attributwert wird ein Zeichen in Form eines Character Entites übergeben, das entweder in hexadezimaler Form � oder in dezimaler Form � bezeichnet wird. Das Zeichen wird in jeder im Dokument auftretenden Instanz durch die im string-Attribut bezeichnete Zeichenkette ersetzt.

Hinweis: Eine Ersetzung findet nicht statt, wenn eine zu ersetzende Entity-Instanz in einem Element oder Bereich steht, für den Escaping verboten wurde.

string

Wert

ersetzungsstring

Verwendung

obligatorisch

Einführung

XSLT 2.0

Attributwert ist ein String xs:string, der im Ergebnisdokument anstelle des im character-Attribut genannten Zeichens zu verwendende Ersetzungsstring.

Verwendung:

Die Sub-Instruktion xsl:output-chacter definiert diejenige Zeichenkette, die im Ergebnisdokument anstelle eines ebenfalls hier festgelegten Character Entities eingefügt werden soll. Eine solche Ersetzungsdefinition wird als »Character-Mapping« bezeichnet.

Die Sub-Instruktion steht innerhalb benannter Deklarationen xsl:character-map. Mehrere solcher Deklarationen können mittels ihrer use-character-maps-Attribute zu einer modularen Character-Mapping-Deklara­tion zusammengefasst werden.

Das use-character-maps-Attribut kann hierfür die QNames ein oder mehre­rer weiterer xsl:character-maps-Deklarationen nennen, deren xsl:output-character-Instruktionen inkludiert werden. Dies erfolgt in Reihenfolge der Nennung der externen Deklarationen, und zwar im Attribut nach den in der einbettenden Deklaration bereits enthaltenen Instruktionen.

Diese Tatsache ist bedeutsam, da die in Dokumentreihenfolge letzte xsl:out­put-character-Instruktion im Fall einer Dublette den Vorrang erhält. Eine eingebundene Instruktion einer anderen xsl:character-map-Deklaration hat daher stets Vorrang vor einer in der inkludierenden Deklaration stehenden.

Kein Zeichenmapping bei deaktiviertem Output-Escaping:
Ein Character Entity bzw. ein Sonderzeichen, das sich innerhalb eines Bereichs befindet, für den Output-Escaping verboten wurde (beispielsweise mittels eines Attributs disable-output-escaping="yes"), wird durch das Character-Mapping nicht ersetzt.

Kein automatisches Escaping für gemappte Zeichen:
Ein innerhalb eines Character-Mappings bezeichnetes Sonderzeichen oder Entity wird im Rahmen des normalen Escapings beim Output-Format "html" oder "xhtml" nicht berücksichtigt, da die Character-Mapping-Deklaration Vorrang vor dem auto­matischen Escaping-Verhalten besitzt.

Beispiel – Anwendung innerhalb xsl:character-map:

<xsl:output name="html-dokument" use-character-maps="html-entities"/>
<xsl:character-map name="html-entities">
  <!-- geschuetztes Leerzeichen -->
  <xsl:output-character character="&#160;" string="&amp;nbsp;"/>
  <!-- grosses A, Umlaut -->
  <xsl:output-character character="&#196;" string="&amp;Auml;"/>
  <!-- kleines a, Umlaut -->
  <xsl:output-character character="&#228;" string="&amp;auml;"/>
  <!-- (und so weiter...) -->
  ...
</xsl:character-map>

Hier bezieht sich eine xsl:output-Deklaration mittels ihres use-character-maps-Attributs auf eine benannte xsl:character-map-Deklaration.

Innerhalb dieser werden verschiedene xsl:output-character-Instruktionen eingesetzt, um bestimmte Sonderzeichen während der Serialisierung durch genau festgelegte Strings zu ersetzen, die in diesem Fall vordefinierten HTML-Entities entsprechen.

Im Rahmen der Output-Formate "html" oder "xhtml" kann so das Verhalten beim automatischen Escapen bestimmter Zeichen auch gezielt überschrieben werden, da entsprechende Definitionen mit xsl:character-map Vorrang vor der automatischen Zeichenersetzung haben.

Elementdefinition:

XSLT 1.0:

Element in XSLT 1.0 nicht verfügbar.

XSLT 2.0:

<!-- Category: sub-instruction -->
<xsl:output-character
     character = char
     string = string 
/>
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