The IDOMPrint sample parses an XML file, using either a validating
or non-validating IDOM parser configuration, builds a DOM tree,
and then walks the tree and outputs the contents of the nodes
in a 'canonical' format. To run IDOMPrint, enter the following:
The following parameters may be set from the command line
 |  |  |
 | Usage: IDOMPrint [options] file
This program invokes the Xerces-C++ IDOM parser and builds the DOM
tree. It then traverses the DOM tree and prints the contents
of the tree. Options are NOT case sensitive.
Options:
-e Expand entity references. Default is no expansion.
-u=xxx Handle unrepresentable chars [fail | rep | ref*]
-v=xxx Validation scheme [always | never | auto*]
-n Enable namespace processing. Default is off.
-x=XXX Use a particular encoding for output. Default is
the same encoding as the input XML file. UTF-8 if
input XML file has not XML declaration.
-? Show this help (must be the only parameter)
* = Default if not provided explicitly
The parser has intrinsic support for the following encodings:
UTF-8, USASCII, ISO8859-1, UTF-16[BL]E, UCS-4[BL]E,
WINDOWS-1252, IBM1140, IBM037 |  |
 |  |  |
-u=fail will fail when unrepresentable characters are encountered
-u=rep will replace with the substitution character for that codepage
-u=ref will report the character as a reference
-v=always will force validation
-v=never will not use any validation
-v=auto will validate if a DOCTYPE declaration is present in the XML document
Here is a sample output from IDOMPrint
 |  |  |
 | cd xerces-c1_5_2-linux/samples/data
IDOMPrint -v personal.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE personnel SYSTEM "personal.dtd">
<!-- @version: -->
<personnel>
<person id="Big.Boss">
<name><family>Boss</family> <given>Big</given></name>
<email>chief@foo.com</email>
<link subordinates="one.worker two.worker three.worker
four.worker five.worker"></link>
</person>
<person id="one.worker">
<name><family>Worker</family> <given>One</given></name>
<email>one@foo.com</email>
<link manager="Big.Boss"></link>
</person>
<person id="two.worker">
<name><family>Worker</family> <given>Two</given></name>
<email>two@foo.com</email>
<link manager="Big.Boss"></link>
</person>
<person id="three.worker">
<name><family>Worker</family> <given>Three</given></name>
<email>three@foo.com</email>
<link manager="Big.Boss"></link>
</person>
<person id="four.worker">
<name><family>Worker</family> <given>Four</given></name>
<email>four@foo.com</email>
<link manager="Big.Boss"></link>
</person>
<person id="five.worker">
<name><family>Worker</family> <given>Five</given></name>
<email>five@foo.com</email>
<link manager="Big.Boss"></link>
</person>
</personnel> |  |
 |  |  |
Note that IDOMPrint does not reproduce the original XML file. IDOMPrint and
SAXPrint produce different results because of the way the two APIs store data
and capture events.