在ColdFusion中切换不同的XSLT处理器

19

我正在使用两个不同版本的ColdFusion,ColdFusion 9ColdFusion 10,它们都有不同的XSLT处理器

ColdFusion 9使用Apache Xalan,而ColdFusion 10使用Saxon

那么,有可能更改XSLT处理器吗?

或者

我们能否使用javax.xml.transform.TransformerFactory类切换到不同的处理器?


10
我想你自己回答了这个问题。我在ColdFusion 10的发布说明中找到了参考资料,可以使用-Djavax.xml.transform.TransformerFactory=来指定要使用的解析器。它在发布说明页面上的已知问题编号3167776下。它提到了在与WebLogic一起使用,但我不知道为什么它不能适用于其他平台。 - Miguel-F
1
我认为Miguel的回答应该是一个答案。但是警告任何发现这个问题的人:在Java 1.8下,ColdFusion 10附带的Saxon 9已经损坏。使用Saxon 9.5可以解决此问题。 - andrew lorien
1个回答

1
你可以通过设置以下属性来交换(也适用于ColdFusion)XSLT处理器的实现:
javax.xml.transform.TransformerFactory=qualified.name.of.TransformerFactoryImpl

... 例如通过 (-D) JVM 参数。

TransformerFactory Javadoc:

... 确定要创建哪个工厂实现的系统属性名为 javax.xml.transform.TransformerFactory。此属性命名了 TransformerFactory 抽象类的具体子类。If未定义属性,则使用平台默认值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接