XML-Know How

Einsatz und Grenzen von XSLT

Um XML-Daten in die gewünschten Zielstrukturen zu überführen (das kann auch eine InDesign-optimierte Form der XML-Daten sein, um zu einem möglichst hohen Grad an Satzautomation zu gelangen), ist XSLT die erste Wahl. Die Tatsache, dass es sich bei XSLT um einen offenen, weltweit gültigen Standard handelt und sämtliche erforderliche Komponenten als freeware verfügbar sind, hat maßgeblich zum Siegeszug von XSLT beigetragen.

Merke:

Gleichzeitig ist natürlich auch XSLT keine »Wunderwaffe«. Wie jede Technologie, so hat auch XSLT seine Grenzen. Die wichtigste ist implizit schon genannt worden:

XSLT »funktioniert« eigentlich nur, wenn als Eingabe-Datenformat bereits XML vorliegt!

XSLT ist daher nicht gut geeignet, um andere Formate nach XML zu überführen und ist damit kein universelles Konvertierungs-Tool. Auch sollte der Komplexitätsgrad, den ein Stylesheet erreichen kann, nicht unterschätzt werden. Müssen sehr umfangreiche DTDs ausprogrammiert werden und hierbei viele Bedingungen beachtet werden, wird ein Stylesheet schnell unübersichtlich.

Und natürlich gilt: Nur was in den Quelldaten strukturiert ist, kann auch gezielt transformiert werden. Das klingt banal, ist aber für den Einsatz von XML in der Verlagsbranche von zentraler Bedeutung. Schon an den sehr einfachen Beispielen wurde deutlich, dass erst die semantische Strukturierung der Daten eine gezielte und damit eindeutige Verarbeitung erlaubt. Ließen sich Informationen wie @kalorien oder <rezept> nicht ansteuern und auswerten (wäre die Musterinstanz also beispielsweise nur durch Absätze gegliedert), ließe sich keine der Beispielanwendungen umsetzen.

Auch für eine nachträgliche Semantisierung von XML-Instanzen ist XSLT eher ungeeignet, auch wenn mit XSLT 2.0 hier einige interessante Funktionen hinzugekommen sind. So ist es z. B. nur mit Mühe möglich, aus dem schwach strukturierten Text

<absatz>Zutaten: 1 Pfund Hackfleisch, 2 Zwiebeln, 1 kleine reife Tomate</absatz>

das gewünschte Zielformat wie folgt zu erstellen:

Beispiel:

<rezept>

<zutaten>

<z-angabe>

<menge>1 Pfund</menge>

<zutat>Hackfleisch</zutat>

</z-angabe>

<z-angabe>

<menge>2</menge>

<zutat>Zwiebeln</zutat>

</z-angabe>

<z-angabe>

<menge>1</menge>

<zutat>kleine reife Tomate</zutat>

</z-angabe>

</zutaten>

</rezept>

Für solche Anforderungen sind andere Skriptsprachen besser geeignet. Häufig kommt hier z. B. die Sprache Perl in Kombination mit sogenannten regulären Ausdrücken zum Einsatz. Eine spannende und vielversprechende Alternative ist auch TXSTEP. TXSTEP ist eine open-Source-Skriptsprache, die ursprünglich als Analyse- und Texterschließungswerkzeug für die Geisteswissenschaften entwickelt wurde und große Stärken u. a. in der Mustererkennung hat. Die Syntax eines TXSTEP-Skripts ist an die von XSLT angelehnt; es ist ebenfalls durchgängig in XML geschrieben. TXSTEP kann daher von XSLT-Anwendern leicht erlernt werden.

Merke:

XSLT ist die Transformationssprache von XSL und dient dazu, Stylesheets zu erstellen, die die Umwandlung einer XML-Datei in eine andere Struktur steuern.

Die einzelnen Umwandlungsregeln innerhalb eines Stylesheets werden Templates genannt.

Die Verarbeitung des Stylesheets übernimmt ein XSLT-Prozessor.

Der Aufbau einer XSLT-Arbeitsumgebung ist mit unentgeltlich erhältlichen Werkzeugen möglich: Benötigt werden lediglich ein Editor zum Erstellen der Stylesheets und ein XSLT-Prozessor zum Verarbeiten derselben.

XSLT gehört mittlerweile so untrennbar zum Technologieumfang von XML wie die Erstellung eigener Dokumentvorlagen zu Word. Ein Verlag, der seine Daten in XML vorhält, sollte sich unbedingt auch mit XSL auseinandersetzen und die notwendige technische Infrastruktur vorhalten. Idealerweise können dann kleinere Transformationsskripte im Verlag selbst erstellt werden.