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.
- S. Balasubramaniam and Benjamin C. Pierce. What is a file synchronizer? In Fourth Annual ACM/IEEE International Conference on Mobile Computing and Networking (MobiCom '98) pages 98--108. Google ScholarDigital Library
- Sudarshan S. Chawathe and Hector Garcia-Molina. Meaningful change detection in structured data. In Proceedings of the 1997 ACM SIGMOD international conference on Management of data pages 26--37. ACM Press 1997. Google ScholarDigital Library
- Sudarshan S. Chawathe Anand Rajaraman Hector Garcia-Molina and Jennifer Widom. Change detection in hierarchically structured information. In ACM SIGMOD International Conference on Management of Data (SIGMOD) pages 493--504 1996. Google ScholarDigital Library
- S. Horwitz J. Prins and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems 11(3):345--387 1989. Google ScholarDigital Library
- Guibas L. J. and Sedgewick R. A dichromatic framework for balanced trees. In Proceedings of the 19th Annual IEEE Symposium on Foundations of Computer Science pages 8--21 October 1978.Google ScholarDigital Library
- Michael K. Johnson. Diff patch and friends. Linux Journal 1996(28es) August 1996. Google ScholarDigital Library
- R. la Fontaine. Merging XML files: a new approach providing intelligent merge of XML data sets. In Proceedings of XML Europe 2002 Barcelona Spain.Google Scholar
- G. W. Manger. A generic algorithm for merging SGML/XML-instances. In Proceedings of XML Europe 2001 Berlin Germany.Google Scholar
- Tom Mens. A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28(5):449--462 May 2002. Google ScholarDigital Library
- Eugene W. Myers. An O(ND) difference algorithm and its variations. Algorithmica 1(2):251--266 1986.Google ScholarCross Ref
- Sun Microsystems. OpenOffice.org XML File Format 1.0 December 2002. http://xml.openoffice.org/xml_specification.pdf.Google Scholar
- Asklund U. Identifying conflicts during structural merge. In Proceedings of the Nordic Workshop on Programming Environment Research '94 pages 231--242 Lund Sweden June 1994.Google Scholar
- W3C. Extensible Markup Language (XML) 1.0 3rd edition October 2000. http://www.w3.org/TR/REC-xml/.Google Scholar
- W3C. XHTML 1.0 Specification January 2000. http://www.w3.org/TR/xhtml1/.Google Scholar
- W3C. Scalable Vector Graphics (SVG) 1.1 Specification January 2003. http://www.w3.org/TR/SVG/.Google Scholar
- W3C. XML Information Set 2nd edition February 2004. http://www.w3.org/TR/xml-infoset/.Google Scholar
- Bernhard Westfechtel. Structure-oriented merging of revisions of software documents. In Proceedings of the 3rd International Workshop on Software Configuration. Google ScholarDigital Library
Index Terms
- A three-way merge for XML documents
Recommendations
Using versioned tree data structure, change detection and node identity for three-way XML merging
DocEng '10: Proceedings of the 10th ACM symposium on Document engineeringXML has become the standard document representation for many popular tools in various domains. When multiple authors collaborate to produce a document, they must be able to work in parallel and periodically merge their efforts into a single work. While ...
XML three-way merge as a reconciliation engine for mobile data
MobiDe '03: Proceedings of the 3rd ACM international workshop on Data engineering for wireless and mobile accessOptimistic replication approaches are often employed on mobile devices, which raises the need for reconciliation of concurrently modified data. We propose that three-way merging algorithms, in particular those that are able to process tree-structured ...
Efficient Revalidation of XML Documents
We study the problem of schema revalidation where XML data known to conform to one schema must be validated with respect to another schema. Such revalidation algorithms have applications in schema evolution, query processing, XML-based programming ...
Comments