在 XQuery 中创建地图

Creating a map in XQuery

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

甚至在撒克逊语中找到了文档: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 中使用地图?

语法在 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})

对于具有静态未知条目数的地图。