About SSDDiff:

SSDDiff, short for “Semistructured data differencing”, is a tool to find the differences (or more precisely, the similarities) inbetween two documents. The program compares the structure of the two documents, so it doesn't just do a text comparison.
This obviously is only interesting when you have two documents with a complex, nested and variable structure. It doesn't make sense to apply this to a flat list of names, for example.
The current version supports arbitrary XML files, so it basically is a “xmldiff” programm. But it gives different — usually better — results than the existing tools for this task, and is also easier to adapt to specific situations; on the other hand it is significantly slower and users more memory.
SSDDiff is a protoype, developed in form of a project thesis in the curriculum for a Diploma degree in Computer science at the University of Munich.
The program is OpenSource, and available on it's project homepage.