Is there any formal way or known way to canonicalize an xml file to generate diffs?

There seems to be many questions WRT tool to generate diffs between xmls, but there wasn’t this question yet, so anyone who knows this show me a link or paste any example anyone already solved this problem.

Canonicalizing an xml file means,

  • reordering the appearance of attributes
  • reordering the appearance of tags (selectable by command line option)
  • insert line ending(CR/CR+LF/LF) if there isn’t at the end of a close tag
  • insert indentation tab(space)
  • remove redundant spaces and line endings

And then you can cleanly diff the xml files to see which part was updated.

I want to use the routine to canonicalize in unix environment, as quick as possible, before checking in to version control repository.

Git Baby is a git and github fan, let's start git clone.