Kapitel 5. Einführung in XSL

Dokumentationen mit DocBook-XML

Kapitel 5. Einführung in XSL

Die Extensible Stylesheet Language

Der XSL-Standard dient dazu, XML Dokumente eine darstellbare Form zu geben. Ein XML-Dokument an sich enthält nicht unbedingt Formatierungsanweisungen, so dass es nötig sein kann, ein XML-Dokument in ein anderes Format umzuwandeln, welches solche Formatierungsinformationen enthält.

Eines dieser Formate wäre zum Beispiel HTML. Im HTML-Standard ist definiert, dass Text, der vom Element b eingeschlossen wird in fetter Schriftart formatiert werden soll und Text, der vom Element i eingeschlossen ist kursiv dargestellt werden soll.

Der erste Teil der XSL-Spezifikation befasst sich also damit, wie ein XML-Dokument in ein anderes XML-Dokument oder HTML-Dokument umgewandelt werden kann. Dazu ist es nötig, Regeln anzugeben, nach denen Elemente des Ausgangsdokuments in andere Inhalte umgewandelt werden. Diese grundlegenden Techniken werden in diesem Kapitel vorgestellt.

XHTML als einziges standardisiertes XML-Format, welches Formatierungsinformationen enthält ist nicht geeignet, wenn es darum geht, XML-Dokumente in einem druckbaren Format dazustellen. HTML ist spezialisiert auf Hypertextdokumente und enthält daher keine Möglichkeit, Kopf- und Fußzeilen oder Seitenzahlen zu spezifizieren.

Aus diesem Grunde wurde XSL:FO für Extensible Stylesheet Language Formatting Objects entwickelt. Dies ist eine XML-Sprache, die detailierte Informationen zur Formatierung von Inhalten enthält. XSL:FO-Dokumente können dann in andere Formate wie PDF, PS, RTF oder HTML umgewandelt werden. Die Grundlagen der XSL:FO-Sprache werden im nächsten Kapitel behandelt.

Grundlagen

XSL ist eine XML-Sprache wie XHTML oder DocBook mit dem Unterschied, dass sie nicht dazu dient, Texte mit erweiteren Inhalten anzureichern, sondern fast wie eine Programmiersprache Regeln definiert, nach denen XML-Dokumente dargestellt werden.

Der erste Schritt zu Erstellung solcher Regeln ist das Auffinden der zu wandelnden Inhalte. Dies wird über eine eigene, recht einfache Programmiersprache erledigt, die XPath genannt wird.

Mit dieser Sprache ist es möglich einzelne oder mehrere Knoten des XML-Dokuments zu finden, in Abhängigkeit von über- und untergeordneten Knoten, von Attributen und deren Werten und von vorhergehenden bzw. nachfolgenden Elementen.

Der zweite Schritt besteht darin, zu definieren, wodurch die gefundenen Knoten ersetzt werden sollen. Dabei können nicht nur Fallunterscheidungen getroffen werden, sondern es kann auch mit selbstdefinierten Variablen gearbeitet werden.

In den folgenden Abschnitten werde ich nur auf die XSLT-Spezifikation 1.0 eingehen, und im wesentlichen mit DocBook und HTML als Ausgabeformat arbeiten.