fn:lower-case

(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: Stringfunktionen – Analyse und Manipulation

Herkunft: XPath 2.0

Rückgabewert: Ein String xs:string; eine Kopie des Eingabestrings, innerhalb derer ursprünglich enthaltene Großbuchstaben durch korrespondierende Kleinbuchstaben ersetzt sind.

Aufruf/Argumente:

fn:lower-case($eingabestring)

$eingabestring:
Ein String xs:string, in dem die enthaltenen Großbuch­staben durch die korrespondierenden Kleinbuchstaben ersetzt werden. Wird der Funktion die leere Sequenz übergeben, so gibt sie einen leeren String zurück.

Verwendungszweck:

Die Funktion fn:lower-case() wandelt alle im Eingabestring vorliegenden Großbuchstaben für den Ausgabestring vollständig in die korrespondierenden Kleinbuchstaben um. Die Umwandlung ist nicht umkehrbar.

Wird der Funktion ein String übergeben, so wird der zum Großbuchstaben kor­respondierende Kleinbuchstabe für die Zeichenersetzung gemäß den Regeln für Unicode Case Mapping bestimmt. Dies ist bedeutsam in Fällen, wo eine mehrdeutige Ersetzungsmöglichkeit vorliegt (Unicode Special Casing), wie bei­spielsweise beim griechischen Großbuchstaben Σ (Sigma), für den kleinge­schrieben zwei Varianten σ und ς existieren (siehe auch fn:upper-case()).

Existiert zu einem Großbuchstaben kein korrespondierender Kleinbuchstabe, so wird keine Ersetzung vorgenommen. Ebenso nicht angetastet werden Zif­fern, Interpunktions- und andere Nicht-Buchstabenzeichen.

Die entsprechenden Regeln sind im Unicode Standard (aktuell: Version 5.0) niedergelegt. Das Mapping der Buchstaben erfolgt anhand einer Tabelle, in der die korrespondierenden Zei­chen abgelegt sind (Auszug):

# vorangehend weitere Mappings
003F;QUESTION MARK;             Po;0; ON;;;;;N;;;;;
0040;COMMERCIAL AT;             Po;0; ON;;;;;N;;;;; 
0041;LATIN CAPITAL LETTER A;    Lu;0;  L;;;;;N;;;;0061;
0042;LATIN CAPITAL LETTER B;    Lu;0;  L;;;;;N;;;;0062;
...
# weitere Mappings
...
03A1;GREEK CAPITAL LETTER RHO;  Lu;0;  L;;;;;N;;;;03C1;
03A3
;GREEK CAPITAL LETTER SIGMA;Lu;0;  L;;;;;N;;;;03C3;
# folgend weitere Mappings
 

Erläuterung:

Buchstaben werden in Unicode in die Kategorie L (»Letter«) eingeordnet, die in verschiedene Untergruppen 'L&' (& ist Platzhalter) zerfällt. Zu allen in der mittleren Spalte mit 'Lu' (»Letter, Uppercase«) markierten Zeichen existiert ein korrespondierendes Zeichen, das dessen kleingeschriebene Vari­ante 'Ll' (Letter, Lowercase) darstellt. Das einzeln stehende 'L' (Spalte 5) mar­kiert die Bidi-Klasse (Bidirectional Behavior) als »left-to-right«.

Für Interpunktions- und Sonderzeichen der Kategorie P (siehe die Zeilen QUES­TION MARK »?« und COMMERCIAL AT »@« im obigen Auszug aus der Map­pingtabelle) gibt es keine korrespondierende Kleinschreibung – sie sind von einer Ersetzung daher nicht betroffen. Sie sind mit dem Kürzel P 'Po' (Punctu­ation, other) markiert. Ihre Bidi-Signatur 'ON' bedeutet in diesem Zusammen­hang 'other neutrals'.

Achtung – »Titlecaps« sind keine Großbuchstaben
Eine weitere Kategorie 'Lt' (»Letter, Titlecase«) stellt für alle alphabe­tischen Zeichen ungeachtet ihrer Groß- oder Kleinschreibung dieselben Gly­phen zur Verfügung. Sie sollte nicht mit Großbuchstaben verwechselt wer­den – die Information über die Schreibweise ist in einem in Titlecaps umge­wandelten String noch enthalten; bei einer Umwandlung von Groß- in Kleinbuchstaben oder umgekehrt geht die Information über die ursprüngli­che Schreibweise dagegen verloren.

Eine korrekte Zeichenersetzung ist sprachabhängig. Nicht alle Zeichen sämt­licher Sprachen sind der Kategorie L zugeordnet, verfügen also zum Teil von vornherein nicht über das Konzept Groß-/Kleinbuchstaben. Aber auch in Spra­chen, die (weitestgehend) mit dem normalen lateinischen Alphabet geschrie­ben werden, ist die Umwandlung nicht sprachübergreifend konsistent – so kor­respondiert das »normale« kleine i im Türkischen mit dem großen gepunkteten İ, das »normale« große I dagegen mit dem kleinen ungepunkteten ı.

Alternative – Umwandlung bei der Präsentation
Soll Text mit XSL-FO oder CSS in Kleinbuchstaben präsentiert wer­den, so kann mit dem Property text-transform="lowercase" gearbeitet werden. Die Darstellung als Kleinbuchstaben geschieht dann ohne wirkliche Umwandlung, d.h. ohne Informationsverlust.

Beispiel – Umwandlung eines Strings in Kleinbuchstaben:

fn:lower-case("ABc!D")

ergibt abc!d. Das Ausrufezeichen ist von der Umwandlung nicht betroffen. Das bereits kleingeschriebene c bleibt unverändert. Eine Rückwandelung des Strings in den ursprünglichen Zustand (Rekonstruktion) ist anschließend nicht mehr möglich.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:lower-case($arg 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