Mit XSL-FO gewinnt XML an Format

21.01.2002
Von Fotis Jannidis
MÜNCHEN (COMPUTERWOCHE) - Das W3-Consortium (W3C) stellte mit der Empfehlung "Extensible Stylesheet Language - Formatting Objects" (XSL-FO) XML ein leistungsfähiges System zur Formatbeschreibung zur Seite. Es ermöglicht ein plattform- und programmunabhängiges Layout von XML-Dateien.

Die Extensible Markup Language (XML) gehört mit Sicherheit zu den erfolgreichsten Empfehlungen, die das W3C bis dato verabschiedete. Die gerade einmal 50 Druckseiten starke Beschreibung des Standards löste eine Revolution aus: Heute sind XML-Parser Bestandteil fast aller Betriebssysteme, die meisten Browser und Datenbanken können XML-Dateien verarbeiten, und viele Programme kommunizieren mittels XML-codierter Informationen. Was bislang fehlte und nun von XSL-FO geboten wird, war eine eigene Formatierungssprache. Sie sollte leistungsfähig genug sein, XML-Dokumente in der Komplexität zu formatieren, die für den Druck üblich ist.

Publikationsweg mit XSLT/SXL-FO: Die Formatierungsangaben werden normalerweise nicht direkt in das XML-Quelldokument eingegeben, sondern in ein separates Stylesheet. Ein XSLT-Prozessor generiert daraus ein XSL-FO-konformes Dokument. (Quelle: Jannidis)
Publikationsweg mit XSLT/SXL-FO: Die Formatierungsangaben werden normalerweise nicht direkt in das XML-Quelldokument eingegeben, sondern in ein separates Stylesheet. Ein XSLT-Prozessor generiert daraus ein XSL-FO-konformes Dokument. (Quelle: Jannidis)

Wie schon bei SGML gilt auch bei XML die Trennung von Inhalt und Layout als besonderer Pluspunkt. So informiert die folgende Auszeichnung "name" zwar da-rüber, dass das betreffende Element einen Eigennamen enthält, macht aber keine Angaben, wie dieser auf dem Bildschirm oder auf Papier dargestellt werden soll: "Linux wurde von Linus Torvald geschaffen". Mittels einer Formatierungsanweisung lassen sich nun alle Namen typografisch gleich gestalten. Solche Formatierungsangaben müssen natürlich selbst wiederum notiert werden, zumeist in Stylesheets.

Eine wesentliche Anforderung an XSL bestand darin, eine beliebige Neuanordnung aller Elemente des XML-Dokuments zu erlauben. Deshalb unterteilte die XSL-Arbeitsgruppe von Anfang an den geplanten Standard in zwei Bereiche: eine Sprache zur Transformation der Struktur von XML-Dokumenten (XSLT) und ein Vokabular, mit dem man Formatinformation festlegen kann (XSL-FO). In einem klugen Schachzug verabschiedete das W3C schon 1999 XSLT einschließlich eines Standards zur Adressierung beliebiger XML-Dokumentenabschnitte (Xpath). Es zeichnete sich nämlich ab, dass die Festlegung des Formatierungsvokabulars ungemein schwierig würde.

Ein XSL-Stylesheet für ein XML-Dokument verwendet XSLT, um festzulegen, welche Elemente in dem XML-Dokument von der Formatangabe betroffen sind. XSLT erlaubt dabei auch sehr genaue Angaben aufgrund der Position des Elements oder aufgrund von Attributen oder Inhalten. Mittels XSL-FO werden die eigentlichen Angaben über Seiten-, Absatz- und Zeichenlayout festgelegt. Die meisten heute verfügbaren XSL-Renderer nehmen eine XML-Datei und eine XSLT-Datei als Eingabe. Intern erfolgt zuerst eine Transformation der XML-Daten mittels XSLT in ein XSL-FO-Dokument und dieses Dokument wird anschließend einem XSL-FO-Renderer übergeben.