XSLT
Inhaltsverzeichnis |
Autoren
- Gino Napierala (s3ginapi@stud.hs-zigr.de)
- Martin Kubasch (s3makuba@stud.hs-zigr.de)
Einleitung
XSLT(Extensible Stylesheet Language Transformation) gehört zur Familie der XSL-Sprachen . Es wurde Entwickelt zur Transformation von XML-Quelldokumenten in andere Dokumenttypen wie beispielsweiße XML, HTML oder einfache Textdokumente.
Grundlegende Merkmale und Aufbau von XSLT- Dokumenten
XSLT Prozessoren und XSL Stylesheets
Aufbau und Funktionsweise von XSLT Prozessoren
Zur Formatierung eines XML-Dokuments, mittels eines XSL-Stylesheets, wird ein XSLT-Prozessor benötigt. Bei diesem Vorgang werden die Template-Regeln (innerhalb des Stylesheets) auf das Eingabedokument angewendet um so ein neues Ausgabedokument zu erzeugen. Für die Transformation benötigt der XSLT Prozessor sowohl ein XML Dokument als auch ein Stylesheet Dokument welche als Dateien eingelesen werden, aber nicht direkt in dieser Form weiterbearbeitet werden. Erst durch die Umwandlung der Dokumente in Baumrepräsentationen mit hilfe einen XML Parsers ( DOM oder eigener Datenstruktur) ist der XSLT Prozessor in der Lage weiterzuarbeiten. Als Ausgabe wird ein Ergebnisbaum (resulttree) erzeugt . Durch die darauf folgende serialisierung kann das gewünschte Textdokument(XML, HTML, Plaintext, XSL-FO Designstruktur, etc.) erzeugt werden.
XSLT Prozessoren
XSLT Prozessoren haben viele Anwedungsmöglichkeiten, dabei wirde es wohl am häufigsten in Webbrowsern genutzt. Ein Grund dafür ist die starke Verbreitung des Microsoft Internet Explorers welcher einen integrieten XSLT Prozessor besitzt. Aber auch in der Entwicklung eigener Programme werden sehr häufig vorhandene XSLT Prozessoren genutzt. Auf drei dieser Prozessoren ( SAXON , Xalan , MSXML ) soll hier genauer eingegangen werden.
Xalan
Bei dem XSLT-Prozessor von Xalan handelt es sich um einen Open Source-Prozessor der im Rahmen des Apache XML Projektes3 entstanden ist. Dieser implimentiert sowohl die XPath 1.0 als auch die XSLT 1.0 Spezifikation des W3C vollständig. Da jedoch die dritte Spezifikation ( XSL Formatting Objects) nicht enthalten ist , muss in diesen fällen auf andere Prozessoren zurückgegriffen werden. Xalan wird unterschieden zwischen den Versionen Java- (Xalan-J) und C++- (Xalan-C++)und nutzt für diese Versionen den XML Parser Xerces4.
Seit
. Xalan kann seit der Version 2.5 auf zwei unterschiedliche Art und Weisen verwendet werden: erstens als ganz normaler interpretierender XSLT Prozessor (Xalan Interpretive Processor) oder zweitens als Prozessor, der mit vorkompilierten Stylesheets arbeitet (Xalan Compiled Processor). Das letztere ist neu als Funktionalität zum Prozessor hinzugekommen, nachdem Sun seinen eigenen XSLT Prozessor XSLTC dem Apache Project zur Verfügung gestellt hat. Beide Arten von Prozessoren arbeiten intern mit einer eigenen Baumrepräsentation – dem Document Table Model DTM. DTM wurde extra auf die XSLT und XPath Implementierungen zugeschnitten und ist dadurch effizienter in der Verarbeitung als beispielsweise das allgemeine Document Object Model DOM. Ein Hauptunterschied zwischen DOM und DTM liegt darin, dass das DTM Modell ein read-only Model ist, im Gegensatz zu DOM, bei dem man die Möglichkeit hat, Knoten neu zu erzeugen, oder Daten in das Modell zu schreiben Der Xalan Compiled Processor XSLTC ist eine weitere Besonderheit der neuen Xalan Versionen [Sun-02]. Er bietet die komfortable Möglichkeit, XSL Stylesheets in Java Bytecode zu kompilieren (Translets) und diese Translets auf XML Dokumente anzuwenden. Der Vorteil ist klar ersichtlich: es ist nun möglich, nur einmal ein XSL Stylesheet zu verarbeiten und dann mehrfach auf XML Dokumente anzuwenden. Je mehr XML Dokumente mit dem gleichen Stylesheet formatiert werden sollen, desto mehr lohnt sich die Anwendung von XSLTC. Die Kompilierung eines Stylesheets kann auch auf Kommandozeilenebene erfolgen und man nutzt danach nur noch das fertige Translet in seiner Applikation. Das folgende Beispiel
SAXON
MSXML

