开发者

Apache FOP from Java with XSLT 2.0…?

I'm having problems using some of the features of XSLT 2.0 in an embedded use of Apache FOP 1.0. In particular I get an exception when using "current-group()".

I see that FOP is using xalan 2.6 which is throwing the exception.

I tried to exclude the tran开发者_运维百科sitive dependency of xalan 2.6 and replaced it with 2.7.1 but it didn't help. Is it possible to use Apache FOP with another XSLT processor that supports more 2.0 features?


If you run FOP as standalone distribution from command line, you can

  1. copy the required jar file(s) with the XSLT processor (like e.g. saxon9he.jar) to the lib directory of your FOP distribution.

  2. and specify the processor implementation to be used by FOP by adding a VM parameter like this -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl (example for Saxon) to the start script (fop on Linux, fop.bat on Windows) at the line where org.apache.fop.cli.Main is called.

If you embed FOP in your Java code, simply start your application with that VM parameter (and make sure the required jar files are in your CLASSPATH).


If you need 2.0 features in XSLT, XPath... try another XSLT processor/engine different from provided by JDK or Xalan, like Saxon. Has a free version and a commercial one if you want to be schema-aware. We use with Apache-FOP in order to generate PDFs from XML data and works fine and you get some new feature in 2.0 like date and number formatting. Just use saxon9.jar and specify the XSLT engine used (saxon).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜