在更新到oXygen 17.1之后从命令行调用XQuery Update



在过去的一年中,我们一直在运行我编写的批处理脚本,使用Saxon从Windows命令行调用一系列XQuery更新。它在我们使用oXygen 16时工作得很好,但是在我们部门的所有机器都升级到oXygen 17.1之后,脚本现在抛出了一个我似乎无法修复的错误。如有任何意见,不胜感激。

这在安装oXygen 16时是可以工作的:

java -cp "C:Program FilesOxygen XML Editor 16libsaxon9ee.jar" net.sf.saxon.Query -update:on -t -q:"C:Users%USERNAME%DocumentsSVN Working CopiestrunkrbscXSLLocations2015AbID2dsc-items.xq"

我已经确认.jar文件位于相同的相对位置(对路径的唯一更改是oXygen版本号),并且具有与以前相同的名称。然而,在将类路径更新为"C:Program FilesOxygen XML Editor 17libsaxon9ee.jar"之后;脚本抛出以下错误:

Saxon-EE 9.6.0.7J from Saxonica

Java版本1.8.0_92

. lang。UnsupportedOperationException:在这个Saxon配置中不支持XQuery Update

net.sf.saxon.s9api.XQueryCompiler.setUpdatingEnabled (XQueryCompiler.java: 212)

net.sf.saxon.Query.doQuery (Query.java: 281)

net.sf.saxon.Query.main (Query.java: 111)

查询时的致命错误:java.lang.UnsupportedOperationException: XQuery Update is not supported in this Saxon Configuration

文件名、目录名或卷标语法错误。

我的机器上安装了Java 8。我还确保从oXygen编辑器中调用XQuery Update时仍然可以工作。

阅读http://www.saxonica.com/documentation9.6/index.html#!使用-xquery/命令行和http://www.saxonica.com/documentation9.6/index.html#!一致性/更新,我添加了-tree:链接标志和-qversion:1.0标志(它们导致相同的错误消息):

java -cp "C:Program FilesOxygen XML Editor 17libsaxon9ee.jar" net.sf.saxon.Query -qversion:1.0 -tree:linked -update:on -t -q:"C:Users%USERNAME%DocumentsSVN Working CopiestrunkrbscXSLLocations2015AbID2dsc-items.xq"

根据文档,如果设置了-update:on标志,并且使用doc()或collection()函数读取XML,则XQuery Update应该运行,这也是情况——这些是我的XQuery文件中的变量:

declare variable $EAD as document-node()* := doc("sample_input.xml");
declare variable $ITEMS as document-node()* := doc("sample_input.AbID.xml");

我不知道还能尝试什么。如果有人能看到这里出了什么问题,我将非常感谢任何指示!

您是否有自己的Saxon-EE许可证,还是依赖于oXygen附带的许可证?oXygen许可证不包括在oXygen本身之外对Saxon- ee的使用(因此它不包括您从命令行运行Saxon的方式)。也许您发现了oXygen处理Saxon激活方式的漏洞,该漏洞在早期版本中有效,但后来在oXygen或Saxon中得到了修复。

相关内容

  • 没有找到相关文章

最新更新