I'm looking for a Windows-based diff tool that shows me the differences between two XML files, but does this tree-based, not line-based.
I.e. if a section has moved to a totally different place in the file it should not report differences.
These two files should be reported as 'the same':
<soapenv:Body>
<mes:GetItem>
<mes:ItemShape>
<typ:BaseShape>IdOnly</typ:BaseShape>
<typ:BodyType>Text</typ:BodyType>
<typ:AdditionalProperties>
<typ:FieldURI FieldURI="item:Subject" />
<typ:FieldURI FieldURI="item:Categories" />
</typ:AdditionalProperties>
</mes:ItemShape>
<mes:ItemIds>
<typ:ItemId Id="AAMYAAA="/>
</mes:ItemIds>
</mes:GetItem>
</soapenv:Body>
<soapenv:Body>
<mes:GetItem>
<mes:ItemIds>
<typ:ItemId Id="AAMYAAA="/>
</mes:ItemIds>
<mes:ItemShape>
<typ:BodyType>Text</typ:BodyType>
<typ:BaseShape>IdOnly</typ:BaseShape>
<typ:AdditionalProperties>
<typ:FieldURI FieldURI="item:Categories" />
<typ:FieldURI FieldURI="item:Subject" />
</typ:AdditionalProperties>
</mes:ItemShape>
</mes:GetItem>
</soapenv:Body>
And of course, all differences should be marked, preferably in a side-by-side view with indicators or lines connecting the sections that differ.
Free would be nice.
Optionaly ignoring name spaces would be nice.