XSL-FO (extensible stylesheet language formatting objects)

XSL-FO steht für eXtensible Stylesheet Language Formatting Objects und bezeichnet einen vom World Wide Web Consortium (W3C) veröffentlichten Standard für eine XML-basierte Formatierungssprache. XSL-FO gehört neben XSLT und XPath zur Sprachfamilie XSL und die Spezifikation wurde im Jahr 2006 in der Version 1.1 unter dem u.g. Link vorgestellt. Danach ist XSL-FO eine Beschreibung von Druckerzeugnissen in Form eines XML-Dokuments.

Da ein XSL-FO-Dokument zum jetzigen Zeitpunkt noch nicht direkt dargestellt werden kann, werden sie mit Hilfe eines XSL-FO-Prozessors in unterschiedliche Ausgabeformate gerendert. Dabei ist das Portable Document Format (PDF) ein häufiges Ausgabeformat, währenddessen XML häufig für das Eingabeformat gewählt wird. Anwendung findet XSL-FO bei der Herstellung von Büchern, Prospekten und Zeitungen. Dazu stehen eine Reihe von Elementen und Attributen zur Verfügung. Im Vergleich mit HTML und Cascading Style Sheet (CSS) überwiegen bei Anwendung von XSL-FO die Möglichkeiten zur Gestaltung eines Dokuments und dementsprechend ist auch der Umfang dieser Formatierungssprache erheblich weitreichender. Einfluss genommen auf die Entwicklung von XSL-FO hat die Transformations- und Formatierungssprache Document Style Semantics and Specification Language (DSSSL).

Die XSL-FO definiert zusammen mit XSLT und XPath die eXtensible Stylesheet Language (XSL) und ist eine XML-Applikation, die Informationen zum visuellen Layout - der Aufteilung der Seiten und dem darstellenden Inhalt - eines Dokuments bereitstellt. Dazu deklarieren die Elemente - Seiten, Vorlagen, Tabellen, Listen, Formatierungen, Grafiken, Links - die Struktur des Ausgabe-Dokuments. Die zugeordneten Attribute eines Elements definieren dessen lokale Formatierung und bestimmen somit das Aussehen des Inhalts. Die Attribute werden im Zusammenhang mit XSL-FO auch Properties genannt, von denen mehr als 200 zur Angabe in verschiedensten Elementen definiert sind.

XSL-FO-Prozessor

XSL-FO-Prozessor

Für die Umwandlung des XSL-FO-Dokuments in ein Text-, Postscript- oder PDF-Dateiformat wird ein Programm benötigt - der sogenannte XSL-FO-Prozessor. Die Abbildung verdeutlicht diesen Prozess der Umwandlung, wobei Grafiken vom " Prozessor" in das Dokument eingefügt werden. Ebenso wird auch der eigentliche Text erst zum Schluss eingefügt. Einige bekannte XSL-FO-Prozessoren sind über die u.g. Links verfügbar. Dabei werden XSL-FO-Dokumente nicht direkt geschrieben.

Ablauf der Transformation zu XSL-FO

Ablauf der Transformation zu XSL-FO

Die XML-Daten werden zunächst mit Hilfe eines XSLT-Stylesheets und eines XSLT-Prozessors nach XSL-FO übersetzt, um dann anschließend mit Unterstützung eines XSL-FO-Prozessors in die verschiedenen Ausgabeformate transformiert zu werden. Diesen Ablauf verdeutlicht die Abbildung.

Das zentrale Element eines XSL-FO-Dokuments ist das Root-Element fo: root und wie im Rahmen der W3C-Spezifikation hinsichtlich XML häufig anzutreffen, wird zunächst auch der Namensraum festgelegt, dem alle Elemente und Attribute zugeordnet sind. Zudem muss ebenfalls die XML-Deklaration angegeben werden, da XSL-FO-Dokumente gleichfalls XML-Dokumente sind.

Beipiel für ein XSL-FO-Dokument

Beipiel für ein XSL-FO-Dokument

In Anlehnung an ein seitenorientiertes Druckerzeugnis werden in einem XSL-FO-Dokument der Aufbau und die Folge dieser Seiten festgelegt. Dazu besteht ein XSL-FO-Dokument immer aus mehreren Teilen: Der Definition der Seitenvorlagen, ggf. der Definition von Seitenfolgenvorlagen und der Beschreibung, wie Seiten mit Inhalt gefüllt werden.

Mit Hilfe des Elements fo:external-graphic wird ein Bild - im GIF-Dateiformat oder in JPEG - in ein Dokument eingebettet. Ebenso gibt es mit dem Element fo:basic-link eine Möglichkeit für Hyperlinks. Dabei können Ziele des Links sowohl externe Ressourcen als auch Positionen innerhalb des Dokuments sein. Die weiteren Elemente für Tabellen, Listen und Layouts ergeben sich aus der Spezifikation des W3C über den u.g. Link.

Informationen zum Artikel
Deutsch:
Englisch: extensible stylesheet language formatting objects - XSL-FO
Veröffentlicht: 15.02.2010
Wörter: 569
Tags: Web-Software
Links: Attribut, Bild, content, CSS (cascading style sheet), DSSSL (document style semantics and specification language)