我想尝试撒克逊地图功能(http://www.saxonica.com/documentation/expressions/xpath30maps.xml),但我无法获得查询编译。也许我缺少一些参数,或者我使用错误的命名空间,但我找不到正确的答案。这是我的查询代码:XQuery 3.0和撒克逊地图
xquery version "3.0";
(: i have also tried http://www.w3.org/2005/xpath-functions/map, no difference :)
import module namespace map = "http://ns.saxonica.com/map";
map:get(map { 1 := 'aaa'}, 1)
从命令行调用:
"c:\Program Files\Saxonica\SaxonEE9.4N\bin\Query.exe" -s:play.xml -q:play2.xq" -qversion:3.0
的命令与错误结束的命名空间无法找到模块“http://ns.saxonica.com/map” 当我遗漏了模块名称空间映射声明,错误是前缀映射尚未声明,所以我认为它必须是。
我看到的地图功能在撒克逊9.4只实现。你是否证实你使用的撒克逊版本确实是9.4? – 2012-01-28 16:43:56
如果你确实有Saxon 9.4,那么看看这个代码示例:http://www.saxonica.com/documentation/extensions/map.xml。虽然它是XSLT,但您可以轻松将其转换为等效的XQuery代码。 – 2012-01-28 16:47:51