Hi,
I was using an XSLT 2 stylesheet to transform xqdoc XML to Markdown. I already had a stylesheet that did the same with HTML. This stylesheet is XSLT 2 and uses Saxon HE which is located inside the BaseX lib directory. Saxon HE is picked up just fine with xslt:transform and xslt:transform-text. I used this as basis for the conversion to markdown.
Then I added an xsl:function called i:code-block and suddenly got this error message:
[bxerr:BXSL0001] ERROR: 'The first argument to the non-static Java function 'codeBlock' is not a valid object reference.' FATAL ERROR: 'Could not compile stylesheet'
Ok, so I changed it to a named template called code-block then I got an error about the string-join used inside. So I re-wrote to not use this xpath function.
[bxerr:BXSL0001] ERROR: 'Invalid conversion from 'com.sun.org.apache.xalan.internal.xsltc.dom.AdaptiveResultTreeImpl' to 'node-set'.'
So something is causing a fallback to Xalan XSLT 1 processor but I cannot undersand why. However, if I remove all functions and named templates this same stylesheet is compiled and executed fine using Saxon again!!??
If necessary I can add some more code.
--Marc
Hmm, removing all functions and named templates didn't help either. Something is causing that my HTML conversion stylesheet is using Saxon whereas the other stylesheet insists on using Xalan.
Here's another error I got when I added a function and called it.
[bxerr:BXSL0001] ERROR: 'Cannot find class '1.0'.' FATAL ERROR: 'Could not compile stylesheet'
On Sun, Nov 23, 2014 at 10:40 PM, Marc van Grootel marc.van.grootel@gmail.com wrote:
Hi,
I was using an XSLT 2 stylesheet to transform xqdoc XML to Markdown. I already had a stylesheet that did the same with HTML. This stylesheet is XSLT 2 and uses Saxon HE which is located inside the BaseX lib directory. Saxon HE is picked up just fine with xslt:transform and xslt:transform-text. I used this as basis for the conversion to markdown.
Then I added an xsl:function called i:code-block and suddenly got this error message:
[bxerr:BXSL0001] ERROR: 'The first argument to the non-static Java function 'codeBlock' is not a valid object reference.' FATAL ERROR: 'Could not compile stylesheet'
Ok, so I changed it to a named template called code-block then I got an error about the string-join used inside. So I re-wrote to not use this xpath function.
[bxerr:BXSL0001] ERROR: 'Invalid conversion from 'com.sun.org.apache.xalan.internal.xsltc.dom.AdaptiveResultTreeImpl' to 'node-set'.'
So something is causing a fallback to Xalan XSLT 1 processor but I cannot undersand why. However, if I remove all functions and named templates this same stylesheet is compiled and executed fine using Saxon again!!??
If necessary I can add some more code.
--Marc
Stop the press .....
No, really. I probably have to stop now. I was switching BaseX versions and used a version where I didn't add Saxon yet. The HTMl stylesheet I used didn't use any XSLT 2 features.
Face palm. Sorry for wasting your time ....
Can I get Google to forget this ;-)
--Marc
basex-talk@mailman.uni-konstanz.de