撒克逊人的s9api XdmValues如何进行平等比较?

问题描述 投票:0回答:1

s9api.XdmValues似乎不支持明显的比较方法 - 没有equals()hashCode()

这是因为直接比较XDM序列对于实现原因没有意义(某些序列可能是惰性的和不确定的大小),或者因为假设如果你想比较两个序列,你实际上应该只是逐项比较内容项目? Java相等与XPath的fn:deep-equal()中的相等性测试之间有区别吗?

java xml saxon
1个回答
1
投票

各种XML规范为比较相等性提供了相当多的方法选择;例如,XSD有两个独立的概念(“相等”和“身份”),XPath对eq运算符,distinct-values()以及比较地图中的键有不同的定义。这仅仅是为了比较原子价值;对于节点,它变得更糟。在XPath中有deep-equal()使用的定义,在XPath中有“is”运算符,并且在XML规范化下存在相等性。 saxon:deep-equal()进一步扩展了这一点,可以选择说明(例如)空格文本节点,名称空间前缀和注释在比较时是否显着。

大多数这些选项都是通过某种机制从Java API中获得的,但首先你必须决定你想要哪一个。

© www.soinside.com 2019 - 2024. All rights reserved.