Here is synopsis for 'xml c14n' command:
XMLStarlet Toolkit: XML canonicalization Usage: xml c14n <mode> <xml-file> [<xpath-file>] [<inclusive-ns-list>] where <xml-file> - input XML document file name (stdin is used if '-') <xpath-file> - XML file containing XPath expression for c14n XML canonicalization Example: <?xml version="1.0"?> <XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example"> (//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1] </XPath> <inclusive-ns-list> - the list of inclusive namespace prefixes (only for exclusive canonicalization) Example: 'n1 n2' <mode> is one of following: --with-comments XML file canonicalization w comments (default) --without-comments XML file canonicalization w/o comments --exc-with-comments Exclusive XML file canonicalization w comments --exc-without-comments Exclusive XML file canonicalization w/o comments XMLStarlet is a command line toolkit to query/edit/check/transform XML documents (for more information see http://xmlstar.sourceforge.net/)
EXAMPLE
# XML canonicalization xml c14n --with-comments ../examples/xml/structure.xml ; echo $?
Input ../examples/xml/structure.xml
<a1> <a11> <a111> <a1111/> </a111> <a112> <a1121/> </a112> </a11> <a12/> <a13> <a131/> </a13> </a1>
Output
<a1> <a11> <a111> <a1111></a1111> </a111> <a112> <a1121></a1121> </a112> </a11> <a12></a12> <a13> <a131></a131> </a13> </a1> 0
EXAMPLE
# XML exclusive canonicalization xml c14n --exc-with-comments ../examples/xml/c14n.xml ../examples/xml/c14n.xpath
Input
../examples/xml/c14n.xml <n0:pdu xmlns:n0='http://a.example.com'> <n1:elem1 xmlns:n1='http://b.example'> content </n1:elem1> </n0:pdu> ../examples/xml/c14n.xpath <XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example"> (//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1] </XPath>
Output
<n1:elem1 xmlns:n1="http://b.example"> content </n1:elem1>