XSLT-Prozessor
Ein XSLT-Prozessor ist eine Software zum Umwandeln von Dokumenten mittels eines XSLT-Stylesheets. Das Ergebnis ist ein neues Dokument, das (z. B. als DOM-Objekt) direkt weiterverarbeitet oder in eine Datei ausgegeben werden kann.
Der XSLT-Prozessor liest das Eingabedokument sowie das Stylesheet ein und parst sie. Beginnend mit dem Wurzelelement des Dokumentes prüft der XSLT-Prozessor dann, welches Template (Regel) des Stylesheets angewandt wird. Das so gefundene Template bestimmt, was in die Ausgabe geschrieben wird. In vielen Fällen ist das der Inhalt des aktuellen Knotens (XSLT-Terminus: des Kontextknotens) oder ein algorithmisch berechnetes Ergebnis auf dessen Basis. Außerdem bestimmt das Template, welche Dokumententeile als Nächstes bearbeitet werden: etwa die Kinder des Kontextknotens, andere Teile des Eingabedokumentes oder auch externe Dokumente. Neben den im Stylesheet explizit formulierten Regeln kommen auch vordefinierte Regeln (wie Kopiere jeden Text oder Bearbeite jedes Kind-Element) zur Anwendung, wenn kein passendes Template gefunden wird.
Die Ausgabe des XSLT-Prozessors ist zunächst ein Objektmodell des Ausgabedokumentes. Über eine Programmierschnittstelle (API) kann dieses Objekt direkt weiterverarbeitet werden. Die meisten XSLT-Prozessoren beherrschen auch die Ausgabe in eine oder mehrere Dateien (Serialisierung).
XSLT-Prozessoren unterscheiden sich zunächst in den unterstützten XSLT- und XPath-Versionen (1.0 und/oder 2.0). Für XSLT 2.0 definiert der XSLT-Standard zudem die Unterscheidung in Basis-XSLT-Prozessor (vollständige Unterstützung des XSLT-2.0-Standards) und Schema-sensitiver XSLT-Prozessor (englisch »schema aware«: zusätzliche Berücksichtigung von Informationen aus XML Schemata bei der Verarbeitung)[1]. Weit verbreitet ist der standardkonforme, stabile und dank Java plattformunabhängige Saxon-Prozessor. Viele moderne Web-Browser wie Internet Explorer, Mozilla Firefox und Opera haben integrierte XSLT-1.0-Prozessoren, so dass sie direkt XML-Dokumente XSLT-formatiert anzeigen können.
XSLT-Prozessoren (Auswahl)
Name | XSLT 1.0 | XSLT 2.0 | XSLT 3.0 | schema aware | Plattform | API |
---|---|---|---|---|---|---|
AltovaXML | x | x | x | Microsoft Windows | COM, Java, .NET[2] | |
libxslt/xsltproc | x | Unix/Linux, Windows, OS X | C[3], C++, Java, Perl, PHP, Python, REXX, Ruby, Tcl[4] | |||
MSXML | x | Microsoft Windows | u. a. .NET, Visual Basic Script | |||
Saxon-EE 9.x | x | x | x | x | plattformunabhängig (Java) | Java, .NET[5] |
Saxon-PE 9.x | x | x | x | plattformunabhängig (Java) | Java, .NET | |
Saxon-HE 9.x | x | x | x | plattformunabhängig (Java) | Java, .NET | |
Saxon 6.5.5 | x | plattformunabhängig (Java) | Java, .NET | |||
WebSphere Application Server Feature Pack for XML | x | x | x | Unix/Linux, Windows u. a. | Java[6] | |
Xalan-C++ | x | Unix/Linux, Windows u. a. | C++ | |||
Xalan-J | x | plattformunabhängig (Java) | Java | |||
XmlPrime | x | x | x | x | Microsoft Windows | .NET[7] |
Siehe auch
Weblinks
- data2type: XSLT-Prozessoren für XSLT 2.0. 2014 (data2type.de [abgerufen am 30. September 2014]).
- Daniel Brügge: XSLT Prozessoren. München 2003 (XSLT Prozessoren (Memento vom 17. Oktober 2011 im Internet Archive) [PDF; abgerufen am 16. Januar 2016]).
- Thomas Bayer: XSLT Prozessoren im Überblick. Oktober 2002 (oio.de [abgerufen am 10. Mai 2009]).
- Michael Kay: Saxon: Anatomy of an XSLT processor. What is current state of the art in XSLT optimization? 20. April 2005 (amerikanisches Englisch, ibm.com [abgerufen am 9. August 2009]).
- Mukul Gandhi: Schema-aware processing with XSLT 2.0. Reap the benefits of designing your XSLT stylesheets to be schema-aware. 15. Mai 2008 (amerikanisches Englisch, ibm.com [abgerufen am 14. August 2009]).
Einzelnachweise
- W3C-Standard XSL Transformations (XSLT) Version 2.0. 21 Conformance
- http://www.altova.com/altovaxml.html, abgerufen am 11. Juli 2010
- http://xmlsoft.org/XSLT/, abgerufen am 11. Januar 2011
- http://xmlsoft.org/XSLT/python.html
- www.saxonica.com/feature-matrix.html (Memento vom 19. Juni 2010 im Internet Archive), abgerufen am 11. Juli 2010
- http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.xmlfep.multiplatform.doc/info/ae/ae/cins_xml_overview.html, abgerufen am 20. Februar 2011