Thanks Greet and David. 
       By change in the sequence I meant any change in the sequence of
siblings alone should be ignored. So if
<a>
        <b>val1</b>
      <b>val2</b>
</a>

Is represented as
<a>
        <b>val2</b>
      <b>val1</b>
</a>

I would not like to see 2 deletes and 2 inserts. I think that's what you
meant by (I would want to know if Doc 1 is "A,B" and doc2 is "B,A" ).
I feel even if it marks the above as a different we can still build
something on top of it (maybe in java) so as to ignore the 2 deletes and
2 inserts.
I shall dig into the XSLT algorithm and try to find on how to convert it
to an XQuery.

I am curious to know if someone built document compare functionality
while uploading, updated version of XMLs in mark logic. Have most of
them opted for java to do this?

Thanks again.
Abishek

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Geert
Josten
Sent: Wednesday, May 05, 2010 2:53 AM
To: General Mark Logic Developer Discussion
Subject: Re: [MarkLogic Dev General] XML diff (Andrew_Redhead)

> For example you quote "Any change in the sequence is to be ignored."
> That is definitely something that I wouldnt consider "right"
> for a general purpose tool ( I would want to know  if  Doc 1
> is "A,B" and doc2 is "B,A" ).
> And is that 2 modifications or 2 deletes and 2 inserts?

If the tool would optimize right, it would detect one 'move' (which is 1
delete + 1 insert of something identical). But it takes a lot of brute
force to optimize all such identified changes.

> I've used various XML Diffs in various tools and libraries
> and was never quite happy with any of them.
>
> But OTOH, having a public domain algorithm implemented in
> pure XQuery would be *awesome*.

I guess pretty much every XML Editor has it's own XML Diff feature
somewhere. The Arbortext Editor had one that could be used separately
from commandline, which worked well enough for our purposes. It was
called aptdiff, not sure it is still available..

There is also a more straight-forward algorithm that I used for doing
deep-equals in XSLT 1. It should be fairly easy to convert it to XQuery.
It is not a very smart algorithm, so A,B versus B,A would be seen as a
diff between first child and the second child. You can find it here:
http://xsltunit.org/xsltunit.xsl

Kind regards,
Geert


drs. G.P.H. (Geert) Josten
Consultant


Daidalos BV
Hoekeindsehof 1-4
2665 JZ Bleiswijk

T +31 (0)10 850 1200
F +31 (0)10 850 1199

mailto:[email protected]
http://www.daidalos.nl/

KvK 27164984

P Please consider the environment before printing this mail.
De informatie - verzonden in of met dit e-mailbericht - is afkomstig van
Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u
dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te
verwijderen. Aan dit bericht kunnen geen rechten worden ontleend.

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to