s9api.XdmValue似乎不支持明显的比较方法-没有equals()或hashCode()。
这是因为直接比较XDM序列由于实现原因没有意义(有些序列可能是惰性的并且大小不确定),还是因为假设如果您想要比较两个序列,实际上应该逐项比较内容?Java相等性和XPath的fn:deep-equal()中的相等性测试之间有区别吗?
发布于 2019-04-01 00:58:58
各种XML规范为比较相等提供了相当多的方法选择;例如,XSD有两个独立的概念(“相等”和“标识”),而XPath对eq运算符、distinct-values()和比较映射中的键有不同的定义。这只是用于比较原子值;对于节点,情况会变得更糟。在XPath中有deep-equal()使用的定义,在XPath中有"is“运算符,在规范化下有相等。saxon:deep- extends ()进一步扩展了这一点,它提供了一些选项来说明(例如)比较时是否认为空格文本节点、名称空间前缀和注释有意义。
这些选项中的大多数都可以通过某种机制从Java API中获得,但首先您必须决定您想要哪一个。
https://stackoverflow.com/questions/55440549
复制相似问题