xsl-list
[Top] [All Lists]

Re: Comparing two XML documents

2005-01-14 08:52:12
Hi David

Thanks. That was very useful.

Well yeah I didnt include the entire chunks of code. But I've checked the File 1 in XMLSpy for well-formedness and it didnt complain. So that shouldnt be an issue. There is quite a bit of XML that has no logical equivalence in the other file but thats because they come from different sources which try to model the same concept. I assume there could be some sort of Rules which could also be established for parsing the two files.

But you've given me a good pointer to start off my task with. Any other comments or suggestions would be most appreciated.

Cheers
Rahil

David Carlisle wrote:

It should be relatively easy to turn each of these into some normalised
form using xslt such that you can then just run diff or some other text
file differencing tool.

I can't suggest the exact XSLT that you need as your excerpts didn't
show enough of the structure.
your xml file 1 isn't well formed (multiple top level elements) I assume
there is a surrounding element that you didn't show?
and you said

 I have two XML documents which are logically equivalent

but there are several elements for which the equivalence isn't obvious,
eg what corresponds to <level>16</level> in your 2nd format?

howver running

<xsl:template match="code[(_at_)type='relationship constraint']">
relationship constraint: <xsl:value-of select="normalize-space(.)"/>
</xsl:template>

<xsl:template match="IMPLIES">
relationship constraint: [<xsl:text/>
<xsl:for-each select="CONCEPT">
  <xsl:value-of select="@name"/>
  <xsl:if test="postition()!=last()">, </xsl:if>
</xsl:for-each>
<xsl:text>]</xsl:text>
</xsl:template>

will turn

<code type="relationship constraint">[MildSeverity,ModerateSeverity,SevereSeverity]
                                       </code>

and

   <IMPLIES>
           <CONCEPT name="MildSeverity" ref="10238"/>
           <CONCEPT name="ModerateSeverity" ref="10239"/>
           <CONCEPT name="SevereSeverity" ref="10240"/>
       </IMPLIES>

both into



relationship constraint: [MildSeverity,ModerateSeverity,SevereSeverity]

which should allow for easy comparison.

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



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