Re: [xsl] xalan and replace "regex"

Subject: Re: [xsl] xalan and replace "regex"
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Thu, 27 Dec 2007 15:29:22 +0100
Mansour wrote:
Ok, look, I have a somewhat big docbook files. I have been using xalan to process them. I have just tried with saxon9 and the processing failed with this message:

Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
Exception in thread "main" java.lang.NoClassDefFoundError: com/icl/saxon/pattern/NodeTest
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.privateGetPublicMethods(Class.java:2547)
at java.lang.Class.getMethods(Class.java:1410)
at net.sf.saxon.functions.JavaExtensionLibrary.bind(JavaExtensionLibrary.java:301)


at net.sf.saxon.functions.FunctionLibraryList.bind(FunctionLibraryList.java:83)

at net.sf.saxon.expr.ExpressionParser.parseFunctionCall(ExpressionParser.java:1840)

at net.sf.saxon.expr.ExpressionParser.parseBasicStep(ExpressionParser.java:1324)

How, do I need to re-write everything to use saxon so I can hl my code or just stick to what I have?

No. You can use (most of) your XSLT 1.0 code with an XSLT 2.0 processor. This error seems to imply that your classpath is not correctly configured and has nothing to do with the XSLT files itself. Try to run it from the commandline instead (java -jar saxon9.jar) and see if you still have that error.


The first line is a warning, not an error. You can ignore it. Or you can change the version attribute to 2.0 in your main xsl:stylesheet. If some of your code uses XSLT 1.0 specific features that have changed towards XSLT 2.0, you can switch on XSLT 1.0 backward compatibility mode by setting version or xsl:version of that specific instruction to "1.0".

Cheers,
-- Abel Braaksma

Current Thread