1

我们正在运行 eXist-db 3.0 版并想尝试在其中运行 XProc。

我们发现 XProcxq 模块现在是 eXist 的一部分:http ://exist-db.org/exist/apps/doc/extensions.xml#module_xprocxq

然而,在尝试使用它时,我们得到了下面的错误,并想知道是否有人对我们可能出错的地方提出建议?

正如链接到的模块页面顶部所指定的,我们将模块添加到 conf.xml 文件并重新启动 eXist。(这可能是我们出错的地方,但这是我们的猜测)

这是我们添加的模块在 conf.xml 中的样子:

<module uri="http://xproc.net/xproc" class="org.exist.xquery.modules.xprocxq.XProcxq/>

这是我尝试使用的简单启动 XQuery:

xquery version "1.0" encoding "UTF-8";

import module namespace const = "http://xproc.net/xproc/const";
import module namespace xproc = "http://xproc.net/xproc";
import module namespace u = "http://xproc.net/xproc/util";

declare variable $local:XPROCXQ_EXAMPLES := "/db/examples"; (:CHANGE ME:)  

let $stdin :=document{<test>Hello World</test>}

let $pipeline :=document{
                    <p:pipeline name="pipeline"
                                xmlns:p="http://www.w3.org/ns/xproc"
                                xmlns:c="http://www.w3.org/ns/xproc-step">
                        <p:identity/>
                    </p:pipeline>
                }

return
     xproc:run($pipeline,$stdin)

这是错误: 加载模块 xproc 时发现错误:从“ http://xproc.net/xproc ”加载模块“ http://xproc.net/xproc ”时出现 IO 异常

4

3 回答 3

3

我向exist-open 邮件列表提出了您的问题(我鼓励您加入其中以解决未来的eXist-db 问题),并且eXist 中的XProc 支持目前似乎处于困境和困难之间。您提到的 xprocxq 库严重欠发达(被其原始创建者放弃),并且开发更好的 Calabash 模块与 eXist 中使用的当前版本的 Saxon 不兼容,因为它依赖于该版本的 Saxon。欢迎您加入exist-open进一步讨论。也许您还有其他解决方法。

于 2015-09-30T20:10:55.047 回答
3

它需要重建。

根据http://exist-db.org/exist/apps/wiki/blogs/eXist/eXist30RC1

EXPath packages that incorporate Java libraries may no longer work with eXist 3.0 and may need to be recompiled for our API changes; packages should now explicitly specify the eXist versions that they are compatible with.

我正在更新 XProc EXPath 模块。

于 2015-09-30T22:09:06.897 回答
3

eXist 的 XMLCalabash 模块现在已针对更新版本的 eXist 和 Calabash 进行了重建,并且应该可以与 eXist 3.0.RC1 一起使用。

要为 eXist 3.0.RC1 构建您自己的 Jar 包,请运行:

$ git clone https://github.com/eXist-db/eXist-XMLCalabash.git
$ cd eXist-XMLCalabash
$ rm -rf src/test
$ mvn package

然后 Jar 在target/文件夹中。您应该复制它以$EXIST_HOME/lib/user修改$EXIST_HOME/conf.xml以加载模块,然后重新启动 eXist。

更新

eXist 的 XML Calabash 模块现在也有一个 PR,以便支持即将推出的 eXist 3.0.RC2 - https://github.com/eXist-db/eXist-XMLCalabash/pull/2

但是,在 eXist 3.0.RC2 发布之前,您无法远程构建它。

于 2015-10-19T17:40:18.940 回答