使用Intellij和Saxon调试XSLT - 不支持的Transformer

时间:2016-09-29 11:22:56

标签: xslt intellij-idea saxon

我目前正在尝试将xml文件转换为完全不同的格式,使用IntelliJ Community Edition + Saxon编写和调试样式表。 我已经将Saxon-HE 9.7.0-5作为最顶层的模块依赖。 使用XSLT-Runner运行样式表工作得很好,但是当我尝试调试它时,我遇到了一些错误。

当我指定没有VM参数时,我得到:

java.lang.UnsupportedOperationException: Unsupported Transformer: net.sf.saxon.jaxp.TransformerImpl
at org.intellij.plugins.xsltDebugger.rt.engine.local.LocalDebugger.prepareTransformer(LocalDebugger.java:98)
at org.intellij.plugins.xsltDebugger.rt.engine.local.LocalDebugger.<init>(LocalDebugger.java:51)
at org.intellij.plugins.xsltDebugger.rt.engine.remote.DebuggerServer$1.<init>(DebuggerServer.java:55)
at org.intellij.plugins.xsltDebugger.rt.engine.remote.DebuggerServer.<init>(DebuggerServer.java:55)
at org.intellij.plugins.xsltDebugger.rt.engine.remote.DebuggerServer.create(DebuggerServer.java:71)
at org.intellij.plugins.xsltDebugger.rt.XSLTDebuggerMain.start(XSLTDebuggerMain.java:53)
at org.intellij.plugins.xslt.run.rt.XSLTRunner.main(XSLTRunner.java:143)

当我指定VM-Arguments

-Dxslt.transformer.type =撒克逊

按照建议here,我收到以下错误:

javax.xml.transform.TransformerException: The URI http://www.w3.org/2005/xpath-functions does not identify an external Java class

还有其他人经历过这个吗?

1 个答案:

答案 0 :(得分:2)

IntelliJ IDEA支持Saxon 9调试到Saxon 9.3.0.11。

截至Saxon 9.4.0.0,net.sf.saxon.lib.TraceListener界面引入了制动变化net.sf.saxon.lib.TraceListener#open() =&gt; net.sf.saxon.lib.TraceListener#open(Controller)从未被JetBrains改编过。

由于难以获得9.3的Maven工件,您可能需要从SF手动获取它。

https://sourceforge.net/projects/saxon/files/Saxon-HE/9.3/

关于堆栈跟踪;它有一个不同的故事,但最终导致回到9.3。

截至今天,9.3似乎是最新版本,适用于当前的IntelliJ 2017.1.2版本。