daisy has some interesting diff code that we could use to create diffs between versions
This page lists some open source XML diff implementations: http://www.manageability.org/blog/stuff/open-source-xml-diff-in-java