我目前正在尝试将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
还有其他人经历过这个吗?
答案 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版本。