XSLT – (trans)formidabel

Wenn es darum geht, flexibel auf unterschiedliche XML-Daten zuzugreifen und sie in andere Formate zu bringen, kann die "Programmiersprache" XSLT durchaus bestechen. In jedem Fall leistet sie einen wichtigen Beitrag zum erfolgreichen Single-Source-Publishing.

Die eXtensible Markup Language XML, ist eines der "buzz words" in der Technischen Dokumentation, insbesondere wenn es um Single-Source-Publishing geht. Also die Idee, aus einer Quelle Dokumente in verschiedenen Ausgabeformaten (z. B. Druck, PDF, HTML) zu erzeugen, eventuell sogar mit verschiedenen, dem Ausgabeformat angepassten Inhalten. XML erscheint deshalb so geeignet für das Single-Source-Publishing, weil es von der Grundidee eine (Meta-)Sprache zur Strukturierung von Inhalten ist und keine Information über Layout oder Formatierung enthält (siehe Beispiel 1). Anhand der Strukturinformation, dass z. B. ein Textstück eine Kapitelüberschrift ist, kann für verschiedene Ausgabeformate die jeweils passende Formatierung angewendet werden.

 

Beispiel 1: XML-Datei

Beispiel 1: XML-Datei
Beispiel 1: XML-Datei

Von XML zur Publikation

Wie wird aus einem XML-Dokument eine HTML-Seite oder ein gedrucktes Handbuch? Zwei Aufgaben stehen an:

Cascading Stylesheets (CSS)
Falls man aus XML-Dokumenten "nur" eine Online-Version erzeugen, sie also in Internet-Browsern anzeigen will, kann man auf die aus der HTML-Welt bekannten Cascading Stylesheets (CSS) zurückgreifen. Diese fügen Browser-gerecht Layout und Formatierung hinzu.
Eine Auswahl oder eine Umorganisation der Inhalte ist allerdings nicht möglich, d. h. das XML-Dokument muss exakt alle gewünschten Inhalte in der gewünschten Reihenfolge enthalten.

Publishing-Tools mit XML-Schnittstelle
Nachdem sich XML in letzter Zeit immer weiter verbreitet hat, bieten auch die gängigen Textverarbeitungs und Publishing-Tools entsprechende Schnittstellen an. Adobe FrameMaker kann z. B. seit Version 7.0 XML-Dokumente verarbeiten, denen eine DTD (Document Type Definition) zu Grunde liegt. Dabei werden den Strukturelementen Formatierungsinformationen zugewiesen; über eine Programmierschnittstelle kann man auch komplexere Operationen vornehmen. Ein XML-Dokument wird so in ein "normales" FrameMaker-Dokument verwandelt. Mit Office 2003 hat auch Microsoft das XML-Zeitalter eingeläutet. Word-Dokumente können nun als XML-Dokumente gespeichert und wieder eingelesen werden. Das zu Grunde liegende XML-Schema ist offengelegt, es können aber auch eigene Strukturelemente in einem XML-Schema definiert und verwendet werden.

Extensible Stylesheet Language (XSL)
Auch die XML-Familie selbst bietet einen Weg vom XML-Dokument zum "fertigen" Dokument: XSL (eXtensible Stylesheet Language); www.w3.org/Style/XSL/. XSL wurde mit dem Ziel entwickelt, CSS abzulösen und dessen Schwächen auszubügeln: Erstens sollten nicht nur Web- sondern auch gedruckte Dokumente erzeugt werden können; zweitens sollte die Sprache auch eine beliebige Transformation der Inhalte eines XML-Dokuments ermöglichen.

XSL ist in Wirklichkeit eine Familie von XML-Sprachen: XSL-FO (XSL Formatting Objects; standardisiert Oktober 2001) beschreibt Layout und Formatierung, XSLT (XSL Transformation; standardisiert November 1999) die Transformation von XML-Inhalten. Zu beiden Sprachen wurden passende Tools entwickelt: So genannte FO-Prozessoren wandeln XSL-FO-Dokumente z. B. in PDF um; XSLT-Prozessoren lesen XML-Dokumente sowie XSLT-Stylesheets und erzeugen daraus XML-, HTML- oder Text-Dokumente.

Beispiel 2: XSL-FO-Datei
Beispiel 2: Formatierung einer XML-Datei mittels XSL-FO

Beispiel 2 zeigt, wie eine XML-Datei mittels XSL-FO formatiert werden kann. Im Vorspann des XSL-FO-Dokuments wird das Seitenlayout festgelegt (hier auf Standardeinstellungen); dann folgt der formatierte Inhalt.

Es ist gut ersichtlich, dass XSL-FO eigentlich der XML-Philosophie der strikten Trennung von Inhalt und Darstellung widerspricht. Gleichzeitig wird auch deutlich, dass XML-Dateien nur umständlich mit XSL-FO manuell formatiert werden können, weil dann z. B. jeder Kapitelüberschrift von Hand dasselbe Format zugewiesen werden müsste. Aber das ist auch nicht nötig, denn genau dafür wurde XSLT entwickelt: zur Transformation der XMLQuelldateien in XSL-FO-Dokumente. Doch das ist nicht der einzige Verwendungszweck von XSLT.

Beispiel 3 zeigt, wie eine XML-Datei mittels XSLT in eine HTML-Seite transformiert werden kann. Grundelement von XSLT sind die so genannten Regeln (<xsl:template>); sie geben an, wie bestimmte Elemente eines XML-Dokuments transformiert werden sollen. In diesem Beispiel wird für das Element <book> der HTML-Kopf ausgegeben, mit dem Inhalt des Kind-Elements <title> als Titel (abgefragt mittels <xsl:value-of>). Dann wird mit <xsl:apply-templates/> die Kontrolle wieder an den XSLT-Prozessor übergeben, der die folgenden Elemente im Dokument abarbeitet. Das Element <title> kann je nach Elternelement in eine Überschrift ersten (<book>), zweiten (<chapter>) oder dritten Grades (<section>) umgesetzt werden. Das Beispiel zeigt nur einen kleinen Ausschnitt der Möglichkeiten, die sich mit XSLT bieten. XSLT ist eine ausgewachsene Programmiersprache mit Variablen, Schleifen, Verzweigungsanweisungen und vielem mehr.

Beispiel 3: XSLT-Datei
Beispiel 3: Umwandlung einer XML-Datei (mittels XSLT) in eine HTML-Seite

XSLT im Praxistest

Bei der MVTec Software GmbH stand letztes Jahr ein Handbuch-Projekt an, das zum ersten Mal auf der Basis von XML realisiert werden sollte. MVTec ist ein führender Hersteller von Software für industrielle Bildverarbeitung; die Produkte werden mit umfangreicher Dokumentation ausgeliefert (siehe www.mvtec.com/download/documentation/).

Das neu zu erstellende Handbuch, der "Quick Guide to HALCON", ist trotz seines Names mit mehr als 200 Seiten durchaus umfangreich. Neben klassischen Handbuch-Textformen beinhaltet es auch stark strukturierte Teile, etwa Kapitel mit Beispielanwendungen der Software in den verschiedenen Industriezweigen. Diese sind jeweils nach dem Schema "Beispielprogrammname - Screenshots - Text mit Auszügen aus dem Beispielprogramm - Liste weiterer Beispiele" aufgebaut. Als weitere Besonderheit sollten die Listen passender Beispiele automatisch aus einer Datenbank von Beispielbeschreibungen (ebenfalls auf Basis von XML) generiert werden. Ähnliches gilt für die Auszüge aus den Beispielprogrammen.

Als DTD für das Handbuch kam Doc-Book (docbook.sourceforge.net/) zum Einsatz, eine umfangreiche Open-Source-DTD, die alles bietet, was typische Handbücher an Strukturelementen verlangen. Grund für diese Wahl war auch, dass sich DocBook sehr einfach mit eigenen Elementen erweitern lässt, was für die angesprochenen stark strukturierten Handbuch-Teile nötig war.

Als Zielformate für das Handbuch waren PDF und PostScript für die Druckversion vorgegeben. Layout und Formatierung sollten mittels LaTeX geschehen, einem plattformunabhängigen Open-Source-Textsatz-System (www.latex-project.org/), das auch für die bereits bestehenden Handbücher bei MVTec eingesetzt wird. LaTeX ist eine WYSIWYG-Umgebung; es besteht aus einer Auszeichnungssprache, die durchaus Ähnlichkeiten mit XML aufweist, und Tools, die Eingabedateien in fertige Dokumente "übersetzen" (siehe Beispiel 4).

Beispiel 4: XML-Datei in der LaTeX-Version
Beispiel 4: XML-Datei in der LaTeX-Version

Aufgabe war es, die XML-Handbuchdateien in LaTeX-Dateien zu transformieren und dabei automatisch Informationen aus weiteren XML-Dateien einzubinden, die nicht primär für das Handbuch konzipiert wurden, nämlich aus der Beispiel-Datenbank und den Beispielprogrammen selbst - eine typische Anwendung für XSLT, dessen Stärken ja gerade im flexiblen Zugriff auf XML-Daten aller Art und deren beliebiger Transformation liegen.
Auch bei den XSLT-Stylesheets musste nicht bei Null angefangen werden. Für DocBook gibt es eine Vielzahl von Open-Source-Stylesheets zur Transformation in verschiedene Formate, so auch DB2LaTeX (db2latex.sourceforge.net/) für die Transformation in LaTeX-Dateien. Wie DocBook selbst sind auch diese Stylesheets einfach für eigene Zwecke anpassbar und erweiterbar. Als XSLT-Prozessor kam die Open-Source-Version von Saxon zum Einsatz (saxon.sourceforge.net/). Der komplette Prozess der Handbuch-Erzeugung lief unter Linux.

Das Handbuch wurde in ca. fünf Personenmonaten fertiggestellt. Drei Wochen entfielen dabei auf die Einarbeitung in XML und XSLT, sieben Wochen auf die Erstellung von DTD und XSLTStylesheets und zwölf Wochen auf den eigentlichen Handbuch-Inhalt.

Fazit

Wie das Praxisbeispiel zeigt, kann es sich auch im Bereich der Technischen Dokumentation durchaus lohnen, einen Blick auf XSLT zu werfen. Ausgehend von dem Ziel, XML- in XSL-FO-Dokumente zu transformieren und damit zu formatieren, entstand mit XSLT ein mächtiges, plattformunabhängiges Werkzeug, das eine fast beliebige Manipulation von XML-Daten erlaubt. Es ist seit fast fünf Jahren standardisiert und weit verbreitet, was sich auch in der Menge der verfügbaren Tools und Stylesheets zeigt, vieles davon Open Source.

Die Anwendungsbereiche von XSLT sind vielfältig: So können XML-Dokumente direkt in HTML transformiert werden; gängige Browser besitzen deshalb auch einen XSLT-Prozessor. Die Stärken von XSLT kommen typischerweise dann zum Tragen, wenn die XML-Daten in Strukturen vorliegen, die nicht der des Zieldokuments entsprechen, weil sie auch für andere Zwecke verwendet werden. Eine weitere Anwendung sind Projekte, in denen XML-Dokumente in spezielle Ausgabeformate transformiert werden sollen, wie im beschriebenen Fall in LaTeX-Dateien. XSLT kann aber auch im Zusammenspiel mit Tools wie Word oder FrameMaker von Nutzen sein, z. B. um XML-Dokumente in eine Form zu transformieren, die zur Weiterverarbeitung mit diesen Tools geeignet ist. Jedoch: XSLT ist und bleibt eine Programmiersprache. Es ist kein Zufall, dass beim oben beschriebenen Projekt alle Mitarbeiter, die an der Handbuch-Technik beteiligt waren, aus dem Bereich der Software-Entwicklung stammen - aber das gilt ja auch für viele Word-Makro- und FrameMaker-API-Spezialisten.


01.10.04
Dr. Ing. Alexa Zierl - Verantwortliche für die Technische Produktdokumentation bei MVTec


Impressum

Herausgeberin:
Comet Computer GmbH
Rückertstr. 5
80336 München
Tel.: 089-54 45 60 45
Fax: 089-54 45 60 46
E-Mail: comet@comet.de

Verantwortlich:
Prof. Sissi Closs

Comet Computer GmbH

Comet zählt seit Ende der 80er Jahre zu den führenden Anbietern im Bereich Technische Dokumentation. Mit unserem Team aus Informatikern, Natur- und Geisteswissenschaftlern sowie Grafikern und Web-Designern entwickeln wir anspruchsvolle Lösungen, die passgenau auf Ihre Anforderungen zugeschnitten sind. Wir erstellen Handbücher, Online-Hilfen und Bedienungsanleitungen – mediengerecht und in mehrsprachiger Übersetzung. Selbstverständlich übernehmen wir auch die Lokalisierung Ihrer Software und unterstützen Sie bei der Umstellung Ihrer Technischen Dokumentation auf Single Source Publishing.

In unserem modernen Schulungszentrum bieten wir Kurse zu allen aktuellen Themen der Technischen Dokumentation – von den Grundlagen bis zu den Tools wie RoboHelp, AuthorIT und Framemaker.

Comet Communication GmbH

Die Comet Communication GmbH bietet Ihnen Beratung, Schulung und Service rund um die Technische Redaktion, Technische Dokumentation und Technische Kommunikation.

Aktuelle Schulungen bei Comet Communication

21.09.2010 DITA (Darwin Information Typing Architecture)
22.09.2010 InDesign als DTP-Programm
24.09.2010 Lokalisierung
29.09.2010 Online-Hilfen - Grundkurs
06.10.2010 Captivate - multimediale Tutorials für die Software-Dokumentation