[xep-support] Re: Trying to use XSLT 2.0 in an XEP transformation

Alexey Gagarinov agagarinov at renderx.com
Tue Sep 3 19:49:18 PDT 2019


Hi Paul,
>
> I am executing a shell script which contains something like this…
>
> CP=$XEP_HOME/lib/xep.jar:$XEP_HOME/lib/saxon9.jar:$XEP_HOME/lib/xt.jar
>
> $JAVA_HOME/bin/java -Xms64M  -Xmx1096M -cp $CP com.renderx.xep.XSLDriver $*
>
> …the stylesheet I pass to the script contains some XSLT 2.0 stuff (a function call) and this is producing 
> an error of the form…
>
> The URI http://uri-for-function-namespace does not identify an external Java class
>
> …which means, I think, that saxon9 is not being used even though I set it in the classpath. (I confirmed 
> this by removing it from the classpath, and I get the same error.)
>
> I confirmed that $XEP_HOME/lib/saxon9.jarworks with a simple XSLT 2.0 transformation run with directly 
> with it.
>
> 1)Does my reasoning sound correct?
>
Yes

>
> 2)How would I get the transformation to use saxon9 if setting it on the classpath is not working?
>
Set the |javax.xml.transform.TransformerFactory| system property by adding the following key-value pair into 
the run script:

$JAVA_HOME/bin/java -Xms64M  -Xmx1096M -cp $CP 
-Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl com.renderx.xep.XSLDriver $*

It will force XEP to use Saxon 9 (if it exists as jar in the java classpath).

> 3)Any other things you’d suggest I look at to solve this?
>
There are other methods to load a concrete XSLT Transformer in Java. See, for example, 
https://stackoverflow.com/questions/29450535/what-is-the-default-transformerfactory for details.

>
> FYI, I don’t with Java much, so my lack of knowledge there may be playing into this.
>
> Thanks,
>
> Paul
>

Regards,

   Alexey Gagarinov

RenderX

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.renderx.com/pipermail/xep-support/attachments/20190904/13d84b21/attachment.html>


More information about the Xep-support mailing list