在XQuery中创建一个地图

时间:2015-11-30 17:50:24

标签: xml xquery saxon xquery-3.0

我正在尝试在xquery中创建一个类似于结构的哈希映射/键值对。我知道xquery中存在类似结构的地图:http://www.w3.org/2005/xpath-functions/map/

甚至在Saxon中找到了文档:http://www.saxonica.com/html/documentation/functions/map/

但我不确定如何创建地图或使用它。

到目前为止,这是我的代码:

declare namespace map="http://www.w3.org/2005/xpath-functions/map";
let $a := map:map()

但是我收到了一个错误:

Cannot find a matching 1-argument function named
  {http://www.w3.org/2005/xpath-functions/map}map()

那么我究竟如何在xquery中使用地图?

1 个答案:

答案 0 :(得分:2)

语法在XSLT 3.0和XQuery 3.1中,并且随着工作草案的发展而经历了几次迭代。当前语法(在Saxon 9.7中支持)允许

map{}

表示空地图

map{'a':1, 'b':2}

对于具有已知条目数的映射(键和值都可以是任意表达式),并且

map:merge(for $x in //emp return map{$x!name : $x!@salary})

表示具有静态未知条目数的地图。