XSLT-Prozessor
# 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). 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 |
| libxslt/xsltproc | x | | | | Unix/Linux, Windows, OS X | C, C++, Java, Perl, PHP, Python, REXX, Ruby, Tcl |
| MSXML | x | | | | Microsoft Windows | u. a. .NET, Visual Basic Script |
| Saxon-EE 9.x | x | x | x | x | plattformunabhängig (Java) | Java, .NET |
| 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 |
| Xalan-C++ | x | | | | Unix/Linux, Windows u. a. | C++ |
| Xalan-J | x | | | | plattformunabhängig (Java) | Java |
| XmlPrime | x | x | x | x | Microsoft Windows | .NET |
