小编Ste*_*son的帖子

XQuery函数库组织

通常当我在XSLT中工作时,我创建一个主要由导入组成的主文件.我保持每个导入文件都很小,以便我更容易维护.

我正在尝试在XQuery(在MarkLogic中)做同样的事情,但我无法按照我希望的方式工作.

这是我希望能够做到的:

main.xqy:

xquery version "1.0-ml";
module namespace summit = "http://example.com/summit";
import module "http://example.com/summit" at "/ext/variables.xqy";
import module "http://example.com/summit" at "/ext/utils.xqy";
Run Code Online (Sandbox Code Playgroud)

variables.xqy:

xquery version "1.0-ml";
module namespace summit = "http://example.com/summit";
declare variable $BASEURL as xs:string  := "https://example.com/v1";
Run Code Online (Sandbox Code Playgroud)

utils.xqy:

xquery version "1.0-ml";
module namespace summit = "http://example.com/summit";
declare function summit:baseUrl() {
    let $url := $BASEURL
    return $url
};
Run Code Online (Sandbox Code Playgroud)

然后使用以下代码在查询控制台中调用它:

xquery version "1.0-ml";
import module namespace summit = "http://example.com/summit" at "/ext/main.xqy";
summit:baseUrl()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[1.0-ml] XDMP-UNDVAR: (err:XPST0008) Undefined variable $BASEURL
Stack Trace …
Run Code Online (Sandbox Code Playgroud)

xquery marklogic

3
推荐指数
2
解决办法
55
查看次数

标签 统计

marklogic ×1

xquery ×1