问题
I am using Apache FOP 1.1.I want to change current apache Xalan XSLT processor to other for supporting XSLT 2.0. Currently it is not supporting XSLT 2.0. Please help me how to solve this problem. thank you.
回答1:
I got my Answer. TransformerFactory has a plug-ability layer. JAXP provides a common Java interface that allows flexibilty to add various implementations of the supported standards XSLT processors.
TransformerFactory tFactory = TransformerFactory.newInstance();
This had look-up procedure to locate XSLT processors.AS we does not defined any,it will take available or default.
Now, I am adding SAXON XSLT processor . I have added it's .jar file in my project and just added
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);
That's it. now it will use Saxon XSLT processor
回答2:
Another more flexible way is to start your application with a VM parameter like this -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
which determines which Factory implementation to create (i.e. default XSLT processor).
This way, you don't have to change a single line of your code itself.
This is fine, if you embed FOP in your code (as you apparently did). If you want to run FOP as standalone distribution from command line, however, you can
copy the required jar files with the XSLT processor (like e.g. Saxon.jar) to the
lib
directory of your distribution ($LOCAL_FOP_HOME/lib
on Linux,%LOCAL_FOP_HOME%lib
on Windows)and add the paramater to the start script (
fop
on Linux,fop.bat
on Windows) at the line whereorg.apache.fop.cli.Main
is called.
来源:https://stackoverflow.com/questions/19379070/how-to-change-apache-fop-xalan-xslt-processor