我有一个运行在SaxonHE 9.6.0-10上的xforms引擎,并且我的测试是绿色的。在过去的两个工作日内尝试迁移到最新版本9.9.1-5,但没有成功。
缩小问题范围的第一个问题来自9.7版,在该版本中我得到了类的编译错误:
net.sf.saxon.expr.Container
net.sf.saxon.functions.SystemFunctionCall这些类似乎在9.7中被移除了,但我不知道如何替换它们。
当切换到9.9.1-5时,这个类似乎也消失了:
net.sf.saxon.functions.StandardFunction尝试记录saxonica.com上的更改,但没有向我透露任何内容。
问题区域是一个FunctionLibrary,我需要提供所有特定于XForms的函数。该库的代码如下:XFormsFunctionLibrary.java
这里是超类:XPathFunctionLibrary.java
还有我这里的基函数类:XFormsFunction.java
任何有关如何替换这些类或重写这些类以符合最新版本的提示都非常感谢,因为我已经没有想法了-谢谢Joern
发布于 2019-12-07 07:37:21
显然,您已经深入研究了Saxon的内部结构,在这个层次上,每个版本的内容都会有所不同。
容器对象是Saxon内部表达式树实现的一部分,在一篇博客文章中讨论了在Saxon9.7中重新设计该对象的方式:http://dev.saxonica.com/blog/mike/2015/09/parent-pointers-in-the-saxon-expression-tree.html
由于XPath 3.0中数据模型的变化,Saxon中系统函数的表示也发生了变化,因此函数成为数据模型中的第一类值。同样,有一篇2015年的博客文章解释了这些变化的动机:http://dev.saxonica.com/blog/mike/2015/02/functions-function-calls-function-items.html
你的问题读起来像是一般的请求帮助,而不是具体的信息请求。这使得它非常不适合StackOverflow协议。在http://saxonica.plan.io的Saxonica论坛上提出这样的问题可能更好,它更适合于开放式讨论,而不是僵化的问答格式。话虽如此,您显然是通过深入研究Saxon代码并理解其工作原理来使代码正常工作的,而且您可能还需要再次执行相同的操作。希望我们所做的更改会使您的集成变得更容易,而不是更难。
https://stackoverflow.com/questions/59215938
复制相似问题