Christian Seiler: Von XSLT 2.0 zu XSLT 1.0

Beitrag lesen

Hallo Simon,

Meine Frage ist nun was die Änderungen von 1.0 zu 2.0 sind und was ich beachten muss wenn ich mein Stylesheet von 2.0 zu 1.0 übersetzten will.

XSLT 1.0 kann *SEHR VIEL* weniger als XSLT 2.0. Darunter fallen:

- XPath 1.0 und kein XPath 2.0 - da sind etliche Features nicht dabei.
 - XSLT/XPath 1.0 kann keine Sequenzen (xsl:sequence in XSLT, (1, 2, 3) in
   XPath)
 - Keine eigenen XPath-Funktionen (xsl:function)
 - Keine XPath-Ausdrücke auf temporären XML-Bäume anwendbar
   (<xsl:variable name="foo"><bar x="y" /></xsl:variable> und dann
   <xsl:value-of select="$foo/bar/@x" /> - geht in 2.0, nicht in 1.0)
 - Keine multiplen Output-Dateien etc. (d.h. kein xsl:result-document)
 - Fallback-Verhalten bei Uninterpretierten Extension-Anweisungen ist
   anders
 - Keine Tunnel-Parameter (<xsl:param/with-param tunnel="yes">)
 - bestimmt noch sehr viel mehr, was mir gerade nicht einfällt...

Oder gibt es doch einen XSLT-Processor in C++ der XSLT 2.0 unterstüzt?

Der einzige mir bekannte Opensource-XSLT-Prozessor, der XSLT 2.0 kann, ist Saxon. Den gibt's für Java und .NET. .NET kann man auch mit C++ nutzen (allerdings halt nicht nativ, sondern immre nur als in CIL übersetzte Programme).

Ferner hat Trolltech (äh, ja, Nokia inzwischen) angekündigt, dass die zukünftigte Version von Qt (ist in C++ geschrieben, und GPL) XSLT 2.0 unterstützen soll - in 4.5 partiell und in 4.6 dann vollständig. Ich schätze mal, dass Qt 4.6 in ein bis zwei Jahren fertig sein wird, 4.5 in ein paar Monaten, kann mich da aber auch täuschen, ich kenne die genaue Roadmap nicht. Wollte nur erwähnen, dass das am Horizont ist.

Viele Grüße,
Christian