使用url在eXist db中调用自定义xquery函数
如何使用RESTAPI在exist db中调用自定义xquery函数? xquery文件中是否可以有多个函数使用url在eXist db中调用自定义xquery函数,xquery,exist-db,Xquery,Exist Db,如何使用RESTAPI在exist db中调用自定义xquery函数? xquery文件中是否可以有多个函数 declare function local:toto() as node() { return doc("/db/ProjetXML/alice.xml")/raweb/identification/projectName) }; declare function local:pomme() as node() { return doc("/db/ProjetXML/
declare function local:toto() as node() {
return doc("/db/ProjetXML/alice.xml")/raweb/identification/projectName)
};
declare function local:pomme() as node() {
return doc("/db/ProjetXML/carmen.xml")/raweb/identification/projectSize);
};
如果我用以下方式来称呼它:
http://localhost:8080/exist/rest/db/ProjetXML/orange.xqy?_query=local:toto()
我得到以下错误:
err:XPST0017 Call to undeclared function: local:toto [at line 1, column 1, source: local:toto()]
非常感谢您的帮助。您的XQuery中有语法错误:
local:toto()
的函数。每个函数必须有一个不同的名称}
应该是}代码>
return
表达式,因为前面没有绑定import module namespace request="http://exist-db.org/xquery/request";
declare function local:toto($name as xs:string) as node() {
let $doc :=
if($name eq "carmen")then
doc("/db/ProjetXML/carmen.xml")
else
doc("/db/ProjetXML/alice.xml")
return
$doc/raweb/identification/projectName);
};
local:toto(request:get-parameter("name", "alice"))
然后,您可以使用如下URL通过REST服务器调用此函数:
http://localhost:8080/exist/rest/db/ProjetXML/orange.xqy?name=carmen
您好,我已经修复了问题中的语法错误,但真正的问题是使用url调用给定的xquery函数。我只是修改了我的答案以显示如何通过REST调用它