xsl-list
[Top] [All Lists]

Re: Testing 2 XML documents for equality - a solution

2005-03-31 21:14:17
On Mar 31, 2005 10:25 PM, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:

Whenever one defines "equality", this means a symmetric, reflexive and
transitive relation on the set of X^2 of pairs of values from a set X.

Which reminds me (thank you) that the definition of deep-equal() in F+O
still has a bug, in that it is not transitive. Specifically, it states that
two elements are equal if (among other things)

<quote>
One of the following conditions holds:

   * Both element nodes have a type annotation that is either a simple type
or a complex type with simple content, and the typed value of $i1 is
deep-equal to the typed value of $i2.
   * One or both of the element nodes has a type annotation that is neither
a simple type nor a complex type with simple content, and the sequence
$i1/(*|text()) is deep-equal to the sequence $i2/(*|text()).
</quote>

This means that if you have three elements:

1.  <e>1.0</e>    of type xs:decimal

2.  <e>1</e>      of type xs:integer

3.  <e>1</e>      of type xs:anyType

Then 1=2, 2=3, and 1!=3.

Perhaps the fact that we still haven't got this function right will convince
people finally to ditch it from the spec.

This is like saying that for the following three objects:

1. Red cube

2. Red pyramid

3. Green pyramid


the following "equalities" (defined as "has the same shape or has the
same colour") are true:

  1 = 2, 2 = 3, and 1 != 3

This is due to the fact that the superposition of two equivalence
relations results in a set of subsets, which are not mutually
exclusive (have intersection) in general.


Yes, such "equality" is not too useful and in fact is misleading.


Cheers,
Dimitre Novatchev.


 It should also help to convince
Mukul that he's taken on a more difficult problem than he realised.

Michael Kay
http://www.saxonica.com/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>