xsl-list
[Top] [All Lists]

Re: Testing 2 XML documents for equality - a solution

2005-03-30 08:55:06

I don't think the stylesheet really works.
For example for attribute nodes you just concatenate the names and
values so even if you could be sure that the order of attribute nodes
was preserved (you can't be sure of this) then
x="2" and x2="" would be considered equal.


Also your ignore white space test ignores far to much:

<xsl:for-each
select="$doc1//node()[not(normalize-space(self::text())
= '')]">
            <xsl:value-of select="name()"
/><xsl:value-of select="." />

consider the 2 document fragments

<x>
 <a/>
</x>


<y>
 <b/>
</y>

in the first document the nodes x and a and both the text nodes all
satisfy
normalize-space(self::text())= ''
so the for-each will be empty.
Similarly in the second fragment.

so presumably these documents will compare equal, which seems strange.

Conversely you can not be sure that
<x a="2" b="3"/> will compare equal to
<x a="2" b="3"/>
as teh attribute may be reported in one order for doc1 and teh other
order for doc2.

David


________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--