Benutzer-Werkzeuge

Webseiten-Werkzeuge


xslt:how-to

XSLT-FO - How-To

XSLT wird auf ein XML angewandt um die Knotenmengen zu transformieren. Also aus einen Input-Baum einen formatierten Output-Baum zu erzeugen. Mann kann so bspw. ein XML in XHTML umwandeln und gleich noch ähnlich zu CSS stylen. Im Zusammenhang mit der Erstellung von PDF kann man mit XSLT-FO das Layout des PDFs festlegen. XSLT-FO erstellt nicht selber das PDF sondern muss zusammen mit dem XML bspw. Apache FOP übergeben werden der das dann durchführt.

grundsätzliche Hinweise zum erstellen XSLT

  • Alles in <fo:static-content> kann nicht über die Grenzen des definierten Bereiches/ Seite fließen anders als <fo:flow> das sich dadurch besser für mehrseitiges Content eignet. Dabei bedürfen die beiden Tags mindestens ein <fo:block/> um durchlaufen zu können
  • XSLT Templates sind keine imperative Programmiersprache.
  • Variablen sind nach einmaligem setzen final und nicht mehr veränderbar und werden nachdem der Abschnitt in dem sie definiert werden, durchgelaufen ist, zerstört. Daher gibt es keine Rückgabewerte oder Methoden.
  • for-Schleifen sollten vermieden und anstatt lieber Templates benutzt werden.

Debuggen von XSLT

  • Am besten baut man das XSLT schrittweise auf und tested das auch so. Falls man nur einen Texteditor und Fop benutzt sind die Errors-Messages die geworfen werden recht unspezifisch und und XML/XSLT hat die Tendenz, dass wenn etwas nicht funktioniert auch mal keinen Fehler zu schmeißen und es einfach nicht zu machen. Bevor man also in einem großen XSLT sich auf die Suche macht, nach der einen nicht geschlossenen Klammern, die vielleicht in einem Tag liegt der garnichts mit dem Tag der in der Error-Message erwähnt wird, zu tun hat, baut man das XSLT lieber Schrittweise auf.
  • Das Gerüst eines XSLT besteht aus wenigen notwendigen Zeilen, die eigentlich immer gleich sind. Bei den meisten Elementen in einem XSLT muss es nur mindestens ein <fo:block/> Element geben. Ausnahmen sind Tabellen die mindestens eine row und Zelle brauchen.Falls man also in die Verlegenheit kommt ein fertiges XSLT debuggen zu müssen kann man erst alles mit <!– „Hier Code“ –> auskommentieren und den Code dann schrittweise wieder einkommentieren.

Grundgerüst einfaches XSLT

xslt/how-to.txt · Zuletzt geändert: 2017/04/13 10:55 von 127.0.0.1