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] ======================================================================




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to