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