Lehrer Nussbaumer - XML, XSL et cetera |
---|
XMLXSL
AnwendungenEditorenParser u.a.Schnittstellen----------------- letzte änderung: 09 December 2021 ----------------- Lehrer Nussbaumers Seite ... in Arbeit ... |
XSL-FOXSL umfasst einerseits die Transformation von XML-Daten und andererseits ihre Formatierung.
Durch die Transformation wird zunächst ein Teilbaum aller XML-Elemente gebildet, die ausgegeben werden sollen; dabei werden auch bestimmte Formatierungselemente ergänzt. Im zweiten Schritt wird beispielsweise ein PDF-Dokument erzeugt.
Das Apache-FOP-ProjektApache stellt im Rahmen des XML-Projektes den Formatierer "fop" zur Verfügung (http://xml.apache.org/fop/download.html). Nach dem Download der entsprechenden Fop*bin.tar.gz - Datei entpackt man den gesamten Inhalt und erhält im Verzeichnis Fop* die Startdateien fop.sh (bzw. fop.bat). Mit ihnen werden alle zum Formatieren erforderlichen Klassen (JAVA-Archiv-Dateien im Verzeichnis lib) geladen und die Transformation in ein PDF-Dokument durchgeführt (Anmerkung: Unter Linux muss man der Datei "fop.sh" und allen Dateien im Verzeichnis "lib" Rechte zum Ausführen vergeben). nus@ice:~/Fop-0.20.1> ./fop.sh anfang.fo ausgabe.pdf FOP 0.20.1 using SAX parser org.apache.xerces.parsers.SAXParser building formatting object tree setting up fonts [1] [2] Parsing of document complete, stopping renderer Initial heap size: 414Kb Current heap size: 922Kb Total memory used: 507Kb Memory use is indicative; no GC was performed These figures should not be used comparatively Total time used: 326ms Pages rendererd: 2 Avg render time: 163ms/page Das PDF-Dokument wird anschließend mit einem PDF-Betrachter (gv, xpdf, acroread, ...) geladen, angezeigt und ggf. ausgedruckt... Der Aufbau eines FO-DokumentesDas folgende Beispiel zeigt den (wohlgeformten) Aufbau einer XSL-FO-Datei: <?xml version="1.0" encoding="iso-8859-1"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="seite" page-height="29.7cm" page-width="21cm" margin-top="2cm" margin-bottom="2cm" margin-left="3.5cm" margin-right="2.5cm"> <fo:region-body margin-top="3cm" reference-orientation="90" /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-name="seite"> <fo:flow flow-name="xsl-region-body"> <fo:block font-size="24pt" font-family="sans-serif" background-color = "#ff0000"> Eine Überschrift </fo:block> <fo:block font-size="12pt" font-family="serif" space-before="1cm"> Eine kurze Zeile... </fo:block> <fo:block font-size="12pt" font-family="serif" space-before="5mm"> Hier wird einmal ein längerer Text ausgegeben, der eigentlich über mehrere Zeilen umgebrochen werden sollte. Aber Halt: Hier haben wir ein neues Problem zu lösen! </fo:block> </fo:flow> </fo:page-sequence> </fo:root> Wir erkennen zahlreiche XML-Elemente zum angegebenen Namensraum "fo". Sie werden Formatierungsobjekte genannt. Ihre Attribute legen zahlreiche Eigenschaften für sie fest; diese Attribute heißen Formatierungseigenschaften. |