Even better, build in some smarts about XML:
- Since, by definition, the ordering of attributes does not matter in XML, sort them alphabetically by name before comparison.
- Consider <element></element> and <element/> to be equivalent for comparison.
- Based on an XML schema (say, W3C XSD; maybe a DTD or some other format as well), more smarts could be built in. For example:
- (absence of attribute) == (attribute specified with default value)
- elements that can appear in any order are sorted in some canonical way so that differences can be seen easily.
If everything is done by manipulating the XML documents into some canonical form before doing the comparison, then it would be useful to have some sort of visual indication about what mods had been taken and where. Or, at least, the ability to easily turn on/off various options and rerun the converter/comparison without having to go through the Options menu to reconfigure the converter.
Since XML is such a big thing these days, you might consider whether it warrants building some XML-savvy features into this wonderful tool itself.