我想用 JavaScript 调用 XQuery 函数来从 XML 文件中检索数据。我可以调用这个不从任何文件中读取任何内容的简单函数:
<script type="text/javascript"
src="mxqueryjs/mxqueryjs.nocache.js"
></script>
<script type="application/xquery">
module namespace m = "http://www.xqib.org/module";
declare function m:GetNearestLocations($node as node()+) {
let $message := "Hello XQuery!"
return $message
};
</script>
使用此 JavaScript:
var output = xqib.call(
'http://www.xqib.org/module',
'GetNearestLocations',
center.lat());
返回输出如预期的那样“Hello XQuery!”。
现在我想导入一个数学模块,以便在从 XML 文件读取数据时使用它的一些函数。
这是我所拥有的,但数学模块未导入并导致 XQST0059 错误,指出没有信息位置可以加载具有命名空间“ http://www.w3.org/2005/xpath-functions/math ”的模块:
<script type="text/javascript"
src="mxqueryjs/mxqueryjs.nocache.js"
></script>
<script type="application/xquery">
module namespace m = "http://www.xqib.org/module";
import module namespace math
= "http://www.w3.org/2005/xpath-functions/math";
declare function m:GetNearestLocations($node as node()+) {
let $message := "Hello XQuery!"
return $message
};
</script>
奇怪的是,当我使用 Stylus Studio X15 Entreprise Suite 测试导入工作的相同功能时。
重要提示:我在导入或不导入 Math 模块时使用相同的 JavaScript 调用,所以也许我的问题来自那里,但我不知道如何解决这个问题。
如果您还可以指导我一些关于我可以将什么设置为 m:GetNearestLocations 的参数以便我可以将它传递给整数或字符串
非常感谢。