XML - Grundlagen, Prinzipien und Anwendungen

Veranstaltung im Sommersemester 2006

Aufgabe 8 - Abbildung von XML nach XSL-FO

Abgabe bis 12.6.2006


In dieser Aufgabe wird das Programm aus Aufgabe 7 weitergeführt. In Aufgabe 7 wurde ein XSLT Programm erstellt, das ein HTML-Dokument aus dem gegebenen Glossar in XML-Form generierte. Das Ziel der aktuellen Aufgabe ist es, wiederum aus dem gleichen Glossar ein PDF-Dokument zu erstellen. Als Zwischenschritt muss ein XSL-FO Dokument generiert werden, welches anschliessend mittels FOP nach PDF transformiert werden kann.

Als Grundlage für die Lösung dieser Aufgabe kann das XSLT Stylesheet fo-template.xsl verwendet werden. Zudem können einige Codefragmente aus Aufgabe 7 in dieser Aufgabe wiederverwendet werden. In der Verwendung der verschiedenen Features von XSL-FO lassen wir Freiheiten, ein existierendes PDF-Dokument des Glossars soll wiederum als Beispiel dienen. Als Minimalanforderung gilt eine alphabetische Liste aller Topics mit der zugehörigen Beschreibung.


Abgabe

Die Abgabe der Übung besteht darin, das oder die erstellten Stylesheets an den Betreuer zu mailen, am besten durch Klick auf den Abgabe Übung 8 Link. Als Eingabe für die Stylesheets muss die Topic Map aus Aufgabe 4 akzeptiert werden, als Ausgabe soll ein formatiertes XSL-FO Dokument dieser Topic Map erstellt werden, welches anschliessend nach PDF transformiert werden kann, wie im folgenden näher beschrieben wird.

Bemerkung: Ihr dürft die Übung in Zweiergruppen lösen. Bei der Abgabe sind beide Namen zu erwähnen.


Vorgehen

Das Erstellen eines PDF-Dokumentes aus XML geschieht in der Regel in zwei Schritten:

  1. Das XML-Dokument wird mittels eines XSLT Stylesheets nach XSL-FO transformiert. Das resultierende Dokument ist wiederum ein gültiges XML-Dokument, das Elemente aus dem Namespace http://www.w3.org/1999/XSL/Format verwendet. Als Beispiel dient das XSL-FO Dokument glossary.fo, welches mit dem zur Verfügung gestellten Template fo-template.xsl erstellt wurde.
  2. Das XSL-FO Dokument wird anschliessend mit FOP oder irgendeinem anderen XSL-FO Prozessor nach PDF transformiert. Aus dem oben angegebenen Template wurde so das PDF Dokument glossary.pdf erstellt.
Zur Lösung dieser Aufgabe empfielt sich folgendes Vorgehen:

XSLT und FOP auf den tardis Maschinen

Die Entwicklungsumgebung ist die gleiche wie in der vorangegangenen Aufgabe, daher kann die Anleitung zu XSLT auf den tardis-Maschinen wiederverwendet werden. Das Resultat der XSLT Transformation soll mittels xsl:document Anweisung im XSLT-Dokument in eine Datei ausgeschrieben werden, wie im Template vorgegeben.

Mit dem Exchanger XML Lite

  1. Verwendet bitte den absoluten Pfadnamen für die Dateiangabe im href-Attribut der xsl:document Anweisung, weil sonst das Ergebnis der Transformation im Installtionsverzeichnis des Exchangers landen wird.
  2. Für die Transformation nach PDF bietet sich das Menü "Transform" &rarr "Execute FO ..." an.

Mit Emacs

  1. Es wird empfohlen, dass Emacs nur zur Transformation des XML-Glossars nach XSL-FO verwendet wird.
  2. Weil das Resultat der XSLT Transformation in eine Datei ausgeschrieben wird, gibt Die XSLT Menu Option Apply XSLT, View in buffer im Buffer ein leeres XML-Dokument zurück.
  3. Der in Emacs enthaltene FOP Prozessor, der über die Menu Option Apply XSLT, View PDF gestartet werden könnte, hat die Version 0.20.1 und enthält einige Fehler, die in den neueren FOP Versionen behoben sind. Die Transformation des XSL-FO Dokumentes nach PDF geschieht deshalb am besten ausserhalb von Emacs über das Commandline-Interface der auf tardis(-bxx) installierten FOP-Version 0.20.5:

    fop glossary.fo glossary.pdf

please send comments to xml-vl@dret.net
last modification on Tuesday, 06-Jun-2006 15:57:08 CEST
valid CSS!valid XHTML 1.0!