This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
One of the principles behind the design of fn:deep-equal() was that a node should always be deep-equal to itself (that's why we defined NaN = NaN, for example). But as currently written, the rule for comparing namespace nodes (or "bindings") requires (node-name($i1) eq node-name($i2)), which will not be true for an unnamed namespace node (the default namespace), because node-name() returns () for such a node, and (() eq ()) is (). This doesn't affect XQuery 1.0 because namespace nodes are inaccessible, but it does affect XPath and XSLT.
Also, the current rule causes the string-value of namespace nodes to be compared using a collation - which isn't technically a bug, but it's certainly a poor design choice.
Accepted in principle that we should make both these changes; MK to draft detailed text for review.
Erratum E42 has been drafted to fix this problem. The bug will not be marked as fixed until the WG has reviewed and approved the proposed text.
The proposed erratum E42 was accepted by the joint WGs on 3 feb 2009