Re: [xsl] () eq () vs () = ()

Subject: Re: [xsl] () eq () vs () = ()
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Sat, 01 Oct 2011 22:02:11 +0100
On 01/10/2011 17:01, Andrew Welch wrote:
deep-equal(A, B) means (count(A) eq count(B) and every $i in 1 to count(A)
satisfies A[$i] eq B[$i]). Therefore deep-equal((), ()) is true.
Is it fair to say deep-equal could mean:

every $i in 1 to max((count(A), count(B))) satisfies A[$i] eq B[$i]

which would then return false, as its only the length check that is
causing it to return true (and thats only there to avoid also checking
every item in B is equal to A)


That works for atomic values (with the exception of NaN) but not for nodes (my mistake in my last post!). Using XQuery notation:

<a>3</a> eq <b>3</b> is true

deep-equal(<a>3</a>, <b>3</b>) is false

Michael Kay
Saxonica

Current Thread