XPath 3.1 中地图的 purpose/use 是什么?

What is the purpose/use of a map in XPath 3.1?

我理解 XPath 3.1 中对数组类型的需求,因为它们是 JSON 的基础。是的,我知道您可以在 XPath 查询中创建文字 map()。

但是有没有一种方法可以构建 XML 或 JSON 查询自然地 return 对基础文​​档的 XPath 查询映射?或者它的存在仅仅是为了将结果转换为地图然后对其进行操作是有益的吗?

我见过的地图的主要用例可能是

(a) 捕获解析JSON输入的结果,当输入数据在JSON

(b)构造一个可以序列化为JSON的结构,当需要JSON输出时

(c) 为函数提供复杂的输入参数(如 fn:transform() 或 fn:serialize() 函数)

(d) 从函数中捕获多个结果或复合结果,例如计算序列的最小值和最大值的函数。如果当时可以使用映射,则可以使用它们比 in-scope-prefixes/namespace-uri-for-prefix 机制更优雅地获取元素的命名空间上下文。

(e) 条目为函数的映射可以像 OO 语言中的对象一样使用,以实现多态性——在缺少 XSLT 模板规则发送机制的 XQuery 中尤其有用。 fn:random-number-generator() 函数设计说明了这个想法。

(f) 映射可以充当复合值的简单结构,例如复数。 (如果可用,它可以用于 date/time/duration/QName,或者用于 catch 子句中可用的错误信息)

“有没有一种方法 [..] JSON 可以构造成查询自然 return 地图?”:JSON 中的任何东西都是“对象”。 =11=]

https://www.json.org/json-en.html: "An object is an unordered set of name/value pairs. An object begins with {left brace and ends with }right brace")

映射(双关语)到 XDM 映射。

所以在 JSON 中,数组和对象都是基本的,在 XDM 中,您可以将 JSON 数组表示为 XDM 数组,将 JSON 对象表示为 XDM 映射。