在 XQuery 中,
("foo", "bar") = ("foo", "bar")
产生值
true
。这似乎很明显。但我注意到("foo", "bar") != ("foo", "bar")
也 产生
true
,我发现这相当令人惊讶。我知道我可以用 =
否定 not($x = $y)
并且我注意到 =
有某种集合交集语义,但是谁能解释 !=
的语义,和/或提供引用? 最佳答案
这可以在“3.5.2 一般比较”部分下的 documentation for XQuery 中找到。
阅读推理,它对我来说就像 rules of Atomization 应该归咎于此。如果元素是 untypedAtomic,那么解析器可以自由地“猜测”应该如何进行比较,这允许基于元素本身而不是任何运算符行为的操作差异。
关于operators - = 和 != 的语义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9196310/