XCC: change control of XML documents
- 181 Downloads
XML-based documents play a major role in modern information architectures and their corresponding workflows. In this context, the ability to identify and represent differences between two versions of a document is essential, as well as the merging of document versions resulting from parallel editing processes.
Different approaches try to meet these challenges using operational transformation or document annotation. In both approaches, the changes are tracked during editing, which requires corresponding editing applications. In the context of software development, however, a state-based approach is common. Here, versions are compared and merged using external tools, called diff and patch. This allows the users for editing documents without being tightened to editing tools. Approaches exist that are able to compare XML documents, but lack a corresponding merge capability.
In this article, we present a comprehensive framework that allows for comparing and merging of XML documents using a state-based approach. Its design is based on an analysis of XML documents and their modification patterns. The framework is built on top of a context-oriented delta model. We present a diff algorithm that appears to be highly efficient in terms of speed and delta quality. The patch algorithm is able to merge document versions efficiently and reliably. The efficiency and the reliability of our approach are verified using a competitive test scenario.
KeywordsXML Document version control Change management Diff Patch Merge
Unable to display preview. Download preview PDF.
- 1.Brauer M, Weir R, McRae M (2007) OpenDocument v1.1 specification. URL http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.pdf
- 2.Paoli J, Valet-Harper I, Farquhar A, Sebestyen I (2006) ECMA-376 office open XML file formats. URL http://www.ecma-international.org/publications/standards/Ecma-376.htm
- 3.Pemberton S (2002) XHTML™1.0 the extensible hypertext markup language (second edition). http://www.w3.org/TR/2002/REC-xhtml1-20020801
- 13.DeRose S, Clark J XML path language (XPath) version 1.0 (1999). http://www.w3.org/TR/1999/REC-xpath-19991116
- 19.Davison W (1990) Unified context diff tools. vol 14, Issue 70 of comp.sources.misc Google Scholar
- 20.Mouat A (2002) XML diff and patch utilities. Master’s thesis, Heriot-Watt University, Edinburgh Scotland Google Scholar
- 23.Khanna S, Kunal K, Pierce BC (2007) A formal investigation of diff3. In: Prasad A (ed) Foundations of software technology and theoretical computer science (FSTTCS) Google Scholar
- 29.Fontaine RL (2002) Merging XML files: a new approach providing intelligent merge of XML data sets. In: Proc of XML Europe 2002 Google Scholar
- 30.Rosado LA, Márquez AP, Gil JM (2007) Managing branch versioning in versioned/temporal XML documents. In: Barbosa D, Bonifati A, Bellahsene Z, Hunt E, Unland R (eds) XSym. Lecture notes in computer science, vol 4704. Springer, Berlin, pp 107–121 Google Scholar
- 32.Molli P, Skaf-Molli H, Oster G, Jourdain S (2002) Sams: synchronous, asynchronous, multi-synchronous environments. pp 80–84. doi: 10.1109/CSCWD.2002.1047653
- 33.Wang D, Mah A (2009) Google wave operational transformation. http://www.waveprotocol.org/whitepapers/operational-transform