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
![](resources/void.gif) | ![](resources/void.gif) | ![](resources/void.gif) |
![](resources/void.gif) | Usage: IDOMPrint [options] file
This program invokes the XML4C 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 | ![](resources/void.gif) |
![](resources/void.gif) | ![](resources/void.gif) | ![](resources/void.gif) |
-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
![](resources/void.gif) | ![](resources/void.gif) | ![](resources/void.gif) |
![](resources/void.gif) | cd xml4c-3_5_1-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> | ![](resources/void.gif) |
![](resources/void.gif) | ![](resources/void.gif) | ![](resources/void.gif) |
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.