Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1030397.1030399acmconferencesArticle/Chapter ViewAbstractPublication PagesdocengConference Proceedingsconference-collections
Article

A three-way merge for XML documents

Published: 28 October 2004 Publication History

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.

References

[1]
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.
[2]
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.
[3]
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.
[4]
S. Horwitz J. Prins and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems 11(3):345--387 1989.
[5]
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.
[6]
Michael K. Johnson. Diff patch and friends. Linux Journal 1996(28es) August 1996.
[7]
R. la Fontaine. Merging XML files: a new approach providing intelligent merge of XML data sets. In Proceedings of XML Europe 2002 Barcelona Spain.
[8]
G. W. Manger. A generic algorithm for merging SGML/XML-instances. In Proceedings of XML Europe 2001 Berlin Germany.
[9]
Tom Mens. A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28(5):449--462 May 2002.
[10]
Eugene W. Myers. An O(ND) difference algorithm and its variations. Algorithmica 1(2):251--266 1986.
[11]
Sun Microsystems. OpenOffice.org XML File Format 1.0 December 2002. http://xml.openoffice.org/xml_specification.pdf.
[12]
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.
[13]
W3C. Extensible Markup Language (XML) 1.0 3rd edition October 2000. http://www.w3.org/TR/REC-xml/.
[14]
W3C. XHTML 1.0 Specification January 2000. http://www.w3.org/TR/xhtml1/.
[15]
W3C. Scalable Vector Graphics (SVG) 1.1 Specification January 2003. http://www.w3.org/TR/SVG/.
[16]
W3C. XML Information Set 2nd edition February 2004. http://www.w3.org/TR/xml-infoset/.
[17]
Bernhard Westfechtel. Structure-oriented merging of revisions of software documents. In Proceedings of the 3rd International Workshop on Software Configuration.

Cited By

View all
  • (2024)Evaluation of Version Control Merge ToolsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695075(831-83)Online publication date: 27-Oct-2024
  • (2023)Spork: Structured Merge for Java With Formatting PreservationIEEE Transactions on Software Engineering10.1109/TSE.2022.314376649:1(64-83)Online publication date: 1-Jan-2023
  • (2021)Textual merge based on language-specific syntactic separatorsProceedings of the XXXV Brazilian Symposium on Software Engineering10.1145/3474624.3474646(243-252)Online publication date: 27-Sep-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
DocEng '04: Proceedings of the 2004 ACM symposium on Document engineering
October 2004
252 pages
ISBN:1581139381
DOI:10.1145/1030397
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 October 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. XML
  2. collaborative editing
  3. conflict
  4. structured text
  5. three-way merge

Qualifiers

  • Article

Conference

DocEng04
Sponsor:
DocEng04: ACM Symposium on Document Engineering
October 28 - 30, 2004
Wisconsin, Milwaukee, USA

Acceptance Rates

Overall Acceptance Rate 194 of 564 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Evaluation of Version Control Merge ToolsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695075(831-83)Online publication date: 27-Oct-2024
  • (2023)Spork: Structured Merge for Java With Formatting PreservationIEEE Transactions on Software Engineering10.1109/TSE.2022.314376649:1(64-83)Online publication date: 1-Jan-2023
  • (2021)Textual merge based on language-specific syntactic separatorsProceedings of the XXXV Brazilian Symposium on Software Engineering10.1145/3474624.3474646(243-252)Online publication date: 27-Sep-2021
  • (2021)A Novel Three-Way Merge Algorithm for HTML/XML Documents Using a Hidden Markov ModelIntelligent Computing10.1007/978-3-030-80119-9_3(75-101)Online publication date: 13-Jul-2021
  • (2020)A Top-Down Three-Way Merge Algorithm for HTML/XML DocumentsIntelligent Computing10.1007/978-3-030-52249-0_6(75-96)Online publication date: 4-Jul-2020
  • (2019)Detecting nondeterministic payment bugs in Ethereum smart contractsProceedings of the ACM on Programming Languages10.1145/33606153:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • (2019)Effective lock handling in stateless model checkingProceedings of the ACM on Programming Languages10.1145/33605993:OOPSLA(1-26)Online publication date: 10-Oct-2019
  • (2019)IntelliMerge: a refactoring-aware software merging techniqueProceedings of the ACM on Programming Languages10.1145/33605963:OOPSLA(1-28)Online publication date: 10-Oct-2019
  • (2019)Staged abstract interpreters: fast and modular whole-program analysis via meta-programmingProceedings of the ACM on Programming Languages10.1145/33605523:OOPSLA(1-32)Online publication date: 10-Oct-2019
  • (2019)Complete monitors for gradual typesProceedings of the ACM on Programming Languages10.1145/33605483:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media