xsl-list
[Top] [All Lists]

RE: A difference in node builds

2003-09-08 07:28:18
It seems to me to be very likely that the two nodes differ in the
whitespace that they contain. Without seeing more detail, that's all I
can really say.

I'm not an enthusiast for deep-equal(). I think people have too many
different notions of what equality actually means. "Equal modulo
whitespace text nodes" is another example of such a notion.

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Vorndran, Charles P
Sent: 08 September 2003 12:36
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: [xsl] A difference in node builds


I am having some difficulties using deep-equal() in Saxon 
7.6.5 and the problem doesn't seem to be in the function.  
Instead, the problem seems to be in the nodes that are being 
compared and how those nodes are built.

To verify that deep-equal() works, I created an xsl test 
environment that creates two nodes from two xml files on the 
file system, using the
document() function.  I then compared these nodes with 
deep-equal().  When one file is actually a copy of the other, 
deep-equal() returns a true on the comparison.  When I modify 
one of the input files structurally, deep-equal() returns a 
false.  So, I'm satisfied that deep-equal() works, at least 
for what I want.

The problem is, in the real application I create a node, 
NODE1, with data extracted from a larger xml input file, and 
compare NODE1 to NODE2 which is imported from a file (FILE1) 
using document().  FILE1 was built from a previous run of the 
same stylesheet, essentially being derived from a node that 
is now represented by and should have been identical to 
NODE1.  Even though I know that nothing has changed between 
runs, deep-equal() indicates that the new NODE1 and the 
imported NODE2 are not the same.  Yet the files created from 
the two nodes, using xsl:result-document and the same output 
format, are identical according to diff.

Another reason why I suspect a node difference is that when I 
change the output format to text (using xsl:output 
method="text"), the text characters are the same but the 
spacing, linefeeds and tabbing are drastically different.  
Yeah, I know, whitespace differences shouldn't come into play 
here but it does seem to cloud things up a bit.

So, I guess it's back "How do I inspect a node that is in 
memory?" unless someone can give me some other suggestions as 
to what's happening.

Thanks

Chuck Vorndran

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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