
Usage:
    SAXCount [options] <XML file | List file>

This program invokes the SAX Parser, and then prints the
number of elements, attributes, spaces and characters found
in each XML file, using SAX API.

Options:
    -l          Indicate the input file is a List File that has a list of xml files.
                Default to off (Input file is an XML file).
    -v=xxx      Validation scheme [always | never | auto*].
    -n          Enable namespace processing. Defaults to off.
    -s          Enable schema processing. Defaults to off.
    -f          Enable full schema constraint checking. Defaults to off.
    -locale=ll_CC specify the locale, default: en_US.
    -?          Show this help.

  * = Default if not provided explicitly.

personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
personal-schema.xml:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)

Usage:
    SAXPrint [options] <XML file>

This program invokes the SAX Parser, and then prints the
data returned by the various SAX handlers for the specified
XML file.

Options:
    -u=xxx      Handle unrepresentable chars [fail | rep | ref*].
    -v=xxx      Validation scheme [always | never | auto*].
    -n          Enable namespace processing.
    -s          Enable schema processing.
    -f          Enable full schema constraint checking.
    -x=XXX      Use a particular encoding for output (LATIN1*).
    -?          Show this help.

  * = 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, IBM1047.

<?xml version="1.0" encoding="LATIN1"?>
<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><?xml version="1.0" encoding="LATIN1"?>
<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><?xml version="1.0" encoding="LATIN1"?>
<?proc-inst-1 'foo' ?><personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd">

  <person id="Big.Boss" contr="false">
    <name xml:base="foo/bar"><family xml:base="bar/bar">Boss</family> <given xml:base="car/bar">Big</given><?proc-inst-2 'foobar' ?></name>
    <email>chief@foo.com</email>
    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
  </person>

  <person id="one.worker" xml:base="/auto/bar" contr="false">
    <name xml:base="/car/foo/"><family xml:base="bar/bar">Worker</family> <given>One</given></name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="two.worker" xml:base="http://www.example.com/car/car" contr="false">
    <name xml:base="/bar/foo/"><family xml:base="foo/bar">Worker</family> <given>Two</given></name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="three.worker" contr="false">
    <name><family>Worker</family> <given>Three</given></name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="four.worker" contr="false">
    <name><family>Worker</family> <given>Four</given></name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="five.worker" contr="false">
    <name><family>Worker</family> <given>Five</given></name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

</personnel>
Usage:
    SAX2Count [options] <XML file | List file>

This program invokes the SAX2XMLReader, and then prints the
number of elements, attributes, spaces and characters found
in each XML file, using SAX2 API.

Options:
    -l          Indicate the input file is a List File that has a list of xml files.
                Default to off (Input file is an XML file).
    -v=xxx      Validation scheme [always | never | auto*].
    -f          Enable full schema constraint checking processing. Defaults to off.
    -p          Enable namespace-prefixes feature. Defaults to off.
    -n          Disable namespace processing. Defaults to on.
                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
    -s          Disable schema processing. Defaults to on.
                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
    -i          Disable identity constraint checking. Defaults to on.
                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
    -locale=ll_CC specify the locale, default: en_US.
    -?          Show this help.

  * = Default if not provided explicitly.

personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
personal-schema.xml:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)

Usage:
    SAX2Print [options] <XML file>

This program invokes the SAX2XMLReader, and then prints the
data returned by the various SAX2 handlers for the specified
XML file.

Options:
    -u=xxx      Handle unrepresentable chars [fail | rep | ref*].
    -v=xxx      Validation scheme [always | never | auto*].
    -e          Expand Namespace Alias with URI's. Defaults to off.
    -x=XXX      Use a particular encoding for output (LATIN1*).
    -f          Enable full schema constraint checking processing. Defaults to off.
    -p          Enable namespace-prefixes feature. Defaults to off.
    -n          Disable namespace processing. Defaults to on.
                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
    -s          Disable schema processing. Defaults to on.
                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
    -sa         Print the attributes in alfabetic order. Defaults to off.
    -?          Show this help.

  * = 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, IBM1047.

<?xml version="1.0" encoding="LATIN1"?>
<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><?xml version="1.0" encoding="LATIN1"?>
<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><?xml version="1.0" encoding="LATIN1"?>
<?proc-inst-1 'foo' ?><personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd">

  <person id="Big.Boss" contr="false">
    <name xml:base="foo/bar"><family xml:base="bar/bar">Boss</family> <given xml:base="car/bar">Big</given><?proc-inst-2 'foobar' ?></name>
    <email>chief@foo.com</email>
    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
  </person>

  <person id="one.worker" xml:base="/auto/bar" contr="false">
    <name xml:base="/car/foo/"><family xml:base="bar/bar">Worker</family> <given>One</given></name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="two.worker" xml:base="http://www.example.com/car/car" contr="false">
    <name xml:base="/bar/foo/"><family xml:base="foo/bar">Worker</family> <given>Two</given></name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="three.worker" contr="false">
    <name><family>Worker</family> <given>Three</given></name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="four.worker" contr="false">
    <name><family>Worker</family> <given>Four</given></name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

  <person id="five.worker" contr="false">
    <name><family>Worker</family> <given>Five</given></name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"></link>
  </person>

</personnel><?xml version="1.0" encoding="LATIN1"?>
<xs:schema>

 <xs:import namespace="http://www.w3.org/XML/1998/namespace">
   <xs:annotation>
     <xs:documentation>
        The schemaLocation of the relevant file is
        "http://www.w3.org/2001/xml.xsd"; however,
        we don't want to assume people are always
        connected to the 'net when playing with this file.
     </xs:documentation>
   </xs:annotation>
 </xs:import>

 <xs:element name="personnel">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="person" minOccurs="1" maxOccurs="unbounded"></xs:element>
   </xs:sequence>
  </xs:complexType>

  <xs:unique name="unique1">
   <xs:selector xpath="person"></xs:selector>
   <xs:field xpath="name/given"></xs:field>
   <xs:field xpath="name/family"></xs:field>
  </xs:unique>
  <xs:key name="empid">
   <xs:selector xpath="person"></xs:selector>
   <xs:field xpath="@id"></xs:field>
  </xs:key>
  <xs:keyref name="keyref1" refer="empid">
   <xs:selector xpath="person"></xs:selector> 
   <xs:field xpath="link/@manager"></xs:field>  
  </xs:keyref>

 </xs:element>

 <xs:element name="person">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="name"></xs:element>
     <xs:element ref="email" minOccurs="0" maxOccurs="unbounded"></xs:element>
     <xs:element ref="url" minOccurs="0" maxOccurs="unbounded"></xs:element>
     <xs:element ref="link" minOccurs="0" maxOccurs="1"></xs:element>
   </xs:sequence>
   <xs:attribute name="id" type="xs:ID" use="required"></xs:attribute>
   <xs:attribute name="note" type="xs:string"></xs:attribute>
   <xs:attribute name="contr" default="false">
    <xs:simpleType>
     <xs:restriction base="xs:string">
       <xs:enumeration value="true"></xs:enumeration>
       <xs:enumeration value="false"></xs:enumeration>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
   <xs:attribute name="salary" type="xs:integer"></xs:attribute>
   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
  </xs:complexType>
 </xs:element>

 <xs:element name="name">
  <xs:complexType>
   <xs:all>
    <xs:element ref="family"></xs:element>
    <xs:element ref="given"></xs:element>
   </xs:all>
   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
  </xs:complexType>
 </xs:element>

 <xs:element name="family">
   <xs:complexType>
     <xs:simpleContent>
       <xs:extension base="xs:string">
          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
        </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
 </xs:element>

 <xs:element name="given">
   <xs:complexType>
     <xs:simpleContent>
       <xs:extension base="xs:string">
          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
        </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
 </xs:element>

 <xs:element name="email" type="xs:string"></xs:element>

 <xs:element name="url">
  <xs:complexType>
   <xs:attribute name="href" type="xs:string" default="http://"></xs:attribute>
  </xs:complexType>
 </xs:element>

 <xs:element name="link">
  <xs:complexType>
   <xs:attribute name="manager" type="xs:IDREF"></xs:attribute>
   <xs:attribute name="subordinates" type="xs:IDREFS"></xs:attribute>
  </xs:complexType>
 </xs:element>

 <xs:notation name="gif" public="-//APP/Photoshop/4.0" system="photoshop.exe"></xs:notation>

</xs:schema><?xml version="1.0" encoding="LATIN1"?>
<xs:schema>

 <xs:import namespace="http://www.w3.org/XML/1998/namespace">
   <xs:annotation>
     <xs:documentation>
        The schemaLocation of the relevant file is
        "http://www.w3.org/2001/xml.xsd"; however,
        we don't want to assume people are always
        connected to the 'net when playing with this file.
     </xs:documentation>
   </xs:annotation>
 </xs:import>

 <xs:element name="personnel">
  <xs:complexType>
   <xs:sequence>
     <xs:element maxOccurs="unbounded" minOccurs="1" ref="person"></xs:element>
   </xs:sequence>
  </xs:complexType>

  <xs:unique name="unique1">
   <xs:selector xpath="person"></xs:selector>
   <xs:field xpath="name/given"></xs:field>
   <xs:field xpath="name/family"></xs:field>
  </xs:unique>
  <xs:key name="empid">
   <xs:selector xpath="person"></xs:selector>
   <xs:field xpath="@id"></xs:field>
  </xs:key>
  <xs:keyref name="keyref1" refer="empid">
   <xs:selector xpath="person"></xs:selector> 
   <xs:field xpath="link/@manager"></xs:field>  
  </xs:keyref>

 </xs:element>

 <xs:element name="person">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="name"></xs:element>
     <xs:element maxOccurs="unbounded" minOccurs="0" ref="email"></xs:element>
     <xs:element maxOccurs="unbounded" minOccurs="0" ref="url"></xs:element>
     <xs:element maxOccurs="1" minOccurs="0" ref="link"></xs:element>
   </xs:sequence>
   <xs:attribute name="id" type="xs:ID" use="required"></xs:attribute>
   <xs:attribute name="note" type="xs:string"></xs:attribute>
   <xs:attribute default="false" name="contr">
    <xs:simpleType>
     <xs:restriction base="xs:string">
       <xs:enumeration value="true"></xs:enumeration>
       <xs:enumeration value="false"></xs:enumeration>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
   <xs:attribute name="salary" type="xs:integer"></xs:attribute>
   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
  </xs:complexType>
 </xs:element>

 <xs:element name="name">
  <xs:complexType>
   <xs:all>
    <xs:element ref="family"></xs:element>
    <xs:element ref="given"></xs:element>
   </xs:all>
   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
  </xs:complexType>
 </xs:element>

 <xs:element name="family">
   <xs:complexType>
     <xs:simpleContent>
       <xs:extension base="xs:string">
          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
        </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
 </xs:element>

 <xs:element name="given">
   <xs:complexType>
     <xs:simpleContent>
       <xs:extension base="xs:string">
          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
        </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
 </xs:element>

 <xs:element name="email" type="xs:string"></xs:element>

 <xs:element name="url">
  <xs:complexType>
   <xs:attribute default="http://" name="href" type="xs:string"></xs:attribute>
  </xs:complexType>
 </xs:element>

 <xs:element name="link">
  <xs:complexType>
   <xs:attribute name="manager" type="xs:IDREF"></xs:attribute>
   <xs:attribute name="subordinates" type="xs:IDREFS"></xs:attribute>
  </xs:complexType>
 </xs:element>

 <xs:notation name="gif" public="-//APP/Photoshop/4.0" system="photoshop.exe"></xs:notation>

</xs:schema>
Finished parsing the memory buffer containing the following XML statements:

<?xml version='1.0' encoding='ascii'?>
<!DOCTYPE company [
<!ELEMENT company     (product,category,developedAt)>
<!ELEMENT product     (#PCDATA)>
<!ELEMENT category    (#PCDATA)>
<!ATTLIST category idea CDATA #IMPLIED>
<!ELEMENT developedAt (#PCDATA)>
]>

<company>
    <product>XML4C</product>
    <category idea='great'>XML Parsing Tools</category>
    <developedAt>
      IBM Center for Java Technology, Silicon Valley, Cupertino, CA
    </developedAt>
</company>


Parsing took{timing removed}(4 elements, 1 attributes, 16 spaces, 95 characters).


Finished parsing the memory buffer containing the following XML statements:

<?xml version='1.0' encoding='ascii'?>
<!DOCTYPE company [
<!ELEMENT company     (product,category,developedAt)>
<!ELEMENT product     (#PCDATA)>
<!ELEMENT category    (#PCDATA)>
<!ATTLIST category idea CDATA #IMPLIED>
<!ELEMENT developedAt (#PCDATA)>
]>

<company>
    <product>XML4C</product>
    <category idea='great'>XML Parsing Tools</category>
    <developedAt>
      IBM Center for Java Technology, Silicon Valley, Cupertino, CA
    </developedAt>
</company>


Parsing took{timing removed}(4 elements, 1 attributes, 0 spaces, 111 characters).


Usage:
    Redirect <XML file>

This program installs an entity resolver, traps the call to
the external DTD file and redirects it to another application
specific file which contains the actual dtd.

The program then counts and reports the number of elements and
attributes in the given XML file.

personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)

Usage:
    DOMCount [options] <XML file | List file>

This program invokes the DOMBuilder, builds the DOM tree,
and then prints the number of elements found in each XML file.

Options:
    -l          Indicate the input file is a List File that has a list of xml files.
                Default to off (Input file is an XML file).
    -v=xxx      Validation scheme [always | never | auto*].
    -n          Enable namespace processing. Defaults to off.
    -s          Enable schema processing. Defaults to off.
    -f          Enable full schema constraint checking. Defaults to off.
    -locale=ll_CC specify the locale, default: en_US.
    -p          Print out names of elements and attributes encountered.
    -?          Show this help.

  * = Default if not provided explicitly.

personal.xml:{timing removed}(37 elems).
personal.xml:{timing removed}(37 elems).
personal-schema.xml:{timing removed}(37 elems).

Usage:
    DOMPrint [options] <XML file>

This program invokes the DOM parser, and builds the DOM tree.
It then asks the DOMWriter to serialize the DOM tree.
Options:
    -e          create entity reference nodes. Default is no expansion.
    -v=xxx      Validation scheme [always | never | auto*].
    -n          Enable namespace processing. Default is off.
    -s          Enable schema processing. Default is off.
    -f          Enable full schema constraint checking. Defaults is off.
    -wenc=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.
    -wfile=xxx  Write to a file instead of stdout.
    -wscs=xxx   Enable/Disable split-cdata-sections.      Default on
    -wddc=xxx   Enable/Disable discard-default-content.   Default on
    -wflt=xxx   Enable/Disable filtering.                 Default off
    -wfpp=xxx   Enable/Disable format-pretty-print.       Default off
    -wbom=xxx   Enable/Disable write Byte-Order-Mark      Default off
    -?          Show this help.

  * = 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, IBM1047.

<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!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"/>
  </person>

  <person id="one.worker">
    <name>
      <family>Worker</family> 
      <given>One</given>
    </name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="two.worker">
    <name>
      <family>Worker</family> 
      <given>Two</given>
    </name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="three.worker">
    <name>
      <family>Worker</family> 
      <given>Three</given>
    </name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="four.worker">
    <name>
      <family>Worker</family> 
      <given>Four</given>
    </name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="five.worker">
    <name>
      <family>Worker</family> 
      <given>Five</given>
    </name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"/>
  </person>


</personnel>
<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!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"/>
  </person>

  <person id="one.worker">
    <name>
      <family>Worker</family> 
      <given>One</given>
    </name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="two.worker">
    <name>
      <family>Worker</family> 
      <given>Two</given>
    </name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="three.worker">
    <name>
      <family>Worker</family> 
      <given>Three</given>
    </name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="four.worker">
    <name>
      <family>Worker</family> 
      <given>Four</given>
    </name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="five.worker">
    <name>
      <family>Worker</family> 
      <given>Five</given>
    </name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"/>
  </person>


</personnel>
<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!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"/>
  </person>

  <person id="one.worker">
    <name>
      <family>Worker</family> 
      <given>One</given>
    </name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="two.worker">
    <name>
      <family>Worker</family> 
      <given>Two</given>
    </name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="three.worker">
    <name>
      <family>Worker</family> 
      <given>Three</given>
    </name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="four.worker">
    <name>
      <family>Worker</family> 
      <given>Four</given>
    </name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="five.worker">
    <name>
      <family>Worker</family> 
      <given>Five</given>
    </name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"/>
  </person>


</personnel>
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<?proc-inst-1 'foo' ?>
<personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd">

  <person contr="false" id="Big.Boss">
    <name xml:base="foo/bar">
      <family xml:base="bar/bar">Boss</family> 
      <given xml:base="car/bar">Big</given>
      <?proc-inst-2 'foobar' ?>
    </name>
    <email>chief@foo.com</email>
    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
  </person>

  <person contr="false" id="one.worker" xml:base="/auto/bar">
    <name xml:base="/car/foo/">
      <family xml:base="bar/bar">Worker</family> 
      <given>One</given>
    </name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person contr="false" id="two.worker" xml:base="http://www.example.com/car/car">
    <name xml:base="/bar/foo/">
      <family xml:base="foo/bar">Worker</family> 
      <given>Two</given>
    </name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person contr="false" id="three.worker">
    <name>
      <family>Worker</family> 
      <given>Three</given>
    </name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person contr="false" id="four.worker">
    <name>
      <family>Worker</family> 
      <given>Four</given>
    </name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person contr="false" id="five.worker">
    <name>
      <family>Worker</family> 
      <given>Five</given>
    </name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"/>
  </person>


</personnel>
stdin:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
stdin:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
stdin:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)

Usage:
    PParse [options] <XML file>

This program demonstrates the progressive parse capabilities of
the parser system. It allows you to do a scanFirst() call followed by
a loop which calls scanNext(). You can drop out when you've found what
ever it is you want. In our little test, our event handler looks for
16 new elements then sets a flag to indicate its found what it wants.
At that point, our progressive parse loop exits.

Options:
      -v=xxx        - Validation scheme [always | never | auto*].
      -n            - Enable namespace processing [default is off].
      -s            - Enable schema processing [default is off].
      -f            - Enable full schema constraint checking [default is off].
      -?            - Show this help.

  * = Default if not provided explicitly.

personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
personal-schema.xml:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)

Usage:
    EnumVal <XML file>

This program parses the specified XML file, then shows how to
enumerate the contents of the DTD Grammar. Essentially,
shows how one can access the DTD information stored in internal
data structures.


ELEMENTS:
----------------------------
  Name: personnel
  Content Model: (person)+

  Name: person
  Content Model: (name,email*,url*,link?)
  Attributes:
    Name:id, Type: ID

  Name: name
  Content Model: (#PCDATA|family|given)*

  Name: email
  Content Model: (#PCDATA)

  Name: url
  Content Model: EMPTY
  Attributes:
    Name:href, Type: CDATA

  Name: link
  Content Model: EMPTY
  Attributes:
    Name:manager, Type: IDREF(S)
    Name:subordinates, Type: IDREF(S)

  Name: family
  Content Model: (#PCDATA)

  Name: given
  Content Model: (#PCDATA)


Usage:
    SEnumVal <XML file>

This program parses a file, then shows how to enumerate the
contents of the Schema Grammar. Essentially, shows how one can
access the Schema information stored in internal data structures.

Name:			personnel
Model Type:		Children
Create Reason:	Declared
ContentType:	
Content Model:	(person,)
ComplexType:
	TypeName:	,__AnonC0
	ContentType:	
--------------------------------------------
Name:			person
Model Type:		Children
Create Reason:	Declared
ContentType:	
Content Model:	((name,email,url),link)
ComplexType:
	TypeName:	,__AnonC1
	ContentType:	
Attributes:
	Name:			id
	Type:			ID
	Default Type:	#REQUIRED
	Base Datatype:		ID

	Name:			note
	Type:			CDATA
	Default Type:	#IMPLIED
	Base Datatype:		string

	Name:			contr
	Type:			CDATA
	Default Type:	#DEFAULT
	Value:			false
	Base Datatype:		string
Enumeration:		
	true
	false

	Name:			salary
	Type:			CDATA
	Default Type:	#IMPLIED
	Base Datatype:		Decimal
Facets:		
	fractionDigits=0
	pattern=[+\-]?[0-9]+

--------------------------------------------
Name:			name
Model Type:		Children
Create Reason:	Declared
ContentType:	All
Content Model:	All(family,given)
ComplexType:
	TypeName:	,__AnonC2
	ContentType:	All
--------------------------------------------
Name:			family
Model Type:		Simple
Create Reason:	Declared
ComplexType:
	TypeName:	,__AnonC3
Base Datatype:		string
--------------------------------------------
Name:			given
Model Type:		Simple
Create Reason:	Declared
ComplexType:
	TypeName:	,__AnonC4
Base Datatype:		string
--------------------------------------------
Name:			email
Model Type:		Simple
Create Reason:	Declared
Base Datatype:		string
--------------------------------------------
Name:			url
Model Type:		Empty
Create Reason:	Declared
Content Model:	EMPTY
ComplexType:
	TypeName:	,__AnonC5
Attributes:
	Name:			href
	Type:			CDATA
	Default Type:	#DEFAULT
	Value:			http://
	Base Datatype:		string

--------------------------------------------
Name:			link
Model Type:		Empty
Create Reason:	Declared
Content Model:	EMPTY
ComplexType:
	TypeName:	,__AnonC6
Attributes:
	Name:			manager
	Type:			IDREF
	Default Type:	#IMPLIED
	Base Datatype:		IDREF

	Name:			subordinates
	Type:			IDREFS
	Default Type:	#IMPLIED
	Base Datatype:		List

--------------------------------------------
The tree just created contains: 4 elements.
DOMMemTest
Test Run Successfully
DOMTest
Test Run Successfully
RangeTest
Test Run Successfully
DOMTraversalTest
Test Run Successfully

Usage:
    DeprecatedDOMCount [options] <XML file | List file>

This program invokes the DOM parser, builds the DOM tree,
and then prints the number of elements found in each XML file.

Options:
    -l          Indicate the input file is a List File that has a list of xml files.
                Default to off (Input file is an XML file).
    -v=xxx      Validation scheme [always | never | auto*].
    -n          Enable namespace processing. Defaults to off.
    -s          Enable schema processing. Defaults to off.
    -f          Enable full schema constraint checking. Defaults to off.
    -?          Show this help.

  * = Default if not provided explicitly.

personal.xml:{timing removed}(37 elems).
personal.xml:{timing removed}(37 elems).
personal-schema.xml:{timing removed}(37 elems).

Usage:
    XSerializerTest [options] <XML file | List file>

This program invokes the SAX2XMLReader, and then prints the
number of elements, attributes, spaces and characters found
in each XML file, using SAX2 API.

Options:
    -l          Indicate the input file is a List File that has a list of xml files.
                Default to off (Input file is an XML file).
    -v=xxx      Validation scheme [always | never | auto*].
    -f          Enable full schema constraint checking processing. Defaults to off.
    -p          Enable namespace-prefixes feature. Defaults to off.
    -n          Disable namespace processing. Defaults to on.
                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
    -s          Disable schema processing. Defaults to on.
                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
    -locale=ll_CC specify the locale, default: en_US.
    -?          Show this help.

  * = Default if not provided explicitly.

personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
personal-schema.xml:{timing removed}(37 elems, 28 attrs, 0 spaces, 268 chars)
personal-schema.xml:{timing removed}(37 elems, 28 attrs, 140 spaces, 128 chars)
personal-schema.xml:{timing removed}(37 elems, 28 attrs, 140 spaces, 128 chars)

XSValueTest Pass

Usage:
    InitTermTest [options] <XML file>

This program tests the XMLPlatformUtils::Initialize()/Terminate()
pair by calling it a number of times.
Options:
    -n          Enable namespace processing. Default is off.
    -s          Enable schema processing. Default is off.
    -f          Enable full schema constraint checking. Defaults to off.
    -?          Show this help.

1Test Run Successfully
2Test Run Successfully
3Test Run Successfully
No input XML file specified on command line.
usage:  ThreadTest [-v] [-threads nnn] [-time nnn] [-quiet] [-verbose] xmlfile...
     -v=xxx         Validation scheme [always | never | auto].  Default is AUTO.
     -n             Enable namespace processing. Defaults to off.
     -s             Enable schema processing. Defaults to off.
     -f             Enable full schema constraint checking. Defaults to off.
     -parser=xxx    Parser Type [dom | sax | sax2].  Default is SAX (SAX1).
     -p             Enable namespace prefixes. Defaults to off.
                    (Only used with -parser=sax2, ignored otherwise.)
     -quiet         Suppress periodic status display.
     -verbose       Display extra messages.
     -reuse         Retain and reuse parser.  Default creates new for each parse.
     -threads nnn   Number of threads.  Default is 2.
     -time nnn      Total time to run, in seconds.  Default is forever.
     -parses nnn    Run for nnn parses instead of time.  Default is to use time
     -dump          Dump DOM tree on error.
     -mem           Read files into memory once only, and parse them from there.
     -gc            Enable grammar caching (i.e. grammar cached and used in subsequent parses). Defaults to off.
     -init          Perform an initial parse of the file(s) before starting up the individual threads.

1Test Run Successfully
2Test Run Successfully
3Test Run Successfully
4Test Run Successfully
5Test Run Successfully
6Test Run Successfully
7Test Run Successfully
8Test Run Successfully
9Test Run Successfully
10Test Run Successfully
11Test Run Successfully
12Test Run Successfully
13Test Run Successfully
14Test Run Successfully
15Test Run Successfully

Usage:
    MemHandlerTest [options] <XML file | List file>

This program invokes the XercesDOMParser, DOMBuilder, SAXParser ,
and the SAX2XMLReader, and ensures that MemoryManagers set on these
domBuilders are called to delete just as many bytes as they allocate.
This is done for each XML file, and each file is processed
as many times as indicated.
Options:
    -l          Indicate the input file is a List File that has a list of xml files.
                Default to off (Input file is an XML file).
    -v=xxx      Validation scheme [always | never | auto*].
    -n          Enable namespace processing. Defaults to off.
    -s          Enable schema processing. Defaults to off.
    -f          Enable full schema constraint checking. Defaults to off.
    -r=n        Run file through domBuilders n times.
    -?          Show this help.

  * = Default if not provided explicitly.

At destruction, domBuilderMemMonitor has 0 bytes.
At destruction, sax2MemMonitor has 0 bytes.
At destruction, depDOMMemMonitor has 0 bytes.
At destruction, sax1MemMonitor has 0 bytes.
At destruction, staticMemMonitor has 0 bytes.
At destruction, domBuilderMemMonitor has 0 bytes.
At destruction, sax2MemMonitor has 0 bytes.
At destruction, depDOMMemMonitor has 0 bytes.
At destruction, sax1MemMonitor has 0 bytes.
At destruction, staticMemMonitor has 0 bytes.
Test Run Successfully
