- The 3DM tool is a tool for performing 3-way merging and differencing of XML files. Unlike line-based tools, such as diff and diff3, 3DM is aware of the structure of the processed XML documents. 3DM is not limited to update/insert/delete operations, it also handles moves and copies of entire subtrees. 3DM is not reliant on edit histories; the only input needed are the XML files. The tool was implemented as a part of my master thesis (2.0M pdf, updated 26/12/2001, 3.9M .ps.gz, updated 26/12/20011) ,
- I have re-written my DiffMk application in Java. This version should be more accessible (if installing a Java environment is easier for you than installing Perl) and faster. It is definitely better in terms of features.
Note, however, that it employs a different implementation of the mapping from XML to arrays and back for purposes of using the underlying diff code, so it does not, and cannot, produce exactly the same results as the Perl version.
This is a really beta. You have been warned. You will probably have trouble, but if you shout for help, I will do my best.
- The standard Unix tools diff and patch are used to find the differences between text files and to apply the differences. These tools operate on a line by line basis using well-studied methods for computing the longest common subsequence (LCS).
Using these tools on hierarchically structured data (XML etc) leads to sub-optimal results, as they are incapable of recognizing the tree-based structure of these files.
OpenSHORE XML Merger
- OpenSHORE XML Merger (XMLM) is an open source tool to insert XML tags from differnt sources into one or more text files. The Java program reads a very simple file format (*.xmlm files) with one XML command per line. Such a line has the format:
XMLM sorts these commands, removes duplicates, ensures correct tag structure and generate XML files from listed files.
- VM Tools is the beginning of a collection of XML-oriented tools for the java platform. The toolkit is developed by VM Systems, Inc. and is available under an open source license.
This release of the toolkit contains tools for automatically generating differences between two XML documents and may be of particular interest to members of the OpenTravel Alliance (OTA) who have developed XML standards using a document difference representation.
- X-Diff is a tool for detecting the difference between two XML documents. It was originally developed in the Niagara Query Engine.
Unlike other xml diff tools, X-Diff uses an unordered model (only ancestor relationships are significant) to compute difference between two XML documents, which we believe is more suitable for most database applications. Using an unordered model, change detection is substantially harder than using the ordered model, but the change result is more accurate.
- XMLUnit for Java provides two JUnit extension classes, XMLAssert and XMLTestCase, and a set of supporting classes (e.g. Diff, DetailedDiff,Transform,SimpleXpathEngine,Validator,NodeTest) that allow assertions to be made about:
The differences between two pieces of XML
The outcome of transforming a piece of XML using XSLT
The evaluation of an XPath expression on a piece of XML
The validity of a piece of XML
Individual nodes in a piece of XML that are exposed by DOM Traversal
XMLUnit for Java can also treat HTML content (even badly-formed HTML) as valid XML to allow these assertions to be made about the content of web pages too.