Re: XML differencing anyone?

Christopher R Newman <[email protected]>
Newsgroups gmane.text.xml.general
Message-ID <[email protected]>
Oops, forgot to add my list of XML differencing apps:
##### Perl modules #####
XML::SemanticDiff:  http://search.cpan.org/dist/XML-SemanticDiff/
+ open source license
+ provides a list of changes as a Perl data structure and it's up to you 
to output them how you like.  If you don't like something about it, you 
can write
a class similiar to XML::SemanticDiff::BasicHandler to change things.
- order of elements is ignored
- In mixed content, all text nodes treated as a single value.
- Leading/trailing whitespace always stripped, even in mixed content.
- Whitespace always normalized, even in text nodes.

XML::Diff:  http://search.cpan.org/dist/XML-Diff/
+ open source license
- Only compares elements, attrs, and text nodes

XML::DifferenceMarkup:  http://search.cpan.org/dist/XML-DifferenceMarkup/
+ open source license
- produces more of a maximal delta

xmldiff.pl/xmlpp.pl:  http://software.decisionsoft.com/tools.html
+ open source license
? no delta output
???

diffmk:
- can't find.  also ported to Java

##### Python #####
xmldiff:  http://www.logilab.org/projects/xmldiff/
+ open source license
? limited to internal memory
? errors due to coalescing text nodes
+ XUpdate output

##### Java-based #####
Microsoft xmldiff:  http://apps.gotdotnet.com/xmltools/xmldiff/
- commercial license = ???
+ compact and logical XML diff output

IBM/Alphaworks diff&merge tool:  
http://www.alphaworks.ibm.com/tech/xmldiffmerge
- commercial license = $1000+
- no delta output

IBM/Alphaworks xml treediff:  http://alphaworks.ibm.com/tech/xmltreediff
- commercial license?
+ FUL or XUL output

diffxml:  http://diffxml.sourceforge.net/
+ open source license
- being reworked
- a little verbose

diffmk:  http://nwalsh.com/java/diffmk/
+ open source license
? no delta output
? must write config file per DTD

VM Tools:  http://www.vmsystems.net/vmtools/
+ open source license
- no provision for dealing with small differences in *huge* CDATA sections
? reportedly bad output

3DM:  http://www.cs.hut.fi/~ctl/3dm/
+ open source license
- maximal delta
+ 3-way merge capability

XOperator:  http://www.living-pages.de/de/projects/xop/
- commercial license

Versim Differencing Toolkit:  http://www.versim.com/products_overview.htm
- commercial license = $500+

##### Unknown/other #####
Delta XML:  http://www.deltaxml.com/
- commercial license = $5000+
+ output delta or tagged input
+ minimal delta

VERSO XyDiff:  http://pauillac.inria.fr/cdrom/www/xydiff/index-eng.htm
+ open source license
- non-optimal delta
+ uses Apache Xerces C++ parser
+ fast algorithm

linear time treediff:  http://www.cs.ucl.ac.uk/staff/c.nentwich/treediff/
+ open source license
- non-optimal delta
+ fast linear time diff

##### Not useful #####
Dommitt diff&merge tool:  http://www.dommitt.com/
- commercial license?
- no delta output
- unordered XML differencing

X-diff:  http://www.cs.wisc.edu/~yuanwang/xdiff.html
- unordered XML differencing

XMLUnit:  http://xmlunit.sourceforge.net/
- unuseable output (plain English)

##### End #####

Comments?  Let me know!

Chris

Christopher R Newman wrote:

> So are you trying to do the XML differencing on an Apache server like 
> I am?
>
> Well, I've been running in circles looking at this stuff so I started 
> a list of all the XML differencing apps that I've come across.  I 
> tried to list each app with a URL, a license type, and 
> positives/negatives about it.  '?' means I'm not quite sure.  If 
> anyone has any additions or corrections, I'd be glad to hear it!
>
> Chris
>
> [email protected] wrote:
>
>> Christopher,
>>
>> It was weird synchronicity seeing this topic come up. I had just 
>> started looking at XML diff software and found the usual
>> suspects: the IBM one (xmldiff), the SourceForge one (diffxml),
>> a Python module (xmldiff) and the Microsoft one (xmldiffpatch).
>>
>> My interest is in exposing changes in web services by providing
>> a diff of the WSDL.
>>
>> I haven't gotten very far down the road. what I've learned:
>>
>> - naive diff is no good because hierarchical data can take many
>>   equivalent forms
>> - There is no standard diff format, so those who implement
>>   it also usually write their own patch.
>> - There are visual diffs, but I haven't gotten any of them
>>   to work.
>> - The diff applications differ in complexity; the most complex
>>   will compare node names to attributes, etc., in trying
>>   to make a match. And to make this work, the app generally
>>   builds a DOM ... which limits the size of the documents
>>   it can compare.
>>
>> I don't know if that's helpful or not ...
>>
>> Here are links to the xml diffs I found:
>>
>> IBM: http://www.alphaworks.ibm.com/tech/xmldiffmerge
>> SourceForge: http://diffxml.sourceforge.net/downloads.html
>> Python: http://www.logilab.org/projects/xmldiff/
>> Microsoft: http://apps.gotdotnet.com/xmltools/xmldiff/
>>
>> --                                                             --
>> Ken Kress
>> Information Technology
>> Lockwood®
>> 10 Valley Stream Parkway
>> Malvern, PA 19355
>> Phone: (484) 605-4834
>> Fax: (484) 595-5700
>> Email: [email protected]
>>
>>  
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

-- 
======================================================================
Chris Newman       Alcatel USA          Work:(919)850-5586
Software Engineer  2301 Sugar Bush Rd.  Fax:(919)850-6160
Test Automation    Raleigh, NC 27601    [email protected]
======================================================================
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.