This project aims to create a tool able to
patch arbitrary XML documents. The current project is the only tree-oriented
tool that manages to do that.
The increasing use of XML the last few years, led to the creation of many differencing and patching tools capable of handling tree-structured documents. However, all of those tools are only able to apply a delta file, which is the collection of the differences between two documents, in one of the original files. This document accompanies an application to create a differencing and patching tool that handles XML documents as ordered labelled trees, and will attempt to overcome the limitation stated above. Moreover, this thesis introduces a new difference output format, named EDUL, and thoroughly documents all the special cases that cause conflicts during the patching.