我对XQuery比较陌生。但是,我对我的问题进行了大量的研究,并且不明白我做错了什么。这是我的代码:
(: XQuery main module :)
xquery version "3.0" encoding "utf-8";
import schema namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
import module namespace http = "http://expath.org/ns/http-client";
import module namespace rand = "http://www.zorba-xquery.com/modules/random";
declare variable $URL as xs:string := ();
declare variable $AF_Tok as xs:integer := rand:seeded-random-between(23 (:This is the seed, needs to be randomized too, will fix later.:),
0 (:This is the lower bound for every number in the sequence.:),
9 (:This is the higher bound for every number in the sequence.:),
32 (:This is the number of random numbers in the returned sequence:)
);
declare variable $Client_ID as xs:string := ("XXXXX");
declare variable $Client_Secret as xs:string := ("XXXXX");
<test>
<random_number>{$AF_Tok}</random_number>
</test>
我在eXist和Sausalito Tools for Eclipse中都遇到了同样的错误。任何人都可以测试一下,让我知道你是否也得到错误?我很难过,任何帮助都会受到赞赏。
:6,1:静态错误[错误:XQST0059]:“http://www.zorba-xquery.com/modules/random”:找不到架构/模块的目标命名空间http://www.zorba-xquery.com/modules/random
我认为这可能是一个zorba问题,但我也为w3和expath命名空间得到了同样的错误。
更新:我使用的是Mac OS X 10.8 btw
答案 0 :(得分:0)
您不能简单地将Zorba模块与eXist一起使用。我也不认为eXist支持HTTP客户端EXPath模块。请查看处理器(eXist或Sausalito)的文档,并仅使用它们支持的模块。如果它们是内置的,那么使用简单的import module namespace
就足够了,但是,如果要包含通用模块,还必须在某个与处理器相关的目录中提供模块源。
对于eXist,请查看http://exist-db.org/exist/apps/doc/extensions.xml以了解如何包含模块。 eXist也有随机函数,但它们都是在数学模块中构建的。