A Three-way Merge for XML Documents;
Proc. 2004 ACM Symp. on Document
engineering (DocEng'04), October 28-30, 2004,
Milwaukee, Wisconsin, USA ;
ACM Digital Library
Abstract: Three-way merging is a technique that
may be employed for reintegrating changes to a
document in cases where multiple independently
modified copies have been made. While tools for
three-way merge of ASCII text files exist in the
form of the ubiquitous diff and patch tools, these
are of limited applicability to XML documents.
We present a method for three-way merging of XML
which is targeted at merging XML formats that model
human-authored documents as ordered trees (e.g.
rich text formats, structured text, drawings,
etc.). To this end, we investigate a number of use
cases on XML merging (collaborative editing,
propagating changes across document variants), from
which we derive a set of high-level merge rules.
Our merge is based on these rules.
We propose that our merge is easy to both
understand and implement, yet sufficiently
expressive to handle several important cases of
merging on document structure that are beyond the
capabilities of traditional text-based tools. In
order to justify these claims, we applied our
merging method to the merging tasks contained in
the use cases. The overall performance of the merge
was found to be satisfactory.
The key contributions of this work are: a set of
merge rules derived from use cases on XML merging,
a compact and versatile XML merge in accordance
with these rules, and a classification of conflicts
in the context of that merge.