Oli: Was kann ich denn nun wirklich mit XSL machen?

Beitrag lesen

Hallo Jan,

XSL gliedert sich in eine Transformationssprache (XSLT) sowie eine Formatsprache (XSL-FO). Im Prinzip läuft es so: Der Quellbaum des XML-Dokuments wird erstellt, mit Hilfe des "match template" wird nach passenden Templates in einem verbundenen XSL(T)-Stylesheet gesucht. Die Templates werden dann in der Regel vom Rootelement ausgehend rekursiv abgearbeitet. Hierbei können starke Veränderungen des XML-Baums vorgenommen werden (Sichten über Dokumente u.ä.). Das Ergebnis ist ein XML-Zielbaum, auf den dann XSL-FO Objekte angewendet werden können.

Der Aussage von Thomas entnehme ich das die ganzen fo-Tags in der W3C-Doku eher dazu dienen pdf-Dateien zu generieren, was mir durchaus verständlich ist, da ich mich schon gefragt habe wie all diese Feinformatierungen überhaupt in html umgesetzt werden sollen.

Ich hab das eher so verstanden, daß XSL-FO allgemeine Formatanweisungen liefern, die dann von Applikationen interpretiert werden, welche für die Ausgabe auf "beliebigen" Medien (HTML, XML, PDF, Sprache) sorgen. (Die tatsächliche Prozeß vom Zielbaum zur Darstellungen ist freilich deutlich komplexer. Auch sollte man sich das ganze wohl eher als inneinander greifenden Phasen denn als disjukte Schritte vorstellen.

Somit sieht es für mich nun so aus, als wenn XSL nix anderes macht als die XML-Bereiche auszulesen und sie mir als Variablen zur Verfügung stellt, wobei ich diese einfach mit dem gewünschten html-Gerüst formatiere. (Mal abgesehen von evtl. Schleifeninstrumenten u.ä.)

Jein, mit XSL veränderst du XML Daten zum Teil drastisch: So kannst du mit dem Konstrukt <match template select = "//para[position = not(last())]"> Transformationen nur auf das letzte para Element anwenden.

Ist das wirklich alles was mir XSL im Bezug auf die Gernerierung von XSL-Code bietet? Wozu brauche ich dann aber xsl:apply-templates/ um Formatierungen auf die child-Bereiche zu übertragen?

Wie gesagt, apply templates sorgt für die rekursive Bearbeitung der Kindelemente, die du mit dem Attribut "select" noch einschränken kannst.

Danke für Eure Hilfe und einen erfolgreichen Donnerstag.

;-) gleichfalls

Gruss

Oli

P.S.: Unter http://www.pms.informatik.uni-muenchen.de/lehre/markupsemistrukt/01ss/unterlagen/markup-skript/markup-skript.zip ist eine relativ kompakte einführung in die technologien um XML erhältlich.