утилита - аналог meld.
позволяет создавать unufued diff-ы как это делает юниксовый diff,
нет примера, как создавать файл в формате RFC5261
Лицензия: Apache 2.0
https://github.com/mmanela/diffplex
http://ru.stackoverflow.com/questions/451932/Как-имея-два-xml-файла-получить-xslt-файл-преобразующий-первый-xml-во-второй
В русском вопросе есть ссылка на английский, в английском есть список литературы и ссылка на алгоритм 2007, Tekli
"Algorithms that allow insertion and deletion of single nodes anywhere in the tree - RTED, Demain, Zhang-Shasha."
"Algorithms that allow insertion and deletion of single nodes only at leaves of the trees - Selkow, Chawathe"
"Algorithms that allow insertion and deletion of whole sub-trees - Nierman, Tekli."
"algorithms in the third group, were mainly developed to use in practice with XML documents"
"inserting multiple identical(Nierman) or similar(Tekli) sub-trees, would result in less operations, provide more suitable edit script and edit distance"
"Tekli algorithm provides more accurate result than Nierman’s approach"
http://le2i.cnrs.fr/IMG/publications/Efficient XML Structural Similarity Detection using Sub-tree Commonalities.pdf
2007, Joe Tekli; Richard Chbeir; Kokou Yetongnon, Efficient XML Structural Similarity Detection using Sub-tree Commonalities
вообще говоря, надо почитать:
1) про API и исходники библиотеки в mono (разобраться, какие там классы зачем, хотя бы сколько их в единицах/штуках)
2) как не делать собственный парсер XPath, а заиспользовать готовый
3) ещё есть пяток .pdf-ов, которые можно прочитать (но не очень хочется)