XML as a meta-language has emerged as the lingua franca of the internet. It is applied to define the formats of databases, and documents. It is also used as exchange format for a large number of applications. This wide applicability is both a blessing and a curse: Most related tools are tailored to a particular use case, which means that they can deal only with special dialects. In this paper, we will focus on a document-centric view on XML. Several papers have been published on finding changes in XML documents, called diff. However, the question how to correctly apply the changes in a patch is neglected most of the time. We consider this question as important as the diff problem itself. Especially in a distributed collaboration environment, patching is a frequent task; every change, called delta, has to be propagated to all workspaces to ensure a consistent state of all working copies of a file. Patching a file with the delta it was computed for is an easy task. In contrast, it is not trivial to merge two or more deltas. This is the case when a file is edited simultaneously by two people: Changes between the original and the edited versions have to be merged as far as possible. In this paper we present a rule set which ensures a high quality of the merge result with respect to the document order of nodes. We will show the benefits of our approach in an experimental setup using office documents.
Sebastian et al. (Mon,) studied this question.