eXist-db中的XProcxq模块出错

时间:2015-09-28 21:09:44

标签: exist-db xproc

我们正在运行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时发现错误:加载模块时出现IO异常&#39; http://xproc.net/xproc&#39;来自&#39; http://xproc.net/xproc&#39;

3 个答案:

答案 0 :(得分:3)

我向存在开放的邮件列表提出了问题(我鼓励你加入未来的eXist-db问题),it appears eXist的XProc支持目前介于摇滚和硬盘之间。您提到的xprocxq库非常不发达(被其原始创建者抛弃),而且更好的开发Calabash模块与eXist中使用的当前版本的Saxon不兼容,因为它依赖于该版本的Saxon。我欢迎你join exist-open进一步讨论。也许还有其他一些解决方法。

答案 1 :(得分:3)

需要重建。

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

geom_bar()

我正在研究XProc EXPath模块的更新。

答案 2 :(得分:2)

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发布之前,您无法远程构建它。