RE: DN-FO-14: 15.2.1 fn:deep-equal

> DN-FO-14: 15.2.1 fn:deep-equal
> 
> The definition of this function is wrong:
> 
> "If either node has attributes, and if either node has an 
> attribute that is not deep-equal to an attribute of the other 
> node, using the selected collation, then the result is false."
> 
> According to this definition any two elements with two 
> attributes each ar not deep-equal.
> 
> 
> Suggested solution:
> 	Replace the above excerpt with:
> 
> 	"If either node has attributes, and if either node has 
> an attribute
>        that is not deep-equal to any attribute of the other 
> node, using
>        the selected collation, then the result is false."
> 
> Dimitre Novatchev.
>

Actually I think your reformulation suffers the same ambiguity as the
original: it's not clear whether it means "A has an attribute that is (not
deep-equal) to some attribute of B" or "A has an attribute that is not
(deep-equal to some attribute of B)".

I think we need to get pedantic:

"If either node has attributes, and if either node has an attribute A such
that the other node does not have an attribute that is deep-equal to A,
using the selected collation, then the result is false."

The initial "If either node has attributes, and" is of course redundant.

Michael Kay

Received on Tuesday, 24 June 2003 05:02:40 UTC