Conference Paper
Varieties of XML Merge: Concurrent versus Sequential
Merging XML documents is a particularly tricky operation but is often required to consolidate or synchronise two or more independent edit paths or versions. As XML tools become more powerful, the possibility of achieving an intelligent merge of XML data sets become reality.
The complexity of merge
The complexity of XML places demands on tools to work intelligently in order to preserve the essential structure of the original document and also represent the changes. This paper discusses the different varieties of merge for XML.
Merging multiple derivatives of a single ancestor (concurrent merge) may be the most obvious application, but there is also a need for a sequential merge when a document has been passed around between two or more authors in a sequential manner. Another important, and perhaps less well understood, application is ‘graft’, where the changes between two documents or data sets are applied to a third, different (though similar) document or data set.
There are of course similarities between these applications, but gaining an understanding of how they differ and where each is appropriate is necessary to make best use of automated processing of XML.
Download this conference paper to:
- Review the different types of XML merging.
- Understand the different applications for each merge type and when each type of is most appropriate.
- Review how XML merging is configured to find, represent and merge change.
- Be introduced to the application of grafting when merging change.
“Concurrent merge recombines multiple XML files with their common ancestor, analysing their structure and running custom rules to either merge or explicitly mark-up the differences.”
Related Media

Conference Paper
Branch and Merge: A content manager’s dream, or a tech writer’s nightmare?
Branch and merge is great for software, but with structured documents, it often means frustrating manual work like cutting and pasting. Can structured XML merge make this process seamless again?

Conference Paper
Merge and Graft: Two Twins That Need To Grow Apart
Developers know merge as combining changes from one branch into another. Graft is more selective, applying changes from specific commits to another branch. Though similar in implementation, the two processes have key differences that require attention.

Product Discussion
Understanding Two and Three Way Merge
It’s common to have data in two files that we need to merge together, two different people or two different processes have made changes. Does it matter who or what has made this change? This question might help to decide whether you need a 2-way or 3-way merge.

