Hallo,
ich möchte mit Hilfe eines XSLT 2.0 Scripts XML Dateien konvertieren.
Auf meiner Soche nach einem brauchbaren xslt Prozessor in Debian bin
ich bisher nur auf welche für XSLT 1.0 gestoßen. Z.B. xsltproc sagt
gleich
$ xsltproc script.xslt example.xml compilation error: file script.xslt
line 2 element stylesheet
xsl:version: only 1.0 features are supported
xmlXPathCompOpEval: function compare not found
XPath error : Unregistered function
xmlXPathCompiledEval: 3 objects left on the stack.
Mein nächster Versuch mit sabcmd aus sablotron:
$ sabcmd script.xslt example.xml Error [code:9]
[URI:file:///.../script.xslt] [line:38] [node:element '<xsl:attribute>']
unexpected attribute 'select'
scheitert sicher auch, weil das Attribut nicht zum XSLT 1.0 Sprachumfang
gehört (für mich ist das auch Neuland).
Ähnlich ergeht es mir mit xalan:
$ cat example.xml | xalan -xsl script.xslt
XSLException Type is: XPathParserException
Message is: The function 'compare' was not found.
expression = '0 = compare( $sYesResponse, $sVaccinationResponse )'
Remaining tokens are: ( 'compare' '(' '$' 'sYesResponse' ',' '$'
'sVaccinationResponse' ')') (script.xslt, line 143, column 75)
woraus ich ebenfalls schließe, daß hier ein XSLT 2.0 Feature das Problem
bereitet. (Laut Webseite kann xalan auch nur XSLT 1.0.)
Dann gibt es noch Saxon in Debian und zwar in Version 6.5.5. Wenn man
auf die Webseite
http://saxon.sourceforge.net/
geht, steht dort explizit, daß diese Version nur XSLT 1.0 unterstützt und
Version 9.0, daß auch XSLT 2.0 kann, scheint noch nicht für Debian
paketiert
zu sein - wenn ich die Seite http://www.saxonica.com/ richtig verstanden
habe, weil es nicht mehr frei ist.
Ein weiterer unfreier Kandidat für mein vorhaben scheint
http://www.oxygenxml.com/ zu sein - wenigstens ist das für Linux auch
verfügbar im Gegensatz zu AltovaXML (was meine Kollegen benutzt haben,
um das fragliche Skript zu erstellen).
Hat jemand noch eine Idee, womit ich weiterkommen könnte?