You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general-cvs@xml.apache.org by tn...@apache.org on 2002/02/14 17:44:21 UTC

cvs commit: xml-site/sources/xerces-c bug-report.xml build-misc.xml build-other.xml build-winunix.xml createdoc.xml domcount.xml domprint.xml enumval.xml idomcount.xml idomprint.xml memparse.xml migration_archive.xml pdf-c.xml pparse.xml redirect.xml releases_archive.xml sax2count.xml sax2print.xml saxcount.xml saxprint.xml schema.xml senumval.xml stdinparse.xml y2k.xml apidocs.xml faq-distrib.xml faq-other.xml faq-parse.xml feedback.xml install.xml migration.xml program.xml readme.xml releases.xml samples.xml caveats.xml

tng         02/02/14 08:44:21

  Modified:    sources  entities.ent xerces-c.xml
               sources/xerces-c apidocs.xml faq-distrib.xml faq-other.xml
                        faq-parse.xml feedback.xml install.xml
                        migration.xml program.xml readme.xml releases.xml
                        samples.xml
  Added:       sources/xerces-c bug-report.xml build-misc.xml
                        build-other.xml build-winunix.xml createdoc.xml
                        domcount.xml domprint.xml enumval.xml idomcount.xml
                        idomprint.xml memparse.xml migration_archive.xml
                        pdf-c.xml pparse.xml redirect.xml
                        releases_archive.xml sax2count.xml sax2print.xml
                        saxcount.xml saxprint.xml schema.xml senumval.xml
                        stdinparse.xml y2k.xml
  Removed:     sources/xerces-c caveats.xml
  Log:
  Xerces-C++ 1.6 documentation sources for xml-site.
  
  Revision  Changes    Path
  1.7       +12 -7     xml-site/sources/entities.ent
  
  Index: entities.ent
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/entities.ent,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- entities.ent	31 Jan 2001 00:39:15 -0000	1.6
  +++ entities.ent	14 Feb 2002 16:44:20 -0000	1.7
  @@ -1,14 +1,19 @@
   <?xml encoding="US-ASCII"?>
   
  +<!-- Definitions for Xerces C++ -->
   <!ENTITY XercesCFullName      "Xerces C++ Parser">            <!-- fullproductname -->
  -<!ENTITY XercesCName          "Xerces-C">                     <!-- productname -->
  -<!ENTITY XercesCVersion       "1.0.1">                        <!-- versionnumber -->
  +<!ENTITY XercesCName          "Xerces-C++">                   <!-- productname -->
  +<!ENTITY XercesCVersion140    "1.4.0">                        <!-- versionnumber -->
  +<!ENTITY XercesCVersion152    "1.5.2">                        <!-- versionnumber -->
  +<!ENTITY XercesCVersion       "1.6.0">                        <!-- versionnumber -->
   <!ENTITY XercesCProjectName   "Xerces">                       <!-- projectname -->
  -<!ENTITY XercesCInstallDir    "xerces-c-1_0_1">               <!-- installdirname -->
  -<!ENTITY XercesCSrcInstallDir "xerces-c-src-1_0_1">           <!-- sourcedirectory -->
  -<!ENTITY XercesCWindowsLib    "xerces-c_1_0">                 <!-- windowslibname -->
  -<!ENTITY XercesCUnixLib       "libxerces-c1_0">               <!-- unixlibname -->
  -<!ENTITY XercesCEmailAddress  "xerces-dev@xml.apache.org ">   <!-- emailaddress -->
  +<!ENTITY XercesCInstallDir    "xerces-c1_6_0">                <!-- installdirname -->
  +<!ENTITY XercesCSrcInstallDir "xerces-c-src1_6_0">            <!-- sourcedirectory -->
  +<!ENTITY XercesCWindowsLib    "xerces-c_1">                   <!-- windowslibname -->
  +<!ENTITY XercesCWindowsDLL    "xerces-c_1_6_0">               <!-- windowsDLLname -->
  +<!ENTITY XercesCUnixLib       "libxerces-c1_6_0">             <!-- unixlibname -->
  +<!ENTITY XercesCEmailAddress  "xerces-c-dev@xml.apache.org "> <!-- emailaddress -->
  +<!ENTITY XercesDistDir        "xml.apache.org/dist/xerces-c"> <!-- download directory -->
   
   <!-- Definitions for Crimson -->
   <!ENTITY CrimsonName "Crimson">
  
  
  
  1.5       +58 -14    xml-site/sources/xerces-c.xml
  
  Index: xerces-c.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- xerces-c.xml	12 Jan 2000 00:49:50 -0000	1.4
  +++ xerces-c.xml	14 Feb 2002 16:44:20 -0000	1.5
  @@ -1,23 +1,67 @@
   <?xml version="1.0"?>
   <!DOCTYPE book SYSTEM "sbk:/style/dtd/book.dtd">
   
  -<book title="Xerces-C documentation" copyright="1999 The Apache Software Foundation">
  +<book title="&XercesCName; Documentation" copyright="2001 The Apache Software Foundation">
     <external href="../index.html"  label="Home"/>
  +
     <separator/>
  -  <document id="index"       label="Readme"       source="xerces-c/readme.xml"     />
  -  <document id="install"     label="Installation" source="xerces-c/install.xml"    />
  -  <document id="build"       label="Build"        source="xerces-c/build.xml"      />
  -  <separator/>
  -  <document id="api"         label="API Docs"     source="xerces-c/apidocs.xml"    />
  -  <document id="samples"     label="Samples"      source="xerces-c/samples.xml"    />
  -  <document id="program"     label="Programming"  source="xerces-c/program.xml"    />
  +
  +  <document id="index"       label="Readme"             source="xerces-c/readme.xml"/>
  +  <external href="http://&XercesDistDir;/"                 label="Download"/>
  +  <document id="install"     label="Installation"       source="xerces-c/install.xml"/>
  +  <group    id="build"       label="Build Instructions">
  +     <entry id="build-winunix" source="xerces-c/build-winunix.xml"/>
  +     <entry id="build-other" source="xerces-c/build-other.xml"/>
  +     <entry id="build-misc"  source="xerces-c/build-misc.xml"/>
  +  </group>
  +
  +  <separator/>
  +
  +  <document id="api"         label="API Docs"     source="xerces-c/apidocs.xml"/>
  +  <document id="samples"     label="Samples"      source="xerces-c/samples.xml"/>
  +
  +  <hidden id="saxcount"      source="xerces-c/saxcount.xml"/>
  +  <hidden id="saxprint"      source="xerces-c/saxprint.xml"/>
  +  <hidden id="domcount"      source="xerces-c/domcount.xml"/>
  +  <hidden id="domprint"      source="xerces-c/domprint.xml"/>
  +  <hidden id="memparse"      source="xerces-c/memparse.xml"/>
  +  <hidden id="redirect"      source="xerces-c/redirect.xml"/>
  +  <hidden id="pparse"        source="xerces-c/pparse.xml"/>
  +  <hidden id="stdinparse"    source="xerces-c/stdinparse.xml"/>
  +  <hidden id="enumval"       source="xerces-c/enumval.xml"/>
  +  <hidden id="createdoc"     source="xerces-c/createdoc.xml"/>
  +  <hidden id="sax2count"     source="xerces-c/sax2count.xml"/>
  +  <hidden id="sax2print"     source="xerces-c/sax2print.xml"/>
  +  <hidden id="idomcount"     source="xerces-c/idomcount.xml"/>
  +  <hidden id="idomprint"     source="xerces-c/idomprint.xml"/>
  +  <hidden id="senumval"      source="xerces-c/senumval.xml"/>
  +
  +  <document id="schema"      label="Schema"       source="xerces-c/schema.xml"/>
  +  <separator/>
  +
     <group    id="faqs"        label="FAQs">
  -    <entry  id="faq-distrib"                      source="xerces-c/faq-distrib.xml"/>
  -    <entry  id="faq-parse"                        source="xerces-c/faq-parse.xml"  />
  -    <entry  id="faq-other"                        source="xerces-c/faq-other.xml"  />
  +     <entry id="faq-distrib" source="xerces-c/faq-distrib.xml"/>
  +     <entry id="faq-parse"   source="xerces-c/faq-parse.xml"/>
  +     <entry id="faq-other"   source="xerces-c/faq-other.xml"/>
     </group>
  +
  +  <document id="program"     label="Programming"  source="xerces-c/program.xml"/>
  +  <document id="migrate"     label="Migration"    source="xerces-c/migration.xml"/>
  +  <hidden id="migrate_archive"                    source="xerces-c/migration_archive.xml"/>
  +
  +  <separator/>
  +
  +  <document id="releases"    label="Releases"     source="xerces-c/releases.xml"/>
  +  <hidden id="releases_archive"                   source="xerces-c/releases_archive.xml"/>
  +  <document id="bug-report"  label="Bug-Reporting"     source="xerces-c/bug-report.xml"/>
  +  <document id="feedback"    label="Feedback"     source="xerces-c/feedback.xml"/>
  +
  +  <separator/>
  +  <document id="y2k"         label="Y2K Compliance"  source="xerces-c/y2k.xml"/>
  +  <document id="pdf"         label="PDF Document" source="xerces-c/pdf-c.xml"/>
  +
     <separator/>
  -  <document id="releases"    label="Releases"     source="xerces-c/releases.xml"   />
  -  <document id="caveats"     label="Caveats"      source="xerces-c/caveats.xml"    />
  -  <document id="feedback"    label="Feedback"     source="xerces-c/feedback.xml"   />
  +
  +  <external href="http://xml.apache.org/websrc/cvsweb.cgi/xml-xerces/c/"     label="CVS Repository"/>
  +  <external href="http://marc.theaimsgroup.com/?l=xerces-c-dev"              label="Mail Archive"/>
   </book>
  
  
  
  1.4       +21 -18    xml-site/sources/xerces-c/apidocs.xml
  
  Index: apidocs.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/apidocs.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- apidocs.xml	2 Dec 1999 01:00:44 -0000	1.3
  +++ apidocs.xml	14 Feb 2002 16:44:20 -0000	1.4
  @@ -4,25 +4,28 @@
   <s1 title="API Documentation">
       <s2 title="API Docs for SAX and DOM">
   
  -    <p>&XercesCName; comes packaged with the API documentation for SAX and DOM - the two
  -                  most common interfaces for programming XML. In addition the most common
  -                  framework classes have also been documented.</p>
  -    <p>The &XercesCName; DOM is an implementation of  the Core Level 1 Document Object
  -                  model as defined in the W3C Recommendation of 1 October, 1998.  The W3C
  -                  document is at
  -                  <jump href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html">
  -                  http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html</jump>
  -    </p>
  -    <p>For a complete understanding of how the &XercesCName; APIs work, we highly
  -                  encourage you to read the DOM Level 1 Specification mentioned above.</p>
  -    <p>The SAX APIs are derived from the SAX 1.0 Specification which may be found at
  -                  <jump href="http://www.megginson.com/SAX/index.html">http://www.megginson.com/SAX/index.html</jump>. You are also encouraged to read
  -                  this document for a better understanding of the SAX API in &XercesCName;.</p>
  -    <p><em><jump href="apiDocs/index.html">Click here to access the &XercesCName; API documentation.</jump></em></p>
  -    <note>The documentation is generated automatically from the comments inside
  -                  the headers using <jump href="http://www.zib.de/Visual/software/doc++/index.html">DOC++</jump> and then massaged through a script.</note>
  +	    <p>&XercesCName; is packaged with the API documentation for SAX and DOM, the two
  +		most common programming interfaces for XML. The most common
  +		framework classes have also been documented.</p>
   
  -    </s2>
  +	    <p>&XercesCName; DOM is an implementation of the
  +		<jump href="http://www.w3.org/TR/REC-DOM-Level-1/">Document Object
  +		Model (Core) Level 1</jump> as defined in the W3C Recommendation of 1 October, 1998; and
  +		<jump href="http://www.w3.org/TR/DOM-Level-2-Core/">Document Object
  +		Model (Core) Level 2</jump> as defined in the W3C Recommendation of 13 November, 2000.
  +		For a complete understanding of how the &XercesCName; APIs work,
  +		we recommend you to read these documents.</p>
  +
  +	    <p>&XercesCName; SAX is an implementation of the
  +		<jump href="http://sax.sourceforge.net/">SAX 1.0/2.0</jump> specification.
  +		You are encouraged to read this document for a better
  +		understanding of the SAX API in &XercesCName;.</p>
   
  +	    <p>See the <em><jump href="apiDocs/index.html">&XercesCName; API documentation.</jump></em> for more details.</p>
   
  +	    <note>The API documentation is automatically generated using
  +		<jump href="http://www.stack.nl/~dimitri/doxygen/">doxygen</jump> and
  +		<jump href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</jump>.</note>
  +
  +    </s2>
   </s1>
  
  
  
  1.7       +257 -234  xml-site/sources/xerces-c/faq-distrib.xml
  
  Index: faq-distrib.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/faq-distrib.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- faq-distrib.xml	17 Dec 1999 19:24:35 -0000	1.6
  +++ faq-distrib.xml	14 Feb 2002 16:44:20 -0000	1.7
  @@ -3,247 +3,270 @@
   
   <faqs title="Distributing &XercesCName;">
   
  -<faq title="Which DLL's do I need to distribute with my application?">
  +  <faq title="What compilers are being used on the supported platforms?">
   
  -<q>Which DLL's do I need to distribute with my application?</q>
  +    <q>What compilers are being used on the supported platforms?</q>
   
  -<a>
  -<p>There are currently two configurations in which Xerces-C binaries
  -are published. One is from the Apache site, while the other is
  -from the IBM Alphaworks Site.</p>
  -
  -<p>The <jump href="http://xml.apache.org/dist">Apache download
  -site</jump> binary drops only contain support for ASCII, UTF-8, UTF-16
  -and UCS4 encodings. The parser intrinsically supports transcoding
  -input files in these encodings to Unicode (all internal processing in
  -the parser happens in Unicode).  If you are using these Xerces-C
  -binaries in your application, then you only need to distribute
  -<em>one</em> file:<br></br>
  -&XercesCWindowsLib;.dll for Windows NT/95/98, or<br></br>
  -&XercesCUnixLib;.a for AIX, or<br></br>
  -&XercesCUnixLib;.so for Solaris/Linux, or<br></br>
  -&XercesCUnixLib;.sl for HP-UX.</p>
  -
  -<p>However, if your application needs to support more international
  -encodings, other than the one's mentioned above, then you may use the
  -XML4C binaries published by IBM at their <jump
  -href="http://www.alphaworks.ibm.com/tech/xml4c">AlphaWorks</jump>
  -site.  XML4C binaries use and include <jump
  -href="http://www10.software.ibm.com/developerworks/opensource/icu/index.html">IBM
  -Classes for Unicode</jump> (ICU) (also an open source project but
  -under <jump
  -href="http://www10.software.ibm.com/developerworks/opensource/license10.html">IBM
  -Public License</jump>) for transcoding and as a result can parse input
  -files in over 100 different encodings. If you are using XML4C binaries
  -in your application, then in <em>addition</em> to the Xerces-C library
  -file mentioned above, you also need to ship:</p>
  -
  -<ol>
  -<li><em>ICU shared library file</em>:<br></br>
  -icuuc.dll for Windows NT/95/98, or<br></br>
  -libicu-uc.a for AIX, or<br></br>
  -libicu-uc.so for Solaris/Linux, or<br></br>
  -libicu-uc.sl for HP-UX.</li>
  -<li><em>ICU converter files</em>: *.cnv.<br></br>
  -These are platform specific binary files which contain the tables used
  -to transcode characters from the respective encoding to Unicode. These
  -files may be found in the 'lib/icu/data' directory of the XML4C binary
  -archives.</li>
  -</ol>
  -</a>
  +    <a>
   
  -</faq>
  -
  -<faq title="How do I package the sources to create a binary drop?">
  -
  -<q>How do I package the sources to create a binary drop?</q>
  -
  -<a>
  -<p>You have to first compile the sources inside your IDE to
  -create the required DLLs and EXEs. Then you need to copy
  -over the binaries to another directory for the binary
  -drop. A perl script has been provided to give you a jump
  -start. You need to install perl on your machine for the script to work.
  -The file may not work if you have changed your
  -source tree. You have to modify the script to suit
  -your current state of the source tree. To invoke the
  -script, go to the \&lt;&XercesCProjectName;&gt;\scripts directory, and type:</p>
  -
  -<source>
  -perl packageBinaries.pl
  -</source>
  -
  -<p>You will get a message that looks like: </p>
  -
  -<source>
  -Usage is: packageBinaries &lt;options&gt;
  -          options are:  -s &lt;source_directory&gt;
  -                        -o &lt;target_directory&gt;
  -                        -c &lt;C compiler name&gt; (e.g. gcc or xlc)
  -                        -x &lt;C++ compiler name&gt; (e.g. g++ or xlC)
  -                        -m &lt;message loader&gt; can be 'inmem', 'icu' or 'iconv'
  -                        -n &lt;net accessor&gt; can be 'fileonly' or 'libwww'
  -                        -t &lt;transcoder&gt; can be 'icu' or 'native'
  -                        -r &lt;thread option&gt; can be 'pthread' or 'dce' (only used on HP-11)
  -                        -h to get help on these commands
  -Example: perl packageBinaries.pl -s$HOME/xerces-c_1_0_0 -o$HOME/xerces-c_1_0_0 -cgcc -xg++ -minmem -nfileonly -tnative
  -</source>
  -
  -<p>Make sure that your compiler can be invoked from the command line and
  -follow the instructions to produce a binary drop.</p>
  -</a>
  -
  -</faq>
  -
  -<faq title="When will a port to my platform be available?">
  +      <p>&XercesCProjectName; binaries has been built on the following platforms with
  +        these compilers</p>
   
  -<q>When will a port to my platform be available?</q>
  -
  -<a>
  -<p>Ports to other platforms are planned, but dates are not
  -fixed yet. In the meantime, look below to see a
  -description of the steps you need to follow to port it to
  -another platform.</p>
  -
  -<p>We strongly encourage you to submit the changes that were
  -required to make it work on another platform. We will
  -incorporate these changes in the source code base and make
  -them available in the future releases.</p>
  -
  -<p>All such changes may be sent to: &lt;<jump href="mailto:&XercesCEmailAddress;">&XercesCEmailAddress;</jump>&gt;.</p>
  -</a>
  +      <table>
  +        <tr>
  +          <td><em>Operating System</em></td>
  +          <td><em>Compiler</em></td>
  +        </tr>
  +        <tr>
  +          <td>Windows NT 4.0 SP5/98</td>
  +          <td>MSVC 6.0 SP3</td>
  +        </tr>
  +        <tr>
  +          <td>Redhat Linux 6.1</td>
  +          <td>egcs-2.91.66 and glibc-2.1.2-11</td>
  +        </tr>
  +        <tr>
  +          <td>AIX 4.3</td>
  +          <td>xlC_r 5.0.2</td>
  +        </tr>
  +        <tr>
  +          <td>Solaris 2.6</td>
  +          <td>Forte C++ Version 6 Update 2</td>
  +        </tr>
  +        <tr>
  +          <td>HP-UX 11.0</td>
  +          <td>aCC A.03.13 with pthreads</td>
  +        </tr>
  +      </table>
  +
  +    </a>
  +  </faq>
  +
  +    <faq title="What are the differences between Xerces-C and XML4C?">
  +        <q>What are the differences between Xerces-C and XML4C?</q>
  +        <a>
  +
  +            <p>Xerces-C has intrinsic support for ASCII, UTF-8, UTF-16
  +            (Big/Small Endian), UCS4 (Big/Small Endian), EBCDIC code pages IBM037 and
  +            IBM1140 encodings, ISO-8859-1 (aka Latin1) and Windows-1252. This means that it can parse
  +            input XML files in these above mentioned encodings.</p>
  +
  +            <p>However, if you wish to parse XML files in any other
  +            encodings, say in Shift-JIS, Big5 etc., then you cannot
  +            use Xerces-C. XML4C addresses this need. It combines Xerces-C
  +            and <jump
  +            href="http://oss.software.ibm.com/icu/">
  +            International Components for Unicode (ICU)</jump> and
  +            provides support for over 100 different encodings.</p>
  +
  +            <p>ICU is also an open source project but is licensed
  +            under the <jump
  +            href="http://www.x.org/terms.htm">
  +            X License</jump>. XML4C is published by IBM and
  +            can be downloaded from their <jump
  +            href="http://www.alphaworks.ibm.com/tech/xml4c">Alphaworks</jump>
  +            site. The license to use XML4C is simply to comply with
  +            the Apache license (because of Xerces-C) and X License (because of ICU).</p>
  +
  +            <p>XML4C binaries are published for Solaris using SunWorkshop
  +            compiler, HPUX 10.20 and 11.0 using CC and aCC, Redhat
  +            Linux using gcc, Windows NT using MSVC, AIX using xlC.</p>
  +
  +        </a>
  +    </faq>
  +
  +    <faq title="Which DLL's do I need to distribute with my application?">
  +        <q>Which DLL's do I need to distribute with my application?</q>
  +        <a>
  +            <p>As mentioned above, there are two configurations in
  +            which Xerces-C binaries are shipped. One is from the <jump
  +            href="http://xml.apache.org/xerces-c/index.html">Apache
  +            site</jump>, while the other is from IBM
  +            published at <jump
  +            href="http://www.alphaworks.ibm.com/tech/xml4c">IBM's
  +            Alphaworks Site</jump>.</p>
  +
  +            <p>If you are using the binaries from the <jump
  +            href="http://xml.apache.org/dist/xerces-c/">Apache download
  +            site</jump> site, then you only need to distribute
  +            <em>one</em> file:<br></br>
  +
  +            &XercesCWindowsDLL;.dll for Windows NT/95/98, or<br/>
  +            &XercesCUnixLib;.a for AIX, or<br/>
  +            &XercesCUnixLib;.so for Solaris/Linux, or<br/>
  +            &XercesCUnixLib;.sl for HP-UX.</p>
  +
  +            <p>However, if you are using the XML4C binaries then in
  +            <em>addition</em> to the library file
  +            mentioned above, you also need to ship:</p>
  +
  +            <ol>
  +                <li><em>ICU shared library file</em>:<br></br>
  +                    icuuc.dll for Windows NT/95/98, or<br></br>
  +                    libicuuc.a for AIX, or<br></br>
  +                    libicuuc.so for Solaris/Linux, or<br></br>
  +                    libicuuc.sl for HP-UX.</li>
  +
  +                <li><em>ICU converter data shared library file:</em><br></br>
  +                    icudata.dll for Windows NT/95/98, or<br></br>
  +                    libicudata.a for AIX, or<br></br>
  +                    libicudata.so for Solaris/Linux, or<br></br>
  +                    libicudata.sl for HP-UX.</li>
  +            </ol>
  +        </a>
  +    </faq>
  +
  +    <faq title="How do I package the sources to create a binary drop?">
  +
  +        <q>How do I package the sources to create a binary drop?</q>
  +
  +        <a>
  +            <p>You have to first compile the sources inside your IDE to
  +            create the required DLLs and EXEs. Then you need to copy
  +            over the binaries to another directory for the binary
  +            drop. A perl script has been provided to give you a jump
  +            start. You need to install perl on your machine for the script to work.
  +            If you have changed your source tree, you have to modify the script to suit
  +            your current directory structure. To invoke the
  +            script, go to the \&lt;&XercesCProjectName;&gt;\scripts directory, and type:</p>
  +<source>perl packageBinaries.pl</source>
  +
  +            <p>You will get a message that somewhat looks like this (changes always happpen,
  +            we are evolving you see!): </p>
  +
  +<source>Usage is: packageBinaries &lt;options&gt;
  +options are:  -s &lt;source_directory&gt;
  +              -o &lt;target_directory&gt;
  +              -c &lt;C compiler name&gt; (e.g. gcc or xlc_r)
  +              -x &lt;C++ compiler name&gt; (e.g. g++ or xlC_r)
  +              -m &lt;message loader&gt; can be 'inmem', 'icu' or 'iconv'
  +              -n &lt;net accessor&gt; can be 'fileonly' or 'libwww'
  +              -t &lt;transcoder&gt; can be 'icu' or 'native'
  +              -r &lt;thread option&gt; can be 'pthread' or 'dce' (only used on HP-11)
  +              -h to get help on these commands
  +Example: perl packageBinaries.pl -s$HOME/xerces-c_1_0_0
  +                                 -o$HOME/xerces-c_1_0_0
  +                                 -cgcc -xg++ -minmem
  +                                 -nfileonly -tnative</source>
  +
  +            <p>Make sure that your compiler can be invoked from the command line and
  +            follow the instructions to produce a binary drop.</p>
  +        </a>
  +    </faq>
  +
  +    <faq title="I do not see binaries for my platform. When will they be available?">
  +
  +        <q>I do not see binaries for my platform. When will they be available?"></q>
  +
  +        <a>
  +            <p>The reason why you see binaries only for some specific
  +            platforms is that we have had the maximum requests for
  +            them. Moreover, we have limited resources and hence cannot
  +            publish binaries for every platform. If you wish to
  +            contribute your time and effort in building binaries for a
  +            specific platform/environment then please send a mail to the
  +            <jump href="mailto:&XercesCEmailAddress;">Xerces-C mailing list</jump>.
  +            We can definitely use any extra help in this open source
  +            project</p>
  +        </a>
  +    </faq>
  +
  +
  +    <faq title="When will a port to my platform be available?">
  +
  +        <q>When will a port to my platform be available?</q>
  +
  +        <a>
  +          <p>We would like to see &XercesCProjectName; ported to as
  +          many platforms as there are. Again, due to limited resources
  +          we cannot do all the ports. We will help you make this port
  +          happen. Here are some <jump
  +          href="build-misc.html#faq-4">Porting
  +          Guidelines</jump>.</p>
  +
  +            <p>We strongly encourage you to submit the changes that
  +            are required to make it work on another platform. We will
  +            incorporate these changes in the source code base and make
  +            them available in the future releases.</p>
  +
  +            <p>All porting changes may be sent to the
  +            <jump href="mailto:&XercesCEmailAddress;">Xerces-C mailing list</jump>
  +            .</p>
  +        </a>
  +    </faq>
  +
  +
  +    <faq title="How can I port &XercesCProjectName; to my favourite platform?">
  +        <q>How can I port &XercesCProjectName; to my favourite platform?</q>
  +        <a>
  +          <p>Some porting information is mentioned on the <jump
  +          href="build-misc.html#faq-4">build</jump> page.</p>
  +        </a>
  +    </faq>
  +
  +
  +
  +    <faq title="What application do you use to create the documentation?">
  +        <q>What application do you use to create the documentation?</q>
  +        <a>
  +            <p>We have used an internal XML based application to create the
  +            documentation. The documentation files are all written in XML and the
  +            application, internally codenamed StyleBook, makes use of XSL to transform
  +            it into an HTML document that you are seeing right now.
  +            It is currently available on the
  +            <jump href="http://xml.apache.org/">Apache</jump> open source website as
  +            <jump href="http://xml.apache.org/cocoon/index.html">Cocoon</jump>.</p>
  +
  +	    <p>The API documentation is automatically generated using
  +		<jump href="http://www.stack.nl/~dimitri/doxygen/">doxygen</jump> and
  +		<jump href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</jump>.</p>
  +
  +        </a>
  +    </faq>
  +
  +
  +    <faq title="Can I use &XercesCProjectName; in my product?">
  +        <q>Can I use &XercesCProjectName; in my product?</q>
  +        <a>
  +            <p>Yes! Read the license agreement first and if you still
  +            have further questions, then please address them to the
  +            <jump href="mailto:&XercesCEmailAddress;">Xerces-C mailing list</jump>
  +            .</p>
   
  +        </a>
   </faq>
  -<faq title="How can I port &XercesCProjectName; to my favourite platform?">
  -
  -<q>How can I port &XercesCProjectName; to my favourite platform?</q>
  -
  -<a>
  -<p>All platform dependent code in &XercesCProjectName; has been isolated to
  -a couple of files, which should ease the porting effort.
  -Here are the basic steps that should be followed to port
  -&XercesCProjectName;.</p>
  -
  -<ol>
  -<li>The directory 'src/util/Platforms' contains the
  -platform sensitive files while 'src/util/Compilers' contains all
  -development environment sensitive files. Each
  -operating system has a file of its own and each
  -development environment has another one of its own too.
  -<br></br>
  -<br></br>
  -As an example, the Win32 platform as a Win32Defs.hpp file
  -and the Visual C++ environment has a VCPPDefs.hpp file.
  -These files set up certain define tokens, typedefs,
  -constants, etc... that will drive the rest of the code to
  -do the right thing for that platform and development
  -environment. AIX/CSet have their own AIXDefs.hpp and
  -CSetDefs.hpp files, and so on. You should create new
  -versions of these files for your platform and environment
  -and follow the comments in them to set up your own.
  -Probably the comments in the Win32 and Visual C++ will be
  -the best to follow, since that is where the main
  -development is done.</li>
  -
  -<li>Next, edit the file XML4CDefs.hpp , which is where all
  -of the fundamental stuff comes into the system. You will
  -see conditional sections in there where the above
  -per-platform and per-environment headers are brought in.
  -Add the new ones for your platform under the appropriate
  -conditionals.</li>
  -
  -<li>Now edit 'AutoSense.hpp'. Here we set canonical &XercesCProjectName;
  -internal #define tokens which indicate the platform and
  -compiler. These definitions are based on known platform
  -and compiler defines.
  -<br></br>
  -AutoSense.hpp is included in XML4CDefs.hpp and the
  -canonical platform and compiler settings thus defined will
  -make the particular platform and compiler headers to be
  -the included at compilation.
  -<br></br>
  -It might be a little tricky to decipher this file so be
  -careful. If you are using say another compiler on Win32,
  -probably it will use similar tokens so that the platform
  -will get picked up already using what is already there.</li>
  -
  -<li>Once this is done, you will then need to implement a
  -version of the 'platform utilities' for your platform.
  -Each operating system has a file which implements some
  -methods of the XMLPlatformUtils class, specific to that
  -operating system. These are not terribly complex, so it
  -should not be a lot of work. The Win32 verions is called
  -Win32PlatformUtils.cpp, the AIX version is
  -AIXPlatformUtils.cpp and so on. Create one for your
  -platform, with the correct name, and empty out all of the
  -implementation so that just the empty shells of the
  -methods are there (with dummy returns where needed to make
  -the compiler happy.) Once you've done that, you can start
  -to get it to build without any real implementation.</li>
  -
  -<li>Once you have the system building, then start
  -implementing your own platform utilties methods. Follow
  -the comments in the Win32 version as to what they do, the
  -comments will be improved in subsequent versions, but they
  -should be fairly obvious now. Once you have these
  -implementations done, you should be able to start
  -debugging the system using the demo programs.</li>
  -</ol>
   
  -<p>That is the work required in a nutshell.</p>
  -
  -</a>
  -
  -</faq>
  -<faq title="I'm interested to know what application you used to create
  -the documentation?">
   
  -<q>I'm interested to know what application you used to create
  -the documentation?</q>
  -
  -<a>
  -<p>We have used an internal XML based application to create the
  -documentation. The documentation files are all written in XML and the
  -application, internally codenamed StyleBook, makes use of XSL to transform
  -it into an HTML document that you are seeing right now.</p>
  -
  -<p>The API documentation was created using DOC++ which is
  -available from</p>
  -
  -<p><jump href="http://www.zib.de/Visual/software/doc++/index.html">
  -http://www.zib.de/Visual/software/doc++/index.html</jump></p>
  -</a>
  -
  -</faq>
  -<faq title="Can I get the source code for the C++ Builder TreeViewer">
  -
  -
  -<q>Can I get the source code for the C++ Builder TreeViewer
  -application?</q>
  -
  -<a>
  -<p>In view of the numerous requests that we have received for
  -the TreeViewer sample application (written using C++
  -Builder), we have decided to make it available as an
  -independent download from IBM's AlphaWorks portal. Please
  -note, this is provided on a "as-is, no support" basis.</p>
  -
  -<p>This demo application parses the XML file, using &XercesCProjectName;,
  -and displays the data as a tree.</p>
  -
  -<p>The URL is: <jump href="http://www.alphaworks.ibm.com">http://www.alphaWorks.ibm.com</jump></p>
  -
  -<p>We welcome your additional feedback at: &lt;<jump href="mailto:&XercesCEmailAddress;">&XercesCEmailAddress;</jump>&gt;</p>
  -</a>
  -
  -</faq>
  -<faq title="Can I use &XercesCProjectName; in my product?">
  -
  -<q>Can I use &XercesCProjectName; in my product?</q>
  -<a>
  -<p>Yes! Read the license agreement first and contact us at
  -&lt;<jump href="mailto:&XercesCEmailAddress;">&XercesCEmailAddress;</jump>&gt; if you need assistance.</p>
  -</a>
  -</faq>
  +   <faq title="How do I uninstall &XercesCName;?">
  +       <q>How do I uninstall &XercesCName;?</q>
  +       <a>
  +          <p>&XercesCName; only installs itself in a single directory and does not
  +          set any registry entries. Thus, to uninstall, you only need to remove the
  +          directory where you installed it, and all &XercesCName; related files will be
  +          removed.</p>
  +       </a>
  +   </faq>
  +   <faq title="I am getting a tar checksum error on Solaris. What's the problem?">
  +      <q>I am getting a tar checksum error on Solaris. What's the problem?</q>
  +      <a>
  +         <p>The problem is caused by a limitation in the original tar spec, which
  +            prevented it from archiving files with long pathnames.  Unfortunately,
  +            various current versions of tar use different extensions for eliminating
  +            this restriction which are incompatible with each other (or they do not
  +            remove the restriction at all).  Rather than altering the pathnames for
  +            the &XercesCName; package, which would make them compatible with the original
  +            tar spec but make it more difficult to know what was where, it was
  +            decided to use GNU tar (gtar), which handles arbitrarily long pathnames
  +            and is freely available on every platform on which &XercesCName; is
  +            supported.  If you don't already have GNU tar installed on your system,
  +            you can obtain it from the Free Software Foundation
  +            <jump href="http://www.gnu.org/software/tar/tar.html">
  +            http://www.gnu.org/software/tar/tar.html</jump>.  For additional
  +            background information on this problem, see the online manual
  +            <jump href="http://www.gnu.org/manual/tar/html_node/tar_117.html#SEC112">
  +            GNU tar and POSIX tar </jump> for the utility.
  +         </p>
  +      </a>
  +   </faq>
   </faqs>
   
  
  
  
  1.5       +114 -37   xml-site/sources/xerces-c/faq-other.xml
  
  Index: faq-other.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/faq-other.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- faq-other.xml	9 Dec 1999 02:07:59 -0000	1.4
  +++ faq-other.xml	14 Feb 2002 16:44:20 -0000	1.5
  @@ -1,46 +1,123 @@
  -<?xml version="1.0" standalone="no"?>
  +<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
   <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  -
   <faqs title="Other &XercesCName; Questions">
   
  -<faq title="I can't use C++. Do you have a Java version?">
  +  <faq title="How do I determine the version of &XercesCName; I am using?">
  +        <q>How do I determine the version of &XercesCName; I am using?</q>
  +        <a>
   
  -<q>I can't use C++. Do you have a Java version?</q>
  +           <p>The version string for &XercesCName; is in one of the header files. Look
  +           inside the file <code>src/util/XercesDefs.hpp</code> or, in the binary distribution, look in <code>include/utils/XercesDefs.hpp</code>. Search for the static variable <code>gXercesFullVersionStr</code> and look at its definition. (It is usually a string like "1_4_0" or
  +           something similar). This is the version of &XercesCName; you are using.</p>
   
  -<a> <p>Yes. The &XercesCProjectName; family of products also has a Java version.</p>
  -</a>
  +           <p>If you don't have the header files, you have to find the version
  +           information from the shared library name. On Windows NT/95/98 right click on
  +           the DLL name &XercesCWindowsDLL;.dll in the bin directory and look up
  +           properties. The version information may be found on the Version tab.</p>
   
  -</faq>
  -<faq title="I found a bug - what do I do?">
  -
  -<q>I found a bug - what do I do?</q>
  -
  -<a> <p>Send the bug report to &lt;<jump href="mailto:&XercesCEmailAddress;">&XercesCEmailAddress;</jump>&gt;
  -with the version number,
  -the exact OS release number, the compiler version number, and a
  -copy of the XML document that generates the error. The more
  -information you can provide, the faster we can get a fix into the
  -build!</p>
  -</a>
  -
  -</faq>
  -<faq title="I have a question not covered here, or in the documentation -- who
  -do I contact?">
  -
  -<q>I have a question not covered here, or in the documentation -- who
  -do I contact?</q>
  -
  -<a><p>
  -First post your question on the
  -<jump href="http://www.alphaworks.ibm.com/aw.nsf/discussion?ReadForm&amp;/forum/xml4c.nsf/discussion?createdocument">XML4C
  -discussion group on Alphaworks</jump>, and
  -someone from the XML4C development team will answer that question. The list is
  -monitored very closely and the response is usually within 24 hours. If you need to
  -ask a special question privately, send email to &lt;<jump href="mailto:&XercesCEmailAddress;">&XercesCEmailAddress;</jump>&gt; and give us
  -as much information as you can. We'll get back to you as soon as possible!
  -</p></a>
  +           <p>On AIX, just look for the library name &XercesCUnixLib;.a (or
  +           &XercesCUnixLib;.so on Solaris/Linux and &XercesCUnixLib;.sl on HP-UX). The
  +           version number is coded in the name of the library.</p>
  +        </a>
  +  </faq>
   
  -</faq>
  +  <faq title="I can't use C++. Do you have a Java version?">
   
  -</faqs>
  +    <q>I can't use C++. Do you have a Java version?</q>
  +
  +    <a>
  +
  +      <p>Yes. The Xerces family of products also has a Java version. More
  +        information is available at:
  +        <jump href="http://xml.apache.org/xerces-j/index.html">
  +        http://xml.apache.org/xerces-j/index.html</jump></p>
  +
  +    </a>
  +  </faq>
  +
  +
  +  <faq title="Where can I find additional information on XML?">
  +
  +    <q>Where can I find additional information on XML?</q>
  +
  +    <a>
  +
  +    <p>The Web. <jump href="http://www.oasis-open.org/cover/xml.html">
  +      http://www.oasis-open.org/cover/xml.html</jump> is an excellent place to start,
  +      with links to overviews, FAQs, specifications, industry news, applications and
  +      other software, related standards, etc.</p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="Is there any kind of support available for &XercesCName;?">
  +
  +    <q>Is there any kind of support available for &XercesCName;?</q>
  +
  +    <a>
  +
  +    <p>&XercesCName; comes with <em>no</em> formal support.</p>
  +
  +      <p>Every volunteer project obtains its strength from the people involved in
  +        it. Mailing lists provide a simple and effective communication mechanism. You
  +        are welcome to join any of these mailing lists (or all of them if you wish).
  +        You can choose to lurk, or to actively participate. It's up to you. Before you
  +        join these lists, you should look over the resources in the Reference Library
  +        section</p>
  +
  +      <p>Instructions for subscribing are at
  +        <jump
  +         href="http://xml.apache.org/mail.html">http://xml.apache.org/mail.html</jump>.
  +        Archives of the lists are available from
  +        <jump href="http://archive.covalent.net">http://archive.covalent.net</jump>
  +        </p>
  +
  +    </a>
  +  </faq>
   
  +  <faq title="I found a defect -- how do I report it?">
  +
  +    <q>I found a defect -- how do I report it?</q>
  +
  +    <a>
  +
  +      <p>See <jump href="bug-report.html">Bug Reporting</jump>.
  +      </p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="I have a patch to the &XercesCName; source code. How do I submit it?">
  +
  +    <q>I have a patch to the &XercesCName; source code. How do I submit it?</q>
  +
  +    <a>
  +
  +      <p>Mail it to the <jump href="mailto:&XercesCEmailAddress;">&XercesCName;
  +        mailing list</jump> at Apache. (You must be a
  +        subscriber to post to this list. But if you're considering changing the code
  +        you really want to be a subscriber, in any case.) There are no set rules about
  +        how or what must be included -- if you've fixed a problem or enhanced the code
  +        in some way, we really would like to get your changes, and will take them in
  +        any reasonable form.</p>
  +
  +      <p>Generally a diff of the changed files against the current sources from
  +        CVS is good, along with some kind of description of what the change is.
  +        (Working with the current sources is important!)</p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="Where can I get predefined character entity definitions?">
  +
  +    <q>Where can I get predefined character entity definitions??</q>
  +
  +    <a>
  +
  +    <p> Download <jump href="http://www.w3.org/TR/xhtml1/xhtml1.zip">
  +      http://www.w3.org/TR/xhtml1/xhtml1.zip. </jump></p>
  +
  +    </a>
  +  </faq>
  +
  +</faqs>
  
  
  
  1.7       +836 -578  xml-site/sources/xerces-c/faq-parse.xml
  
  Index: faq-parse.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/faq-parse.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- faq-parse.xml	12 Jan 2000 00:51:34 -0000	1.6
  +++ faq-parse.xml	14 Feb 2002 16:44:20 -0000	1.7
  @@ -1,711 +1,969 @@
  -<?xml version="1.0" standalone="no"?>
  +<?xml version="1.0" encoding = "iso-8859-1" standalone="no"?>
   <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
   
   <faqs title="Parsing with &XercesCName;">
  -    <faq title="Why does my application crash on AIX when I run it under a
  -         multi-threaded environment?">
   
  -      <q>Why does my application crash on AIX when I run it under a
  -        multi-threaded environment?</q>
  +  <faq title="Does &XercesCName; support Schema?">
   
  -      <a>
  -        <p>AIX maintains two kinds of libraries on the system,
  -          thread-safe and non-thread safe. Multi-threaded libraries on
  -          AIX follow a different naming convention, Usually the
  -          multi-threaded library names are followed with "_r". For
  -          example, libc.a is single threaded whereas libc_r.a is
  -          multi-threaded.</p>
  -
  -        <p>To make your multi-threaded application run on AIX, you
  -          MUST ensure that you do not have a 'system library path' in
  -          your LIBPATH environment variable when you run the
  -          application. The appropriate libraries (threaded or
  -          non-threaded) are automatically picked up at runtime. An
  -          application usually crashes when you build your application
  -          for multi-threaded operation but don't point to the
  -          thread-safe version of the system libraries. For example,
  -          LIBPATH can be simply set as:</p>
  +    <q> Does &XercesCName; support Schema?</q>
   
  -        <source>
  -LIBPATH=$HOME/&lt;&XercesCProjectName;&gt;/lib
  -</source>
  +    <a>
   
  -        <p>Where &lt;&XercesCProjectName;&gt; points to the directory where
  -          &XercesCProjectName; application resides.</p>
  +      <p>Yes.  The &XercesCName; &XercesCVersion; contains an implementation
  +         of the W3C XML Schema Language, a recommendation of the Worldwide Web Consortium
  +         available in three parts:
  +         <jump href="http://www.w3.org/TR/xmlschema-0/">XML Schema: Primer</jump> and
  +         <jump href="http://www.w3.org/TR/xmlschema-1/">XML Schema: Structures</jump> and
  +         <jump href="http://www.w3.org/TR/xmlschema-2/">XML Schema: Datatypes</jump>.
  +         We consider this implementation complete.  See
  +         <jump href="schema.html#limitation">the Schema page</jump> for limitations.</p>
   
  -        <p>If for any reason, unrelated to &XercesCProjectName;, you need to
  -          keep a 'system library path' in your LIBPATH environment
  -          variable, you must make sure that you have placed the
  -          thread-safe path before you specify the normal system
  -          path. For example, you must place <ref>/lib/threads</ref> before
  -          <ref>/lib</ref> in your LIBPATH variable. That is to say your
  -          LIBPATH may look like this:</p>
  +    </a>
  +  </faq>
   
  -        <source>
  -export LIBPATH=$HOME/&lt;&XercesCProjectName;&gt;/lib:/usr/lib/threads:/usr/lib
  -</source>
  +  <faq title="Why &XercesCName; does not support this particular Schema feature?">
  +
  +    <q> Why &XercesCName; does not support this particular Schema feature?</q>
   
  -        <p>Where /usr/lib is where your system libraries are.</p>
  -      </a>
  +    <a>
  +
  +      <p>The &XercesCName; &XercesCVersion; contains an implementation
  +         of the W3C XML Schema Language, a recommendation of the Worldwide Web Consortium
  +         available in three parts:
  +         <jump href="http://www.w3.org/TR/xmlschema-0/">XML Schema: Primer</jump> and
  +         <jump href="http://www.w3.org/TR/xmlschema-1/">XML Schema: Structures</jump> and
  +         <jump href="http://www.w3.org/TR/xmlschema-2/">XML Schema: Datatypes</jump>.
  +         We consider this implementation complete.  See
  +         <jump href="schema.html#limitation">the Schema page</jump> for limitations.</p>
  +
  +      <p>If you find any Schema feature which is specified in the W3C XML Schema Language
  +         Recommendation does not work with &XercesCName; &XercesCVersion;, we encourage
  +         the submission of bugs as described in
  +         <jump href="http://xml.apache.org/xerces-c/bug-report.html">Bug-Reporting</jump> page.
  +       </p>
  +
  +    </a>
     </faq>
   
  -  <faq title="What compilers are being used on the supported platforms?">
  +  <faq title="Why does my application crash on AIX when I run it under a
  +         multi-threaded environment?">
   
  -    <q>What compilers are being used on the supported platforms?</q>
  +    <q>Why does my application crash on AIX when I run it under a
  +      multi-threaded environment?</q>
   
       <a>
  -      <p>&XercesCProjectName; has been built on the following platforms with these
  -        compilers</p>
   
  -      <table>
  -        <tr><td><em>Operating System</em></td><td><em>Compiler</em></td></tr>
  -        <tr><td>Windows NT SP5/98</td><td>MSVC 6.0</td></tr>
  -        <tr><td>Redhat Linux 6.0</td><td>gcc</td></tr>
  -        <tr><td>AIX 4.1.4  and higher</td><td>xlC 3.1</td></tr>
  -        <tr><td>Solaris 2.6</td><td>CC version 4.2</td></tr>
  -        <tr><td>HP-UX B10.2</td><td>aCC and CC</td></tr>
  -        <tr><td>HP-UX B11</td><td>aCC and CC</td></tr>
  -      </table>
  +      <p>AIX maintains two kinds of libraries on the system, thread-safe and
  +        non-thread safe. Multi-threaded libraries on AIX follow a different naming
  +        convention, Usually the multi-threaded library names are followed with "_r".
  +        For example, libc.a is single threaded whereas libc_r.a is multi-threaded.</p>
  +
  +      <p>To make your multi-threaded application run on AIX, you <em>must</em>
  +        ensure that you do not have a "system library path" in your <code>LIBPATH</code>
  +        environment variable when you run the application. The appropriate
  +        libraries (threaded or non-threaded) are automatically picked up at runtime. An
  +        application usually crashes when you build your application for multi-threaded
  +        operation but don't point to the thread-safe version of the system libraries.
  +        For example, LIBPATH can be simply set as:</p>
  +
  +<source>LIBPATH=$HOME/&lt;&XercesCProjectName;&gt;/lib</source>
  +
  +      <p>Where &lt;&XercesCProjectName;&gt; points to the directory where the
  +        &XercesCProjectName; application resides.</p>
  +
  +      <p>If, for any reason unrelated to &XercesCProjectName;, you need to keep a
  +        "system library path" in your LIBPATH environment variable, you must make sure
  +        that you have placed the thread-safe path before you specify the normal system
  +        path. For example, you must place <ref>/lib/threads</ref> before
  +        <ref>/lib</ref> in your LIBPATH variable. That is to say your LIBPATH may look
  +        like this:</p>
  +
  +<source>export LIBPATH=$HOME/&lt;&XercesCProjectName;&gt;/lib:/usr/lib/threads:/usr/lib</source>
  +
  +      <p>Where /usr/lib is where your system libraries are.</p>
  +
       </a>
     </faq>
   
  -  <faq title="I cannot run my sample applications. What is wrong?">
  +  <faq title="I cannot run the sample applications. What is wrong?">
  +
  +    <q>I cannot run the sample applications. What is wrong?</q>
   
  -    <q>I cannot run my sample applications. What is wrong?</q>
       <a>
  -      <p>There are two major installation issues which must be dealt
  -        with in order to use &XercesCProjectName; from your applications. The
  -        DLL or shared library must be locatable via the system's
  -        environment. And, the converter files used by &XercesCProjectName; for
  -        its transcoding must be locatable.
  -      </p>
  -      <p>On UNIX platforms you need to ensure that your library search
  -        environment variable includes the directory which has the
  -        &XercesCProjectName; shared library (On AIX, this is LIBPATH, on
  -        Solaris and Linux it is LD_LIBRARY_PATH while on HP-UX it is
  -        SHLIB_PATH). Thus, if you installed your binaries under
  -        <code>$HOME/fastxmlparser</code>, you need to point your
  -        library path to that directory.
  -      </p>
   
  -      <source>
  -export LIBPATH=$LIBPATH:$HOME/fastxmlparser/lib # (AIX)
  +      <p>In order to run an application built using &XercesCProjectName; you must
  +        set up your path and library search path properly. In the stand-alone version
  +        from Apache, you must have the &XercesCName; runtime library available from
  +        your path settings. On Windows this library is called <code>&XercesCWindowsDLL;.dll</code> which must be available from your <code>PATH</code> settings. (Note that now there are separate debug and release dlls for
  +        Windows. If the release dll is named <code>&XercesCWindowsDLL;.dll</code> then the debug dll is named <code>&XercesCWindowsDLL;d.dll)</code>. On UNIX platforms the library is called <code>&XercesCUnixLib;.so</code> (or <code>.a</code> or <code>.sl</code>) which must be available from your <code>LD_LIBRARY_PATH</code> (or <code>LIBPATH</code> or <code>SHLIB_PATH</code>) environment variable.</p>
   
  +      <p>Thus, if you installed your binaries under <code>$HOME/fastxmlparser</code>, you need to point your library path to that directory.</p>
  +
  +<source>export LIBPATH=$LIBPATH:$HOME/fastxmlparser/lib # (AIX)
   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/fastxmlparser/lib # (Solaris, Linux)
  +export SHLIB_PATH=$SHLIB_PATH:$HOME/fastxmlparser/lib # (HP-UX)</source>
   
  -export SHLIB_PATH=$SHLIB_PATH:$HOME/fastxmlparser/lib # (HP-UX)
  -</source>
  +      <p>If you are using the enhanced version of this parser from IBM, you will
  +        need to put in two additional DLLs. In the Windows build these are <code>icuuc.dll</code> and <code>icudata.dll</code> which must be available from your PATH settings. On UNIX, these
  +        libraries are called <code>libicuuc.so</code> and <code>libicudata.so</code> (or <code>.sl</code> for HP-UX or <code>.a</code> for AIX) which must be available from your library search path.</p>
  +
  +    </a>
  +  </faq>
   
  -      <p>On Win32, you would ensure that the &XercesCProjectName; DLLs are in
  -        the PATH environment.</p>
  +  <faq title="I just built my own application using the &XercesCName; parser. Why does it crash?">
  +
  +    <q>I just built my own application using the &XercesCName; parser. Why does
  +      it crash?</q>
  +
  +    <a>
  +
  +      <p>In order to work with the &XercesCName; parser, you have to first
  +        initialize the XML subsystem. The most common mistake is to forget this
  +        initialization. Before you make any calls to &XercesCName; APIs, you must
  +        call XMLPlatformUtils::Initialize(): </p>
  +
  +<source>
  +try {
  +   XMLPlatformUtils::Initialize();
  +}
  +catch (const XMLException&amp; toCatch) {
  +   // Do your failure processing here
  +}</source>
  +
  +      <p>This initializes the &XercesCProjectName; system and sets its internal
  +        variables. Note that you must the include <code>util/PlatformUtils.hpp</code> file for this to work.</p>
   
  -      <p>For the transcoding files <code>(*.cnv)</code>, the
  -        easiest mechanism (which is used in the binary release) is to
  -        place them relative to the shared library or DLL. The
  -        transcoding converter files should be in the
  -        <code>icu/data</code> directory relative to the shared library
  -        or DLL. This will allow them to be located automatically.</p>
  -
  -      <p>However, if you redistribute &XercesCProjectName; within some other
  -        product, and cannot maintain this relationship, or if your
  -        build scenario does not allow you to maintain this
  -        relationship during debugging for instance, you can use the
  -        ICU_DATA environment variable to point to these converter
  -        files (make sure the variable ends with a backslash '\' on Windows platforms).
  -    This variable may be set system wide, within a
  -        particular command window, or just within the client
  -        application or higher level libraries, as is deemed
  -        necessary. It must be set before the XML system is initialized
  -        (see below.)
  -      </p>
       </a>
     </faq>
   
  -  <faq title="I just built my own application using the &XercesCProjectName; parser. Why does it
  -       crash?">
  -
  -    <q>I just built my own application using the &XercesCProjectName; parser. Why does it
  -      crash?</q>
  -    <a>
  -      <p>In order to work with the &XercesCProjectName; parser, you have to
  -        first initialize the XML subsystem. The most common mistake is
  -        to forget this initialization. Before you make any calls to
  -        &XercesCProjectName; APIs, you must call</p>
  -
  -      <source>
  -    XMLPlatformUtils::Initialize():
  -    try {
  -        XMLPlatformUtils::Initialize();
  -    }
  -    catch (const XMLException&amp; toCatch) {
  -        // Do your failure processing here
  -    }
  -</source>
  +  <faq title="Is &XercesCName; thread-safe?">
   
  -      <p>This initializes the &XercesCProjectName; system and sets its
  -        internal variables.  Note that you must the include
  -        <code>util/PlatformUtils.hpp</code> file for this to work.</p>
  +    <q>Is &XercesCName; thread-safe?</q>
   
  -      <p>The second common problem is the absence of the transcoding
  -        converter files <code>(*.cnv)</code>. This problem has a
  -        simple fix, if you understand how the transcoding converter
  -        files are searched.</p>
  +    <a>
   
  -      <p>&XercesCProjectName; first looks for the environment variable
  -        ICU_DATA. If it finds this variable in your environment
  -        settings, then it assumes that the transcoding converter files
  -        are kept in that directory.  Thus, for example, if you had set
  -        your environment variable to (say):</p>
  +      <p>This is not a question that has a simple yes/no answer. Here are the
  +        rules for using &XercesCName; in a multi-threaded environment:</p>
   
  -      <source>
  -set ICU_DATA=d:\my&XercesCProjectName;\icu\data\
  -      </source>
  +      <p>Within an address space, an instance of the parser may be used without
  +        restriction from a single thread, or an instance of the parser can be accessed
  +        from multiple threads, provided the application guarantees that only one thread
  +        has entered a method of the parser at any one time.</p>
   
  -      <p>The transcoding converter files (all files having extension
  -        .cnv and convrtrs.txt) will be searched under
  -        <code>d:\my&XercesCProjectName;\icu\data</code></p>
  +      <p>When two or more parser instances exist in a process, the instances can
  +        be used concurrently, without external synchronization. That is, in an
  +        application containing two parsers and two threads, one parser can be running
  +        within the first thread concurrently with the second parser running within the
  +        second thread.</p>
   
  -      <p>If you have not set your environment variable, then the
  -        search for the transcoding converters is done relative to the
  -        location of the shared library &XercesCWindowsLib;.dll (or
  -        &XercesCUnixLib;.a on AIX and &XercesCUnixLib;.so on Solaris and
  -        Linux, &XercesCUnixLib;.sl on HP-UX). Thus if your shared library
  -        is in <code>d:\fastxmlparser\lib</code>, then your transcoding
  -        converter files should be in
  -        <code>d:\fastxmlparser\lib\icu\data.</code></p>
  +      <p>The same rules apply to &XercesCName; DOM documents. Multiple document
  +        instances may be concurrently accessed from different threads, but any given
  +        document instance can only be accessed by one thread at a time.</p>
   
  -      <p>Before you run your application, make sure that you have
  -        covered the two possibilities mentioned above.</p>
  +      <p>DOMStrings allow multiple concurrent readers. All DOMString const
  +        methods are thread safe, and can be concurrently entered by multiple threads.
  +        Non-const DOMString methods, such as <code>appendData()</code>, are not thread safe and the application must guarantee that no other
  +        methods (including const methods) are executed concurrently with them.</p>
  +
  +      <p>The application also needs to guarantee that only one thread has entered either the
  +        method XMLPlatformUtils::Initialize() or the method XMLPlatformUtils::Terminate() at any
  +        one time.</p>
   
       </a>
     </faq>
   
  +  <faq title="Can't debug into the &XercesCName; DLL with the MSVC debugger">
   
  +    <q> The libs/dll's I downloaded keep me from using the debugger in VC6.0. I
  +      am using the 'D', debug versions of them. "no symbolic information found" is
  +      what it says. Do I have to compile everything from source to make it work?</q>
   
  -  <faq title="Is &XercesCProjectName; thread-safe?">
  +    <a>
   
  -    <q>Is &XercesCProjectName; thread-safe?</q>
  +      <p>Unless you have the .pdb files, all you are getting with the debug
  +        library is that it uses the debug heap manager, so that you can compile your
  +        stuff in debug mode and not be dangerous. If you want full symbolic info for
  +        the &XercesCName; library, you'll need the .pdb files, and to get those, you'll
  +        need to rebuild the &XercesCName; library.</p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="First-chance exception in Microsoft debugger">
  +
  +    <q>"First-chance exception in DOMPrint.exe (KERNEL32.DLL): 0xE06D7363:
  +      Microsoft C++ Exception." I am always getting this message when I am using the
  +      parser. My programs are terminating abnormally. Even the samples are giving
  +      this exception. I am using Visual C++ 6.0 with latest service pack
  +      installed.</q>
   
       <a>
  -      <p>This is not a question that has a simple yes/no answer. Here are
  -        the rules for using &XercesCProjectName; in a multi-threaded environment:</p>
   
  -      <p>Within an address space, an instance of the parser may be used
  -        without restriction from a single thread, or an instance of the
  -        parser can be accessed from multiple threads, provided the
  -        application guarantees that only one thread has entered a method
  -        of the parser at any one time.</p>
  +      <p>&XercesCName; uses C++ exceptions internally, as part of its normal
  +        operation. By default, the MSVC debugger will stop on each of these with the
  +        "First-chance exception ..." message.</p>
   
  -      <p>When two or more parser instances exist in a process, the
  -        instances can be used concurrently, and without external
  -        synchronization.  That is, in an application containing two
  -        parsers and two threads, one pareser can be running within the
  -        first thread concurrently with the second parser running
  -        within the second thread.</p>
  +      <p>To stop this from happening do this:</p>
  +
  +      <ul>
  +        <li>start debugging (so the debug menu appears)</li>
  +        <li>from the debug menu select "Exceptions"</li>
  +        <li>from the box that opens select "Microsoft C++ Exception" and set it
  +          to "Stop if not handled" instead of "stop always".</li>
  +      </ul>
   
  -      <p>The same rules apply to &XercesCProjectName; DOM documents -
  -        multiple document instances may be concurrently accessed from
  -        different threads, but any given document instance can only be
  -        accessed by one thread at a time.</p>
  +      <p>You'll still land in the debugger if your program is terminating
  +        abnormally, but it will be at your problem, not from the internal &XercesCName;
  +        exceptions.</p>
   
  -      <p>DOMStrings allow multiple concurrent readers.  All DOMString
  -        const methods are thread safe, and can be concurrently entered
  -        by multiple threads.  Non-const DOMString methods, such as
  -        appendData(), are not thread safe and the application must
  -        guarantee that no other methods (including const methods) are
  -        executed concurrently with them.</p>
       </a>
     </faq>
   
  -	<faq title="Why does my multi-threaded application crash on Solaris?">
  -			 <q>Why does my multi-threaded application crash on Solaris?</q>
  -			 <a>
  -			 <p>The problem appears because the throw call on Solaris 2.6 is not multi-thread safe.
  -          Sun Microsystems provides a patch to solve this problem. To get the latest patch for
  -          solving this problem, go to <jump href="http://sunsolve.sun.com">
  -					http://sunsolve.sun.com</jump> and get the appropriate patch for
  -          your operating system. For Intel machines running Solaris, you need to get Patch ID
  -          104678. For SPARC machines you need to get Patch ID #105591.</p>
  -				</a>
  -	</faq>	
  -	
  -	
  -  <faq title="How do I find out what version of &XercesCProjectName; I am using?">
  +  <faq title="I am seeing memory leaks in &XercesCName;. Are they real?">
   
  -    <q>How do I find out what version of &XercesCProjectName; I am using?</q>
  +    <q>I am seeing memory leaks in &XercesCName;. Are they real?</q>
   
       <a>
  -      <p>The version string for &XercesCProjectName; happens to be in one of
  -        the source files. Look inside the file
  -        <code>src/util/XML4CDefs.hpp</code> and find out what the
  -        static variable <code>gXML4CFullVersionStr</code> is defined
  -        to be. (It is usually of type 3.0.0 or something
  -        similar). This is the version of XML you are using.</p>
   
  -      <p>If you don't have the source code, you have to find the version
  -        information from the shared library name. On Windows NT/95/98
  -        right click on the DLL name &XercesCWindowsLib;.dll in the bin directory
  -        and look up properties. The version information may be found on
  -        the Version tab.</p>
  +      <p>The &XercesCName; library allocates and caches some commonly reused
  +        items. The storage for these may be reported as memory leaks by some heap
  +        analysis tools; to avoid the problem, call the function <code>XMLPlatformUtils::Terminate()</code> before your application exits. This will free all memory that was being
  +        held by the library.</p>
   
  -      <p>On AIX, just look for the library name &XercesCUnixLib;.a (or
  -        &XercesCUnixLib;.so on Solaris/Linux and &XercesCUnixLib;.sl on
  -        HP-UX).  The version number is coded in the name of the
  -        library.</p>
  +      <p>For most applications, the use of <code>Terminate()</code> is optional. The system will recover all memory when the application
  +        process shuts down. The exception to this is the use of &XercesCName; from DLLs
  +        that will be repeatedly loaded and unloaded from within the same process. To
  +        avoid memory leaks with this kind of use, <code>Terminate()</code> must be called before unloading the &XercesCName; library</p>
  +
  +      <p>To ensure all the memory held by the parser are freed, the number of XMLPlatformUtils::Terminate() calls
  +         should match the number of XMLPlatformUtils::Initialize() calls.
  +      </p>
       </a>
     </faq>
   
  -  <faq title="How do I uninstall &XercesCProjectName;?">
  +  <faq title="Can I validate the data contained in a DOM tree?">
  +
  +    <q>Is there a facility in &XercesCName; to validate the data contained in a
  +      DOM tree? That is, without saving and re-parsing the source document?</q>
   
  -    <q>How do I uninstall &XercesCProjectName;?</q>
       <a>
  -      <p>&XercesCProjectName; only installs itself in a single directory and
  -        does not set any registry entries. Thus, to un-install, you
  -        only need to remove the directory where you installed it, and
  -        all &XercesCProjectName; related files will be removed.</p>
  +
  +      <p>No. This is a frequently requested feature, but at this time it is not
  +        possible to feed XML data from the DOM directly back to the DTD validator. The
  +        best option for now is to generate XML source from the DOM and feed that back
  +        into the parser.</p>
  +
       </a>
     </faq>
   
  -  <faq title="How do I add an additional transcoding file in the existing set?">
  +  <faq title="Can I use Xerces to perform write validation">
   
  -    <q>How do I add an additional transcoding file in the existing
  -    set?</q>
  +    <q>Can I use Xerces to perform "write validation" (which is having an
  +      appropriate DTD and being able to add elements to the DOM whilst validating
  +      against the DTD)? Is there a function that I have totally missed that creates
  +      an XML file from a DTD, (obviously with the values missing, a skeleton, as it
  +      were.)</q>
   
       <a>
  -      <p>Transcoding files shipped with binary drops of &XercesCProjectName;
  -        exist in the <code>bin/icu/data</code> directory on Win32 and
  -        in the <code>lib/icu/data</code> directory under various
  -        unix's.  All transcoding files have the extension .cnv and are
  -        platform specific binary files. The ICU drop provides the
  -        utility 'makeconv' to generate these binary files. To add an
  -        additional transcoding file, you need to first define your new
  -        code-set in ASCII format (which has the extension .ucm). The
  -        coding format for an encoding may be obtained from one of the
  -        existing files in icu/data (in the source drop). After you
  -        create the .ucm file for your new language, you need to
  -        convert it to a binary form using makeconv.</p>
  -
  -      <p>Thus, if your new code-set is defined in file
  -        mynewcodeset.ucm , you would type:</p>
   
  -      <source>
  -makeconv mynewcodeset.ucm
  -      </source>
  +      <p>The answers are: "No" and "No." Write Validation is a commonly requested
  +        feature, but &XercesCName; does not have it yet.</p>
   
  -      <p>...to create the binary transcoding file mynewcodeset.cnv. Make
  -        sure that this .cnv file is packaged in the same place as the
  -        others, i.e. in a directory <code>icu/data</code> relative to
  -        where your shared library is.</p>
  +      <p>The best you can do for now is to create the DOM document, write it back
  +        as XML and re-parse it.</p>
   
  -      <p>You can also add aliases for this encoding in the file
  -        'convrtrs.txt', also present in the same directory as the
  -        converter files.</p>
       </a>
     </faq>
   
  -  <faq title="How are entity reference nodes handled in DOM ?">
  +  <faq title="Why does my multi-threaded application crash on Solaris?">
   
  -    <q>How are entity reference nodes handled in DOM ?</q>
  +    <q>Why does my multi-threaded application crash on Solaris?</q>
   
       <a>
  -      <p>If you are using the native DOM classes, the function
  -        <code>setExpandEntityReferences</code> controls how entities appear in the
  -        DOM tree. When setExpandEntityReferences is set to false (the
  -        default), an occurance of an entity reference in the XML
  -        document will be represented by a subtree with an
  -        EntityReference node at the root whose children represent the
  -        entity expansion. Entity expansion will be a DOM tree
  -        representing the structure of the entity expansion, not a text
  -        node containing the entity expansion as text.</p>
   
  -      <p>If setExpandEntityReferences is true, an entity reference in the
  -        XML document is represented by only the nodes that represent the
  -        entity expansion. The DOM tree will not contain any
  -        entityReference nodes.</p>
  +      <p>The problem appears because the throw call on Solaris 2.6 is not
  +        multi-thread safe. Sun Microsystems provides a patch to solve this problem. To
  +        get the latest patch for solving this problem, go to
  +        <jump href="http://sunsolve.sun.com">SunSolve.sun.com</jump> and get the
  +        appropriate patch for your operating system. For Intel machines running
  +        Solaris, you need to get Patch ID 104678. For SPARC machines you need to get
  +        Patch ID #105591.</p>
  +
       </a>
     </faq>
   
  -  <faq title="What kinds of URLs are currently supported in &XercesCProjectName;?">
  +  <faq title="Why does my application gives unresolved linking errors on Solaris?">
  +
  +    <q>Why does my application gives unresolved linking errors on Solaris?</q>
   
  -    <q>What kinds of URLs are currently supported in &XercesCProjectName;?</q>
       <a>
  -      <p>We now have a spec. compliant, but limited, implementation of
  -        the class URL.</p>
   
  -      <ul>
  -        <li>The only protocol currently supported is the "file://"
  -          which is used to refer to files locally.</li>
  +      <p>On Solaris there are a few things that need to be done before you
  +        execute your application using &XercesCName;. In case you're using the
  +        binary build of &XercesCName; make sure that the OS and compiler are
  +        the same version as the ones used to build the binary. Different OS and
  +        compiler versions might cause unresolved linking problems or compilation
  +        errors. If the versions are different, rebuild the &XercesCName; library on
  +        your system before building your application. If you're using ICU (which is
  +        packaged with XML4C) you need to rebuild the compatible version of ICU
  +        first.</p>
   
  -        <li>Only the 'localhost' string is supported in the host
  -          placeholder in the URL syntax.</li>
  -      </ul>
  +      <p>Also check that the library path is set properly and that the correct
  +        versions of <code>gmake</code> and <code>autoconf</code> are on your system.</p>
  +
  +    </a>
  +  </faq>
   
  -      <p>This should work for command line arguments to samples as well as
  -        any usage in the XML file when referring to an external file.</p>
  +  <faq title="Why do I get Internal Compiler Error when compiling &XercesCName; for a 64bit target with gcc?">
  +    <q>Why do I get Internal Compiler Error when compiling &XercesCName; for a 64bit target with gcc?</q>
  +    <a>
  +      <p>This is a compiler problem.  Try turning off optimization to bypass the problem.</p>
  +    </a>
  +  </faq>
   
  -      <p>Examples of what this implementation will allow you to do are:</p>
   
  -      <source>
  -e:\&gt;domcount file:///e:/&XercesCProjectName;/build/win32/vc6/debug/abc.xml
  +  <faq title="How are entity reference nodes handled in DOM?">
   
  -or
  +    <q>How are entity reference nodes handled in DOM?</q>
   
  -e:\&gt;domcount file::///&XercesCProjectName;/build/win32/vc6/debug/abc.xml
  -e:\&gt;domcount file::///d:/abc.xml
  +    <a>
   
  -or
  +      <p>If you are using the native DOM classes, the function <code>setExpandEntityReferences</code> controls how entities appear in the DOM tree. When
  +        setExpandEntityReferences is set to false (the default), an occurrence of an
  +        entity reference in the XML document will be represented by a subtree with an
  +        EntityReference node at the root whose children represent the entity expansion.
  +        Entity expansion will be a DOM tree representing the structure of the entity
  +        expansion, not a text node containing the entity expansion as text.</p>
   
  -e:\>domcount file:://localhost/d:/abc.xml
  -      </source>
  +      <p>If setExpandEntityReferences is true, an entity reference in the XML
  +        document is represented by only the nodes that represent the entity expansion.
  +        The DOM tree will not contain any entityReference nodes.</p>
   
  -      <p>Example of what you cannot do is:</p>
  +    </a>
  +  </faq>
   
  -      <p>Refer to files using the 'file://' syntax and giving a
  -        relative path to the file.</p>
  +  <faq title="What kinds of URLs are currently supported in &XercesCName;?">
   
  -      <p>This implies that if you are using the 'file://' syntax to
  -        refer to external files, you have to give the complete path to
  -        files even in the current directory.</p>
  +    <q>What kinds of URLs are currently supported in &XercesCName;?</q>
   
  -      <p>You always have the option of not using the 'file://' syntax
  -        and referring to files by just giving the filename or a
  -        relative path to it as in:</p>
  +    <a>
  +
  +      <p>The <code>XMLURL</code> class provides for limited URL support. It understands the <code>file://, http://</code>, and <code>ftp://</code> URL types, and is capable or parsing them into their constituent
  +        components, and normalizing them. It also supports the commonly required action
  +        of conglomerating a base and relative URL into a single URL. In other words, it
  +        performs the limited set of functions required by an XML parser.</p>
  +
  +      <p>Another thing that URLs commonly do are to create an input stream that
  +        provides access to the entity referenced. The parser, as shipped, only supports
  +        this functionality on URLs in the form <code>file:///</code> and <code>file://localhost/</code>, i.e. only when the URL refers to a local file.</p>
  +
  +      <p>You may enable support for HTTP and FTP URLs by implementing and
  +        installing a NetAccessor object. When a NetAccessor object is installed, the
  +        URL class will use it to create input streams for the remote entities referred
  +        to by such URLs.</p>
   
  -      <source>
  -domcount abc.xml
  -      </source>
       </a>
     </faq>
   
  -  <faq title="Can I use &XercesCProjectName; to parse HTML?">
  +  <faq title="How can I add support for URLs with HTTP/FTP protocols?">
   
  -    <q>Can I use &XercesCProjectName; to parse HTML?</q>
  +    <q>How can I add support for URLs with HTTP/FTP protocols?</q>
   
       <a>
  -      <p>Yes, if it follows the XML spec rules. Most HTML, however,
  -        does not follow the XML rules, and will therefore generate XML
  -        well-formedness errors.</p>
  +
  +      <p>Support for the http: protocol is now included by default on all
  +        platforms.</p>
  +
  +      <p>To address the need to make remote connections to resources specified
  +        using additional protocols, ftp for example, &XercesCName; provides the <code>NetAccessor</code> interface. The header file is <code>src/util/XMLNetAccessor.hpp</code>. This interface allows you to plug in your own implementation of URL
  +        networking code into the &XercesCName; parser.</p>
  +
       </a>
     </faq>
   
  +  <faq title="Can I use &XercesCName; to parse HTML?">
  +
  +    <q>Can I use &XercesCName; to parse HTML?</q>
  +
  +    <a>
  +
  +      <p>Yes, but only if the HTML follows the rules given in the
  +        <jump href="http://www.w3.org/TR/REC-xml">XML specification</jump>. Most HTML,
  +        however, does not follow the XML rules, and will generate XML well-formedness
  +        errors.</p>
  +
  +    </a>
  +  </faq>
   
     <faq title="I keep getting an error: &quot;invalid UTF-8 character&quot;. What's wrong?">
   
  -    <q>I keep getting an error: "invalid UTF-8 character". What's
  -    wrong?</q>
  +    <q>I keep getting an error: "invalid UTF-8 character". What's wrong?</q>
   
       <a>
  -      <p>There are many Unicode characters that are not allowed in
  -        your XML document, according to the XML spec. Typical
  -        disallowed characters are control characters, even if you
  -        escape them using the Character Reference form: See the XML
  -        spec, sections 2.2 and 4.1 for details. If the parser is
  -        generating this error, it is very likely that there's a
  -        character in there that you can't see.  You can generally use
  -        a UNIX command like "od -hc" to find it.</p>
   
  -      <p>Another reason for this error is that your file is in some
  -        non UTF/ASCII encoding but you gave no encoding="" string in
  -        your file to tell the parser what its real encoding is.</p>
  +      <p>Most commonly, the XML <code>encoding =</code> declaration is either incorrect or missing. Without a declaration, XML
  +        defaults to the use utf-8 character encoding, which is not compatible with the
  +        default text file encoding on most systems.</p>
  +
  +      <p>The XML declaration should look something like this:</p>
  +
  +      <p><code>&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;</code></p>
  +
  +      <p>Make sure to specify the encoding that is actually used by file. The
  +        encoding for "plain" text files depends both on the operating system and the
  +        locale (country and language) in use.</p>
  +
  +      <p>Another common source of problems is that some characters are not
  +        allowed in XML documents, according to the XML spec. Typical disallowed
  +        characters are control characters, even if you escape them using the Character
  +        Reference form. See the <jump href="http://www.w3.org/TR/REC-xml#charsets">XML
  +        spec</jump>, sections 2.2 and 4.1 for details. If the parser is generating an <code>Invalid character (Unicode: 0x???)</code> error, it is very likely that there's a character in there that you
  +        can't see. You can generally use a UNIX command like "od -hc" to find it.</p>
  +
       </a>
     </faq>
   
  +  <faq title="What encodings are supported by Xerces-C / XML4C?">
   
  -  <faq title="What encodings are supported by &XercesCProjectName;?">
  -
  -    <q>What encodings are supported by &XercesCProjectName;?</q>
  +    <q>What encodings are supported by Xerces-C / XML4C?</q>
   
       <a>
  -      <p>&XercesCProjectName; uses a subset of IBM's International Classes
  -        for Unicode (ICU) for encoding &amp; Unicode
  -        support. &XercesCFullName; is Unicode 3.0 compliant. Please note that
  -				<em>these encodings are supported only if you build &XercesCName; with ICU library</em>,
  -				not as a standalone library using native encoding support.</p>
   
  -      <p>Besides ASCII, the following encodings are currrently
  -      supported:</p>
  +      <p>Xerces-C has intrinsic support for ASCII, UTF-8, UTF-16 (Big/Small
  +        Endian), UCS4 (Big/Small Endian), EBCDIC code pages IBM037 and IBM1140
  +        encodings, ISO-8859-1 (aka Latin1) and Windows-1252. This means that it can
  +        parse input XML files in these above mentioned encodings.</p>
  +
  +      <p>XML4C -- the version of Xerces-C available from IBM -- extends this
  +        set to include the encodings listed in the table below.</p>
   
         <table>
  -        <tr><td><em>Common Name</em></td><td><em>Use this MIME/IANA name in XML</em></td></tr>
  -        <tr><td>8 bit Unicode</td><td>UTF-8</td></tr>
  -        <tr><td>ISO Latin 1</td><td>ISO-8859-1</td></tr>
  -        <tr><td>ISO Latin 2</td><td>ISO-8859-2</td></tr>
  -        <tr><td>ISO Latin 3</td><td>ISO-8859-3</td></tr>
  -        <tr><td>ISO Latin 4</td><td>ISO-8859-4</td></tr>
  -        <tr><td>ISO Latin Cyrillic</td><td>ISO-8859-5</td></tr>
  -        <tr><td>ISO Latin Arabic</td><td>ISO-8859-6</td></tr>
  -        <tr><td>ISO Latin Greek</td><td>ISO-8859-7</td></tr>
  -        <tr><td>ISO Latin Hebrew</td><td>ISO-8859-8</td></tr>
  -        <tr><td>ISO Latin 5</td><td>ISO-8859-9</td></tr>
  -        <tr><td>EBCDIC: US</td><td>ebcdic-cp-us</td></tr>
  -        <tr><td>EBCDIC: Canada</td><td>ebcdic-cp-ca</td></tr>
  -        <tr><td>EBCDIC: Netherlands</td><td>ebcdic-cp-nl</td></tr>
  -        <tr><td>EBCDIC: Denmark</td><td>ebcdic-cp-dk</td></tr>
  -        <tr><td>EBCDIC: Norway</td><td>ebcdic-cp-no</td></tr>
  -        <tr><td>EBCDIC: Finland</td><td>ebcdic-cp-fi</td></tr>
  -        <tr><td>EBCDIC: Sweden</td><td>ebcdic-cp-se</td></tr>
  -        <tr><td>EBCDIC: Italy</td><td>ebcdic-cp-it</td></tr>
  -        <tr><td>EBCDIC: Spain, Latin America</td><td>ebcdic-cp-es</td></tr>
  -        <tr><td>EBCDIC: Great Britain</td><td>ebcdic-cp-gb</td></tr>
  -        <tr><td>EBCDIC: France</td><td>ebcdic-cp-fr</td></tr>
  -        <tr><td>EBCDIC: Arabic</td><td>ebcdic-cp-ar1</td></tr>
  -        <tr><td>EBCDIC: Hebrew</td><td>ebcdic-cp-he</td></tr>
  -        <tr><td>EBCDIC: Switzerland</td><td>ebcdic-cp-ch</td></tr>
  -        <tr><td>EBCDIC: Roece</td><td>ebcdic-cp-roece</td></tr>
  -        <tr><td>EBCDIC: Yogoslavia</td><td>ebcdic-cp-yu</td></tr>
  -        <tr><td>EBCDIC: Iceland</td><td>ebcdic-cp-is</td></tr>
  -        <tr><td>EBCDIC: Urdu</td><td>ebcdic-cp-ar2</td></tr>
  -        <tr><td>Chinese for PRC, mixed 1/2 byte</td><td>gb2312</td></tr>
  -        <tr><td>Extended UNIX code, packed for Japanese</td><td>euc-jp</td></tr>
  -        <tr><td>Japanese: iso-2022-jp</td><td>iso-2022-jp</td></tr>
  -        <tr><td>Japanese: Shift JIS</td><td>Shift_JIS</td></tr>
  -        <tr><td>Chinese: Big5</td><td>Big5</td></tr>
  -        <tr><td>Extended UNIX code, packed for Korean</td><td>euc-kr</td></tr>
  -        <tr><td>Korean: iso-2022-kr</td><td>iso-2022-kr</td></tr>
  -        <tr><td>Cyrillic</td><td>koi8-r</td></tr>
  +        <tr>
  +          <td><em>Common Name</em></td>
  +          <td><em>Use this name in XML</em></td>
  +        </tr>
  +        <tr>
  +          <td>8 bit Unicode</td>
  +          <td>UTF-8</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin 1</td>
  +          <td>ISO-8859-1</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin 2</td>
  +          <td>ISO-8859-2</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin 3</td>
  +          <td>ISO-8859-3</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin 4</td>
  +          <td>ISO-8859-4</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin Cyrillic</td>
  +          <td>ISO-8859-5</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin Arabic</td>
  +          <td>ISO-8859-6</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin Greek</td>
  +          <td>ISO-8859-7</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin Hebrew</td>
  +          <td>ISO-8859-8</td>
  +        </tr>
  +        <tr>
  +          <td>ISO Latin 5</td>
  +          <td>ISO-8859-9</td>
  +        </tr>
  +        <tr>
  +          <td>EBCDIC US</td>
  +          <td>ebcdic-cp-us</td>
  +        </tr>
  +        <tr>
  +          <td>EBCDIC with Euro symbol</td>
  +          <td>ibm1140</td>
  +        </tr>
  +        <tr>
  +          <td>Chinese, PRC</td>
  +          <td>gb2312</td>
  +        </tr>
  +        <tr>
  +          <td>Chinese, Big5</td>
  +          <td>Big5</td>
  +        </tr>
  +        <tr>
  +          <td>Cyrillic</td>
  +          <td>koi8-r</td>
  +        </tr>
  +        <tr>
  +          <td>Japanese, Shift JIS</td>
  +          <td>Shift_JIS</td>
  +        </tr>
  +        <tr>
  +          <td>Korean, Extended UNIX code</td>
  +          <td>euc-kr</td>
  +        </tr>
         </table>
  -			
  -			<!--
  +
  +      <p>Some implementations or ports of Xerces-C provide support for
  +        additional encodings. The exact set will depend on the supplier of the parser
  +        and on the character set transcoding services in use.</p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq
  +  title="What character encoding should I use when creating XML documents?">
  +
  +    <q>What character encoding should I use when creating XML documents?</q>
  +
  +    <a>
  +
  +      <p>The best choice in most cases is either utf-8 or utf-16. Advantages of
  +        these encodings include:</p>
  +
         <ul>
  -        <li>UTF-8</li>
  -        <li>UTF-16 Big Endian, UTF-16 Little Endian</li>
  -        <li>IBM-1208</li>
  -        <li>ISO Latin-1 (ISO-8859-1)</li>
  -        <li>ISO Latin-2 (ISO-8859-2) [Bosnian, Croatian, Czech,
  -          Hungarian, Polish, Romanian, Serbian (in Latin
  -          transcription), Serbocroation, Slovak, Slovenian, Upper
  -          Sorbian and Lower Sorbian]</li>
  -        <li>ISO Latin-3 (ISO-8859-3) [Maltese, Esperanto]</li>
  -        <li>ISO Latin-4 (ISO-8859-4)</li>
  -        <li>ISO Latin Cyrillic (ISO-8859-5)</li>
  -        <li>ISO Latin Arabic (ISO-8859-6) [Arabic]</li>
  -        <li>ISO Latin Greek (ISO-8859-7)</li>
  -        <li>ISO Latin Hebrew (ISO-8859-8) [Hebrew]</li>
  -        <li>ISO Latin-5 (ISO-8859-9) [Turkish]</li>
  -        <li>Extended Unix Code, packed for Japanese (euc-jp, eucjis)</li>
  -        <li>Japanese Shift JIS (shift-jis)</li>
  -        <li>Chinese (big5)</li>
  -        <li>Extended Unix Code, packed for Korean (euc-kr)</li>
  -        <li>Russian Unix, Cyrillic (koi8-r)</li>
  -        <li>Windows Thai (cp874)</li>
  -        <li>Latin 1 Windows (cp1252)</li>
  -        <li>cp858</li>
  -        <li>EBCDIC encodings:</li></ul><ul>
  -        <li>EBCDIC US (ebcdic-cp-us)</li>
  -        <li>EBCDIC Canada (ebcdic-cp-ca)</li>
  -        <li>EBCDIC Netherland (ebcdic-cp-nl)</li>
  -        <li>EBCDIC Denmark (ebcdic-cp-dk)</li>
  -        <li>EBCDIC Norway (ebcdic-cp-no)</li>
  -        <li>EBCDIC Finland (ebcdic-cp-fi)</li>
  -        <li>EBCDIC Sweden (ebcdic-cp-se)</li>
  -        <li>EBCDIC Italy (ebcdic-cp-it)</li>
  -        <li>EBCDIC Spain &amp; Latin America (ebcdic-cp-es)</li>
  -        <li>EBCDIC Great Britain (ebcdic-cp-gb)</li>
  -        <li>EBCDIC France (ebcdic-cp-fr)</li>
  -        <li>EBCDIC Hebrew (ebcdic-cp-he)</li>
  -        <li>EBCDIC Switzerland (ebcdic-cp-ch)</li>
  -        <li>EBCDIC Roece (ebcdic-cp-roece)</li>
  -        <li>EBCDIC Yugoslavia (ebcdic-cp-yu)</li>
  -        <li>EBCDIC Iceland (ebcdic-cp-is)</li>
  -        <li>EBCDIC Urdu (ebcdic-cp-ar2)</li>
  -        <li>Latin 0 EBCDIC</li></ul>
  +        <li>The best portability. These encodings are more widely supported by
  +          XML processors than any others, meaning that your documents will have the best
  +          possible chance of being read correctly, no matter where they end up.</li>
  +        <li>Full international character support. Both utf-8 and utf-16 cover the
  +          full Unicode character set, which includes all of the characters from all major
  +          national, international and industry character sets.</li>
  +        <li>Efficient. utf-8 has the smaller storage requirements for documents
  +          that are primarily composed of of characters from the Latin alphabet. utf-16 is
  +          more efficient for encoding Asian languages. But both encodings cover all
  +          languages without loss.</li>
  +      </ul>
  +
  +      <p>The only drawback of utf-8 or utf-16 is that they are not the native
  +        text file format for most systems, meaning that common text file editors and
  +        viewers can not be directly used.</p>
  +
  +      <p>A second choice of encoding would be any of the others listed in the
  +        table above. This works best when the xml encoding is the same as the default
  +        system encoding on the machine where the XML document is being prepared,
  +        because the document will then display correctly as a plain text file. For UNIX
  +        systems in countries speaking Western European languages, the encoding will
  +        usually be iso-8859-1.</p>
  +
  +      <p>The versions of Xerces distributed by IBM, both C and Java (known
  +        respectively as XML4C and XML4J), include all of the encodings listed in the
  +        above table, on all platforms.</p>
  +
  +      <p>A word of caution for Windows users: The default character set on
  +        Windows systems is windows-1252, not iso-8859-1. While &XercesCName; does
  +        recognize this Windows encoding, it is a poor choice for portable XML data
  +        because it is not widely recognized by other XML processing tools. If you are
  +        using a Windows-based editing tool to generate XML, check which character set
  +        it generates, and make sure that the resulting XML specifies the correct name
  +        in the <code>encoding="..."</code> declaration.</p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq
  +  title="I find memory leaks in &XercesCName;. How do I eliminate it?">
   
  -      <p>Additional encodings to be available later:</p>
  +    <q>I find memory leaks in &XercesCName;. How do I eliminate it?</q>
   
  +    <a>
  +
  +      <p>The "leaks" that are reported through a leak-detector or heap-analysis
  +        tools aren't really leaks in most application, in that the memory usage does
  +        not grow over time as the XML parser is used and re-used.</p>
  +
  +      <p>What you are seeing as leaks are actually lazily evaluated data
  +        allocated into static variables. This data gets released when the application
  +        ends. You can make a call to <code>XMLPlatformUtil::terminate()</code> to release all the lazily allocated variables before you exit your
  +        program.</p>
  +
  +      <p>To ensure all the memory held by the parser are freed, the number of XMLPlatformUtils::Terminate() calls
  +         should match the number of XMLPlatformUtils::Initialize() calls.
  +      </p>
  +    </a>
  +  </faq>
  +
  +  <faq title="Is EBCDIC supported?">
  +
  +    <q>Is EBCDIC supported?</q>
  +
  +    <a>
  +
  +      <p>Yes, &XercesCName; supports EBCDIC. When creating EBCDIC encoded XML
  +        data, the preferred encoding is ibm1140. Also supported is ibm037 (and its
  +        alternate name, ebcdic-cp-us); this encoding is almost the same as ibm1140, but
  +        it lacks the Euro symbol.</p>
  +
  +      <p>These two encodings, ibm1140 and ibm037, are available on both
  +        Xerces-C and IBM XML4C, on all platforms.</p>
  +
  +      <p>On IBM System 390, XML4C also supports two alternative forms,
  +        ibm037-s390 and ibm1140-s390. These are similar to the base ibm037 and ibm1140
  +        encodings, but with alternate mappings of the EBCDIC new-line character, which
  +        allows them to appear as normal text files on System 390s. These encodings are
  +        not supported on other platforms, and should not be used for portable data.</p>
  +
  +      <p>XML4C on System 390 and AS/400 also provides additional EBCDIC
  +        encodings, including those for the character sets of different countries. The
  +        exact set supported will be platform dependent, and these encodings are not
  +        recommended for portable XML data.</p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="How to write out a DOM tree into an XML file?">
  +     <q>How to write out a DOM tree into an XML file?</q>
  +     <a>
  +      <p>This feature is not yet availabe in the parser. Take a look at the DOMPrint sample
  +         for an example on parsing  XML file, then writing it out back to the screen. You
  +         can use that code.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="Is it OK to call the XMLPlatformUtils::Initialize/Terminate pair of routines multiple times in one program?">
  +    <q>Is it OK to call the XMLPlatformUtils::Initialize/Terminate pair of routines multiple times in one program?</q>
  +    <a>
  +      <p>Yes.  Since &XercesCName; Version 1.5.2., the code has been enhanced so that calling XMLPlatformUtils::Initialize/Terminate pair of routines
  +         multiple times in one process is now allowed.
  +      </p>
  +
  +      <p>But the application needs to guarantee that only one thread has entered either the
  +        method XMLPlatformUtils::Initialize() or the method XMLPlatformUtils::Terminate() at any
  +        one time.</p>
  +
  +      <p>If you are calling XMLPlatformUtils::Initialize() a number of times, and then follow with
  +         XMLPlatformUtils::Terminate() the same number of times, only the first XMLPlatformUtils::Initialize()
  +         will do the initialization, and only the last XMLPlatformUtils::Terminate() will clean up
  +         the memory.  The other calls are ignored.
  +      </p>
  +
  +      <p>To ensure all the memory held by the parser are freed, the number of XMLPlatformUtils::Terminate() calls
  +         should match the number of XMLPlatformUtils::Initialize() calls.
  +      </p>
  +
  +      <p>
  +         Consider the following code snippets (for illustration simplicity the following
  +         sample code is not coded in try/catch clause):
  +      </p>
  +
  +<source>
  +// The XMLPlatformUtils::Initialize/Terminate calls are paired.
  +{
  +    // Initialize the parser
  +    XMLPlatformUtils::Initialize();
  +
  +    SAXParser parser;
  +    parser.parse(xmlFile);
  +
  +    // Free all memory that was being held by the parser
  +    XMLPlatformUtils::Terminate();
  +
  +    // Initialize the parser
  +    XMLPlatformUtils::Initialize();
  +
  +    SAXParser parser;
  +    parser.parse(xmlFile);
  +
  +    // Free all memory that was being held by the parser
  +    XMLPlatformUtils::Terminate();
  +}
  +</source>
  +
  +<source>
  +// calls XMLPlatformUtils::Initialize() three times
  +// then calls XMLPlatformUtils::Terminate() numerous times
  +{
  +    // Initialize the parser
  +    XMLPlatformUtils::Initialize();
  +
  +    // The next two calls are no-op
  +    XMLPlatformUtils::Initialize();
  +    XMLPlatformUtils::Initialize();
  +
  +    SAXParser parser;
  +    parser.parse(xmlFile);
  +
  +    // The first two XMLPlatformUtils::Terminate() calls are no-op
  +    XMLPlatformUtils::Terminate();
  +    XMLPlatformUtils::Terminate();
  +
  +    // This third XMLPlatformUtils::Terminate() will free all memory that was being held by the parser
  +    XMLPlatformUtils::Terminate();
  +
  +    // This extra fourth XMLPlatformUtils::Terminate() call is no-op.
  +    // However calling XMLPlatformUtils::Terminate() without a matching XMLPlatformUtils::Initialize()
  +    // is dangerous and should be avoided.
  +    XMLPlatformUtils::Terminate();
  +}
  +</source>
  +    </a>
  +  </faq>
  +
  +  <faq title="Why does deleting a transcoded string result in assertion on windows?">
  +    <q>Why does deleting a transcoded string result in assertion on windows?</q>
  +    <a>
  +      <p>Both your application program and the Xerces DLL must use the same *DLL* version of the
  +         runtime library.  If either statically links to the runtime library, the
  +		 problem will still occur.
  +
  +         For example, for a Win32/VC6 build, the runtime library build setting MUST
  +		 be "Multithreaded DLL" for release builds and "Debug Multithreaded DLL" for
  +		 debug builds.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="How do I transcode to/from something besides the local code page?">
  +    <q>How do I transcode to/from something besides the local code page?</q>
  +    <a>
  +      <p>XMLString::transcode() will transcode from XMLCh to the local code page, and
  +         other APIs which take a char* assume that the source text is in the local
  +         code page. If this is not true, you must transcode the text yourself. You
  +         can do this using local transcoding support on your OS, such as Iconv on
  +         Unix or or IBM's ICU package. However, if your transcoding needs are simple,
  +         you can achieve some better portability by using the Xerces parser's
  +         transcoder wrappers. You get a transcoder like this:
  +       </p>
  +       <ul>
  +		 <li>
  +         1. Call XMLPlatformUtils::fgTransServer->MakeNewTranscoderFor() and provide
  +            the name of the encoding you wish to create a transcoder for. This will
  +            return a transcoder to you, which you own and must delete when you are
  +            through with it.
  +
  +           NOTE: You must provide a maximum block size that you will pass to the transcoder
  +           at one time, and you must blocks of characters of this count or smaller when
  +           you do your transcoding. The reason for this is that this is really an
  +           internal API and is used by the parser itself to do transcoding. The parser
  +           always does transcoding in known block sizes, and this allows transcoders to
  +           be much more efficient for internal use since it knows the max size it will
  +           ever have to deal with and can set itself up for that internally. In
  +           general, you should stick to block sizes in the 4 to 64K range.
  +         </li>
  +		 <li>
  +         2. The returned transcoder is something derived from XMLTranscoder, so they
  +            are all returned to you via that interface.
  +         </li>
  +		 <li>
  +         3. This object is really just a wrapper around the underlying transcoding
  +            system actually in use by your version of Xerces, and does whatever is
  +            necessary to handle differences between the XMLCh representation and the
  +            representation uesd by that underying transocding system.
  +         </li>
  +		 <li>
  +         4. The transcoder object has two primary APIs, transcodeFrom() and
  +            transcodeTo(). These transcode between the XMLCh format and the encoding you
  +            indicated.
  +         </li>
  +		 <li>
  +         5. These APIs will transcode as much of the source data as will fit into the
  +            outgoing buffer you provide. They will tell you how much of the source they
  +            ate and how much of the target they filled. You can use this information to
  +            continue the process until all source is consumed.
  +         </li>
  +		 <li>
  +         6. char* data is always dealt with in terms of bytes, and XMLCh data is
  +            always dealt with in terms of characters. Don't mix up which you are dealing
  +            with or you will not get the correct results, since many encodings don't
  +            have a one to one relationship of characters to bytes.
  +         </li>
  +		 <li>
  +         7. When transcoding from XMLCh to the target encoding, the transcodeTo()
  +            method provides an 'unrepresentable flag' parameter, which tells the
  +            transcoder how to deal with an XMLCh code point that cannot be converted
  +            legally to the target encoding, which can easily happen since XMLCh is
  +            Unicode and can represent thousands of code points. The options are to use a
  +            default replacement character (which the underlying transcoding service will
  +            choose, and which is guaranteed to be legal for the target encoding), or to
  +            throw an exception.
  +         </li>
  +       </ul>
  +    </a>
  +  </faq>
  +
  +  <faq title="Why DOM_Node::cloneNode() does not clone the pointer assigned to a DOM_Node via DOM_Node::setUserData()?">
  +    <q>Why DOM_Node::cloneNode() does not clone the pointer assigned to a DOM_Node via DOM_Node::setUserData()?</q>
  +    <a>
  +      <p>There are several possible options for how cloneNode should handle userData:
  +      </p>
         <ul>
  -        <li>EBCDIC Arabic (ebcdic-cp-ar1)</li>
  -        <li>Chinese for PRC (mixed 1/2 byte) (gb2312)</li>
  -        <li>Japanese ISO-2022-JP (iso-2022-jp)</li>
  -        <li>Cyrllic (koi8-r)</li>
  +      <li>
  +          1) Copy the pointer. May be a Very Bad Idea if you really wanted the data
  +           associated with a particular node object.
  +      </li>
  +      <li>
  +          2) Clone the object being pointed at. Maybe a Very Bad Idea if that object,
  +          in turn, wasn't designed to be cloned at this time.
  +      </li>
  +      <li>
  +          3) A complex call-back API has been proposed which would allow the userData
  +          object to tell the DOM which of these three options should be taken, but
  +          that would require that only objects implementing that API be registered as
  +          userData. That doesn't seem to be a good option.
  +      </li>
  +      <li>
  +          4) Do nothing. This is by far the lowest-overhead and safest choice. And
  +          since cloneNode is a DOM operation, and userData is _not_ defined by the
  +          standard DOM API, one can make a very strong case for this being the "most
  +          correct" option.
  +      </li>
         </ul>
  +      <p>
  +          We chose (4), very deliberately. If you want one of the others, you can
  +          implement it by creating your own wrapper operation for cloneNode() and
  +          calling that.
  +      </p>
  +      <p>
  +          NOTE that userData should be considered a nonportable, experimental feature
  +          of the Xerces DOM. It may evaporate entirely in favor of a scheme based on
  +          the DOM Level 3 "node key" mechanism, when that becomes officially
  +          available.
  +      </p>
  +    </a>
  +  </faq>
   
  -      <p>The ICU uses IBM's UPMAP format as source files for data-based
  -        conversion. All codepages represented in that format are supported
  -        (i.e: SBCS, DBCS, MBCS and EBCDIC_STATEFUL), with the exception of
  -        codepages with a maximum character length strictly greater than
  -        two bytes (e.g. this excludes 1350 and 964).</p>
  -
  -      <p>The following is a non-exhaustive list of codepages that are
  -        supported by the international library packaged with the product.</p>
  -
  -  <p>
  -    ibm-1004,
  -    ibm-1006,
  -    ibm-1008,
  -    ibm-1038,
  -    ibm-1041,
  -    ibm-1043,
  -    ibm-1047,
  -    ibm-1051,
  -    ibm-1088,
  -    ibm-1089,
  -    ibm-1098,
  -    ibm-1112,
  -    ibm-1114,
  -    ibm-1115,
  -    ibm-1116,
  -    ibm-1117,
  -    ibm-1118,
  -    ibm-1119,
  -    ibm-1123,
  -    ibm-1140,
  -    ibm-1141,
  -    ibm-1142,
  -    ibm-1143,
  -    ibm-1144,
  -    ibm-1145,
  -    ibm-1146,
  -    ibm-1147,
  -    ibm-1148,
  -    ibm-1149,
  -    ibm-1153,
  -    ibm-1154,
  -    ibm-1155,
  -    ibm-1156,
  -    ibm-1157,
  -    ibm-1158,
  -    ibm-1159,
  -    ibm-1160,
  -    ibm-1164,
  -    ibm-1250,
  -    ibm-1251,
  -    ibm-1252,
  -    ibm-1253,
  -    ibm-1254,
  -    ibm-1255,
  -    ibm-1256,
  -    ibm-1257,
  -    ibm-1258,
  -    ibm-12712,
  -    ibm-1275,
  -    ibm-1276,
  -    ibm-1277,
  -    ibm-1280,
  -    ibm-1281,
  -    ibm-1282,
  -    ibm-1283,
  -    ibm-1361,
  -    ibm-1362,
  -    ibm-1363,
  -    ibm-1364,
  -    ibm-1370,
  -    ibm-1371,
  -    ibm-1383,
  -    ibm-1386,
  -    ibm-1390,
  -    ibm-1399,
  -    ibm-16684,
  -    ibm-16804,
  -    ibm-17248,
  -    ibm-21427,
  -    ibm-273,
  -    ibm-277,
  -    ibm-278,
  -    ibm-280,
  -    ibm-284,
  -    ibm-285,
  -    ibm-290,
  -    ibm-297,
  -    ibm-37,
  -    ibm-420,
  -    ibm-424,
  -    ibm-437,
  -    ibm-4899,
  -    ibm-4909,
  -    ibm-4930,
  -    ibm-4971,
  -    ibm-500,
  -    ibm-5104,
  -    ibm-5123,
  -    ibm-5210,
  -    ibm-5346,
  -    ibm-5347,
  -    ibm-5349,
  -    ibm-5350,
  -    ibm-5351,
  -    ibm-5352,
  -    ibm-5353,
  -    ibm-5354,
  -    ibm-803,
  -    ibm-808,
  -    ibm-813,
  -    ibm-833,
  -    ibm-834,
  -    ibm-835,
  -    ibm-837,
  -    ibm-848,
  -    ibm-8482,
  -    ibm-849,
  -    ibm-850,
  -    ibm-852,
  -    ibm-855,
  -    ibm-856,
  -    ibm-857,
  -    ibm-858,
  -    ibm-859,
  -    ibm-860,
  -    ibm-861,
  -    ibm-862,
  -    ibm-863,
  -    ibm-864,
  -    ibm-865,
  -    ibm-866,
  -    ibm-867,
  -    ibm-868,
  -    ibm-869,
  -    ibm-871,
  -    ibm-872,
  -    ibm-874,
  -    ibm-878,
  -    ibm-891,
  -    ibm-897,
  -    ibm-901,
  -    ibm-902,
  -    ibm-9027,
  -    ibm-903,
  -    ibm-904,
  -    ibm-9044,
  -    ibm-9049,
  -    ibm-9061,
  -    ibm-907,
  -    ibm-909,
  -    ibm-910,
  -    ibm-912,
  -    ibm-913,
  -    ibm-914,
  -    ibm-915,
  -    ibm-916,
  -    ibm-920,
  -    ibm-921,
  -    ibm-922,
  -    ibm-923,
  -    ibm-9238,
  -    ibm-924,
  -    ibm-930,
  -    ibm-933,
  -    ibm-935,
  -    ibm-937,
  -    ibm-939,
  -    ibm-941,
  -    ibm-942,
  -    ibm-943,
  -    ibm-944,
  -    ibm-946,
  -    ibm-947,
  -    ibm-948,
  -    ibm-949,
  -    ibm-950,
  -    ibm-953,
  -    ibm-955,
  -    ibm-961,
  -    ibm-964,
  -    and ibm-970
  +  <faq title="Why does my application crash or hang if XMLPlatformUtils::Initialize()/Terminate() pair is called more than once.">
   
  -  </p>
  -	-->
  +    <q>Why does my application crash or hang if XMLPlatformUtils::Initialize()/Terminate() pair more than once</q>
   
  -</a>
  -</faq>
  +    <a>
   
  -</faqs>
  +      <p>Please make sure you are using &XercesCName; Version 1.5.2 or up.
  +      </p>
  +
  +      <p>Please make sure the XMLPlatformUtils::Terminate() is the last &XercesCName; function to be called
  +         in your program.  NO explicit nor implicit &XercesCName; destructor (those local data that are
  +         destructed when going out of scope) should be called after XMLPlatformUtils::Terminate().
  +      </p>
  +      <p>
  +         Consider the following code snippets which is incorrect (for illustration simplicity the
  +         following sample code is not coded in try/catch clause):
  +      </p>
   
  +<source>
  +1: {
  +2:    XMLPlatformUtils::Initialize();
  +3:    DOMString c("hello");
  +4:    XMLPlatformUtils::Terminate();
  +5: }
  +</source>
  +
  +      <p>The DOMString object "c" is destructed when going out of scope at line 5 before the closing
  +         brace.  As a result, DOMString destructor is called at line 5 after
  +         XMLPlatformUtils::Terminate() which is wrong.  Correct code should be:
  +      </p>
  +
  +<source>
  +1: {
  +2:    XMLPlatformUtils::Initialize();
  +2a:    {
  +3:           DOMString c("hello");
  +3a:    }
  +4:    XMLPlatformUtils::Terminate();
  +5: }
  +</source>
  +
  +      <p>The extra pair of braces (line 2a and 3a) ensures that all implicit destructors are called
  +         before terminating &XercesCName;.</p>
  +
  +      <p>In addition the application also needs to guarantee that only one thread has entered either the
  +        method XMLPlatformUtils::Initialize() or the method XMLPlatformUtils::Terminate() at any
  +        one time.
  +      </p>
  +    </a>
  +  </faq>
  +
  +  <faq title="Why does SAX2XMLReader::setProperty not work?">
  +
  +    <q>Why does SAX2XMLReader::setProperty not work?</q>
  +
  +    <a>
  +
  +      <p>The function <code>SAX2XMLReader::setProperty(const XMLCh* const name, void* value)</code>
  +         takes a void pointer for the property value.  Application is required to initialize this void pointer
  +         to a correct type.  See <jump href="schema.html#SAX2Properties">SAX2 Programming Guide</jump>
  +         to learn exactly what type of property value that each property expects for processing.
  +         Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
  +      </p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="Why does SAX2XMLReader::getProperty not work?">
  +
  +    <q>Why does SAX2XMLReader::setProperty not work?</q>
  +
  +    <a>
  +
  +      <p>The function <code>void* SAX2XMLReader::getProperty(const XMLCh* const name)</code>
  +         returns a void pointer for the property value.  See
  +         <jump href="schema.html#SAX2Properties">SAX2 Programming Guide</jump> to learn
  +         exactly what type of object each property returns.
  +      </p>
  +      <p>The parser owns the returned pointer, and the memory allocated for
  +         the returned pointer will be destroyed when the parser is deleted.
  +         To ensure assessiblity of the returned information after the parser
  +         is deleted, callers need to copy and store the returned information
  +         somewhere else; other you may get unexpected result.  Since the returned
  +         pointer is a generic void pointer, see
  +         <jump href="schema.html#SAX2Properties">SAX2 Programming Guide</jump> to learn
  +         exactly what type of object each property returns for replication.
  +      </p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="Why do I get compilation error when compiling &XercesCName; on FreeBSD with native transcoder?">
  +
  +    <q>Why do I get compilation error when compiling &XercesCName; on FreeBSD with native transcoder?</q>
  +
  +    <a>
  +       <p>Please make sure you configure with "-t IconvFBSD" to use FreeBSD specific native transcoder.
  +       </p>
  +
  +       <p>Or you can use ICU transcoder (configure with -t icu) instead of the native transcoder.
  +       </p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="Why do I get link error saying icudata library not found when building with ICU?">
  +
  +    <q>Why do I get link error saying icudata library not found when building with ICU?</q>
  +
  +    <a>
  +       <p>There is a bug in the Makefile of ICU 1.7, 1.8 and 1.8.1.  The link created during
  +          ICU installation in $ICUROOT is, for example,
  +       </p>
  +
  +       <p>icudata.so@ -> icudt17l.so
  +       </p>
  +
  +       <p>instead of
  +       </p>
  +
  +       <p>libicudata.so@ -> libicudt17l.so <br/>
  +       </p>
  +
  +       <p>Therefore the -licudata doesn't work.  To bypass the problem, please manually create the
  +          following link:
  +       </p>
  +
  +       <p>libicudata.so@ -> libicudt17l.so
  +       </p>
  +
  +       <p>This problem has been fixed in ICU 2.0.
  +       </p>
  +
  +
  +    </a>
  +  </faq>
  +
  +
  +</faqs>
  
  
  
  1.5       +118 -35   xml-site/sources/xerces-c/feedback.xml
  
  Index: feedback.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/feedback.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- feedback.xml	9 Dec 1999 02:07:59 -0000	1.4
  +++ feedback.xml	14 Feb 2002 16:44:20 -0000	1.5
  @@ -1,45 +1,128 @@
  -<?xml version="1.0" standalone="no"?>
  +<?xml version="1.0"  encoding="iso-8859-1" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
   <s1 title="Feedback Procedures">
       <s2 title="Questions or Comments">
  -        <p>For all questions or comments, write to the <jump href="mailto:&XercesCEmailAddress;">&XercesCProjectName; mailing list.</jump></p>
  -        <p>If you are submitting a bug (and bug reports are definitely appreciated!),
  -            please provide the following information:</p>
  -        <ul>
  -            <li>Version number of &XercesCName; (&XercesCVersion;?) </li>
  -            <li>Which OS platform/version you are using (NT4+SP4? Win98? Redhat Linux 6.0? Solaris2.6? AIX 4.3? HP-UX10? HP-UX11?) </li>
  -            <li>Which compiler/version you are using (MSVC6? gcc? cc? aCC?) </li>
  -            <li>Sample XML file that causes the bug</li>
  -            <li>Sample Schema file (if required to recreate the bug)</li>
  -            <li>Sample DTD file (if required to recreate the bug)</li>
  -        </ul>
  +
  +        <p>Please browse through this bundled documentation completely.  Most of
  +        the common questions have been answered in the FAQ's. Specifically, do
  +        read the answer to "<jump href="faq-other.html#faq-4"> Is there any kind
  +        of support available for &XercesCName;?</jump>". Browsing this
  +        documentation, may be the quickest way to get an answer. Of course, if
  +        all else fails, as mentioned in the link above, you can post a question
  +        to the <jump href="mailto:&XercesCEmailAddress;">Xerces-C mailing list</jump>.</p>
  +
  +        <p>See <jump href="bug-report.html">Bug Reporting</jump> if you would like
  +		to report a defect (greatly appreciated!).</p>
  +
       </s2>
   
       <s2 title="Acknowledgements">
   
  -    <p>Ever since this source code base was initially created, many people have
  -    helped to port the code to different platforms and provide
  -    constructive feedback to fix bugs and enhance features.</p>
  -
  -    <p>Listed below are some names (in alphabetical order) of people
  -       to whom we would like to give special thanks. </p>
  -    <ul>
  -        <li>Anupam Bagchi</li>
  -        <li>John Bellardo</li>
  -        <li>Arundhati Bhowmick</li>
  -        <li>Paul Ferguson</li>
  -        <li>Pierpaolo Fumagalli</li>
  -        <li>Andy Heninger</li>
  -        <li>Rahul Jain</li>
  -        <li>Andy Levine</li>
  -        <li>Michael Ottati</li>
  -        <li>Mike Pogue</li>
  -        <li>Dean Roddey</li>
  -        <li>Steven Rosenthal</li>
  -        <li>Gereon Steffens</li>
  -        <li>Tom Watson</li>
  -        <li>Roger Webster</li>
  -    </ul>
  +        <p>Ever since this source code base was initially created, many people
  +           have helped to port the code to different platforms, and provided
  +           patches for both new features and bug fixes.
  +        </p>
  +
  +        <p>Listed below are some names (in alphabetical order) of people to whom
  +        we would like to give special thanks. </p>
  +
  +        <ul>
  +            <li>Nadav Aharoni</li>
  +            <li>Curt Arnold</li>
  +            <li>Edward Avis</li>
  +            <li>Anupam Bagchi</li>
  +            <li>Torbj�rn B�ckstr�m</li>
  +            <li>Matthew Baker</li>
  +            <li>Devin Barnhart</li>
  +            <li>James Berry</li>
  +            <li>David Bertoni</li>
  +            <li>John Bellardo</li>
  +            <li>Arundhati Bhowmick</li>
  +            <li>Edward Bortner</li>
  +            <li>Sean Bright</li>
  +            <li>Phil Brown</li>
  +            <li>Sumit Chawla</li>
  +            <li>Nick Chiang</li>
  +            <li>Chih Hsiang Chou</li>
  +            <li>Radovan Chytracek</li>
  +            <li>Hiram Clawson</li>
  +            <li>John Clayton</li>
  +            <li>Todd Collins</li>
  +            <li>Michael Crawford</li>
  +            <li>Murray Cumming</li>
  +            <li>Helmut Eiken</li>
  +            <li>Mark Everline</li>
  +            <li>Simon Fell</li>
  +            <li>Paul Ferguson</li>
  +            <li>Pierpaolo Fumagalli</li>
  +            <li>Gary Gale</li>
  +            <li>Max Gotlib</li>
  +            <li>Petr Gotthard</li>
  +            <li>Susan Hardenbrook</li>
  +            <li>Jeff Harrell</li>
  +            <li>Andy Heninger</li>
  +            <li>William L. Hopper</li>
  +            <li>Michael Huedepohl</li>
  +            <li>Rahul Jain</li>
  +            <li>Tom Jordahl</li>
  +            <li>Christopher Just</li>
  +            <li>Martin Kalen</li>
  +            <li>Joe Kesselman</li>
  +            <li>Artur Klauser</li>
  +            <li>Bob Kline</li>
  +            <li>Richard Ko</li>
  +            <li>Paul Kramer</li>
  +            <li>Volker Krause</li>
  +            <li>Arnaud LeHors</li>
  +            <li>Andy Levine</li>
  +            <li>Jeff Lewis</li>
  +            <li>Matt Lovett</li>
  +            <li>Sean MacRoibeaird</li>
  +            <li>Alberto Massari</li>
  +            <li>Don Mastrovito</li>
  +            <li>David McCreedy</li>
  +            <li>Jordan Naftolin</li>
  +            <li>Tinny Ng</li>
  +            <li>David Nickerson</li>
  +            <li>Khaled Noaman</li>
  +            <li>Michael Ottati</li>
  +            <li>Kevin Philips</li>
  +            <li>Mike Pogue</li>
  +            <li>Joe Polastre</li>
  +            <li>John Ponzo</li>
  +            <li>Shengkai Qu</li>
  +            <li>Gareth Reakes</li>
  +            <li>Jim Reitz</li>
  +            <li>Dean Roddey</li>
  +            <li>John Roper</li>
  +            <li>Steven Rosenthal</li>
  +            <li>Erik Rydgren</li>
  +            <li>Bill Schindler</li>
  +            <li>Erik Schroeder</li>
  +            <li>Christian Schuhegger</li>
  +            <li>John Smirl</li>
  +            <li>Andrei Smirnov</li>
  +            <li>Gereon Steffens</li>
  +            <li>Jason Stewart</li>
  +            <li>Rick J. Stevens</li>
  +            <li>Roman Sulzhyk</li>
  +            <li>Linda M. Swan</li>
  +            <li>Pieter Van-Dyck</li>
  +            <li>Curtis Walker</li>
  +            <li>John Warrier</li>
  +            <li>Tom Watson</li>
  +            <li>Mark Weaver</li>
  +            <li>Roger Webster</li>
  +            <li>Robert Weir</li>
  +            <li>Carolyn Weiss</li>
  +            <li>Kari Whitcomb</li>
  +            <li>Dietrich Wolf</li>
  +            <li>Kirk Wylie</li>
  +            <li>Peter A. Volchek</li>
  +            <li>Grace Yan</li>
  +            <li>PeiYong Zhang</li>
  +            <li>Henry Zongaro</li>
  +        </ul>
       </s2>
   </s1>
  
  
  
  1.4       +39 -63    xml-site/sources/xerces-c/install.xml
  
  Index: install.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/install.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- install.xml	2 Dec 1999 01:00:44 -0000	1.3
  +++ install.xml	14 Feb 2002 16:44:20 -0000	1.4
  @@ -5,94 +5,70 @@
   
   
       <s2 title="Window NT/98">
  -        <p>
  -        Binary installation of this release of &XercesCName; is simply to unzip the .zip
  -        archive under Windows environment (using WinZip, or any other UnZip utility like
  -        WinZip).
  -        </p>
  -        <source>
  -unzip &XercesCInstallDir;-win32.zip </source>
  -
  -        <p>
  -        This will create a '&XercesCInstallDir;-win32' sub-directory (in the current directory)
  -        which contains the &XercesCName; distribution. </p>
  -
  -        <p>
  -        You will need to add the '&XercesCInstallDir;-win32\bin' directory to your path: </p>
  -
  -        <p>To do this under Windows NT, go to the start menu, click the settings menu
  -        and
  -        select control panel. When the control panel opens, double click on System and
  -        select the 'Environment' tab. Locate the PATH variable under system variables
  -        and add &lt;full_path_to_&XercesCInstallDir;>\bin to the PATH variable.  To do this
  -        under Windows 95/98 add the line:</p>
  -
  -        <source>
  -   SET PATH=&lt;full_path_to_&XercesCInstallDir;>\bin;%PATH%  </source>
  -
  -         <p>
  -         to your AUTOEXEC.BAT file, or run the set in your shell window.
  -         </p>
  +        <p>Install the binary &XercesCName; release by using <code>unzip</code>
  +		on the <ref>file</ref>-win32.zip archive in the Windows environment. You can
  +		use WinZip, or any other UnZip utility.</p>
  +<source>unzip &XercesCInstallDir;-win32.zip</source>
  +        <p>This creates a &apos;&XercesCInstallDir;-win32&apos; sub-directory
  +		containing the &XercesCName; distribution. </p>
  +
  +        <p>You need to add the &apos;&XercesCInstallDir;-win32\bin&apos;
  +		directory to your path: </p>
  +
  +        <p>To do this under Windows NT, go to the start menu, click the
  +		settings menu and select control panel. When the control panel opens,
  +		double click on System and select the &apos;Environment&apos; tab.
  +		Locate the PATH variable under system variables
  +        and add &lt;full_path_to_&XercesCInstallDir;>\bin to the PATH variable.
  +		To do this under Windows 95/98 add this line to your AUTOEXEC.BAT file:</p>
  +<source>SET PATH=&lt;full_path_to_&XercesCInstallDir;>\bin;%PATH%</source>
  +		<p>or run the <code>SET PATH</code> command in your shell window.</p>
       </s2>
   
       <s2 title="UNIX">
  -        <p>
  -        Binary installation of this release is to extract the files from the compressed
  -        .tar archive (using 'tar').
  -        </p>
  -
  -        <source>
  -cd $HOME
  +        <p>Binary installation of this release is to extract the files from the
  +		compressed .tar archive (using 'tar').</p>
  +<source>cd $HOME
   gunzip &XercesCInstallDir;-linux.tar.gz
  -tar -xvf &XercesCInstallDir;-linux.tar </source>
  -
  -        <p>
  -        This will create an '&XercesCInstallDir;-linux' sub-directory (in the home directory)
  +tar -xvf &XercesCInstallDir;-linux.tar</source>
  +        <p>This will create an '&XercesCInstallDir;-linux' sub-directory
  +		(in the home directory)
           which contains the &XercesCName; distribution. You will need to add the
  -        &XercesCInstallDir;-linux/bin directory to your PATH environment variable:
  -        </p>
  +        &XercesCInstallDir;-linux/bin directory to your PATH environment variable:</p>
   
           <p>For Bourne Shell, K Shell or Bash, type: </p>
  -        <source>
  -    export PATH="$PATH:$HOME/&XercesCInstallDir;-linux/bin" </source>
  +<source>export PATH="$PATH:$HOME/&XercesCInstallDir;-linux/bin"</source>
  +		<p>For C Shell, type:</p>
  +<source>setenv PATH "$PATH:$HOME/&XercesCInstallDir;-linux/bin"</source>
   
  -        <p>For C Shell type:</p>
  -        <source>
  -    setenv PATH "$PATH:$HOME/&XercesCInstallDir;-linux/bin"</source>
  -
  -        <p>If you wish to make this setting permanent, you need to change your profile
  -        by
  -        changing your setup files which can be either .profile or .kshrc.</p>
  +        <p>If you wish to make this setting permanent, you need to change
  +		your profile by changing your setup files which can be either .profile or .kshrc.</p>
   
           <p>In addition, you will also need to set the environment variables XERCESCROOT,
           ICUROOT and the library search path. (LIBPATH on AIX, LD_LIBRARY_PATH on
           Solaris and Linux, SHLIB_PATH on HP-UX).</p>
   
  -        <p>Note: XERCESCROOT and ICUROOT are needed only if you intend to
  +        <note>XERCESCROOT and ICUROOT are needed only if you intend to
           recompile the samples or build your own applications. The library path is
  -        necessary to link the shared libraries at runtime.</p>
  +        necessary to link the shared libraries at runtime.</note>
   
           <p>For Bourne Shell, K Shell or Bash, type:</p>
  -
  -<source>
  -export XERCESCROOT=&lt;wherever you installed &XercesCName;>
  +<source>export XERCESCROOT=&lt;wherever you installed &XercesCName;>
   export ICUROOT=&lt;wherever you installed ICU>
   export LIBPATH=$XERCESCROOT/lib:$LIBPATH (on AIX)
   export LD_LIBRARY_PATH=$XERCESCROOT/lib:$LD_LIBRARY_PATH (on Solaris, Linux)
   export SHLIB_PATH=$XERCESCROOT/lib:$SHLIB_PATH (on HP-UX)</source>
   
  -    <p>For C Shell, type:</p>
  -
  -<source>
  -setenv XERCESCROOT "&lt;wherever you installed &XercesCName;>"
  +    	<p>For C Shell, type:</p>
  +<source>setenv XERCESCROOT "&lt;wherever you installed &XercesCName;>"
   setenv ICUROOT "&lt;wherever you installed ICU>"
   setenv LIBPATH "$XERCESCROOT/lib:$LIBPATH" (on AIX)
   setenv LD_LIBRARY_PATH "$XERCESCROOT/lib:$LD_LIBRARY_PATH" (on Solaris, Linux)
  -setenv SHLIB_PATH "$XERCESCROOT/lib:$SHLIB_PATH" (on HP-UX)
  -</source>
  +setenv SHLIB_PATH "$XERCESCROOT/lib:$SHLIB_PATH" (on HP-UX)</source>
   
  -        <p>IMPORTANT NOTE: If you need to build the samples after installation,
  -        make sure you read and follow the build instructions given in the <jump href="faqs.html">FAQ</jump>.</p>
  +        <note>If you need to build the samples after installation,
  +        make sure you read and follow the build instructions given in the
  +		<jump href="build.html">FAQ</jump>.</note>
   
      </s2>
   </s1>
  
  
  
  1.2       +98 -353   xml-site/sources/xerces-c/migration.xml
  
  Index: migration.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/migration.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- migration.xml	9 Dec 1999 02:09:21 -0000	1.1
  +++ migration.xml	14 Feb 2002 16:44:20 -0000	1.2
  @@ -1,359 +1,104 @@
   <?xml version="1.0" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
  -<s1 title="Migrating from V2 to V3">
  -<p>
  -This document is a discussion of the technical differences between
  -the 2.x code base and the new code base. </p>
  -
  -<s2 title="General Improvements">
  -
  -<p>The new version is improved in many ways. Some general improvements are
  -significantly better conformance to the XML spec, cleaner internal architecture,
  -many bug fixes, and better speed.</p>
  -
  -<s3 title="Compliance">
  -<p>Except for a couple of the very obscure (mostly related to the 'standalone' mode),
  -this version should be quite compliant. We have more than a thousand tests, some
  -collected from various public sources and some IBM generated, which are used to
  -do regression testing. The C++ parser is now passing all but a handful of them.
  -</p></s3>
  -
  -<s3 title="Bug Fixes">
  -<p>This version has many bug fixes with regard to Version 2. Some of these were reported by
  -users and some were brought up by way of the conformance testing.</p>
  -</s3>
  -
  -<s3 title="Speed">
  -<p>Much work was done to speed up this version. Some of the new features, such
  -as namespaces, and conformance checks ended up eating up some of these gains,
  -but overall the new version is significantly faster than previous versions,
  -even while doing more.</p>
  -</s3>
  -
  -</s2>
  -
  -<s2 title="The Samples">
  -<p>
  -The sample programs no longer use any of the unsupported util/xxx
  -classes. They only existed to
  -allow us to write portable samples. But, since we feel that the wide
  -character APIs are supported on a lot of platforms these days, it was
  -decided to go ahead and just write the samples in terms of these.
  -If your system does not support these APIs, you will not be able
  -to build and run the samples. On some platforms, these APIs might
  -perhaps be optional packages or require runtime updates or some such action.
  -</p><p>
  -More samples have been added as well. These show off some of the
  -new functionality introduced in the V3 code base. And the existing
  -ones have been tighted up a bit as well.</p>
  -
  -<p>The new samples are:</p>
  -
  -<ol>
  -   <li>PParse - Demonstrates 'progressive parse', (see below)</li>
  -   <li>StdInParse - Demonstrates use of the standard in input source</li>
  -   <li>EnumVal - Shows how to enumerate the markup decls in a DTD Validator</li>
  -</ol>
  -
  -</s2>
  -<s2 title="Parser Classes">
  -<p>In the 2.x code base, there were the following parser classes
  -(in the src/parsers/ source directory): NonValidatingSAXParser,
  -ValidatingSAXParser, NonValidatingDOMParser, ValidatingDOMParser.
  -The non-validating ones were the base classes and the validating
  -ones just derived from them and turned on the validation.
  -This was deemed a little bit overblown, considering the tiny
  -amount of code required to turn on validation and the fact
  -that it makes people use a pointer to the parser in most cases
  -(if they needed to support either validating or non-validating versions.)
  -</p><p>
  -The new code base just has SAXParer and DOMParser classes. These
  -are capable of handling both validating and non-validating modes,
  -according to the state of a flag that you can set on them. For
  -instance, here is a code snippet that shows this in action.
  -</p>
  -
  -<source>
  -void ParseThis(const  XMLCh* const fileToParse,
  -               const bool validate)
  -{
  -    //
  -    // Create a SAXParser. It can now just be
  -    // created by value on the stack if we want
  -    // to parse something within this scope.
  -    //
  -    SAXParser myParser;
  -
  -    // Tell it whether to validate or not
  -    myParser.setDoValidation(validate);
  -
  -    // Parse and catch exceptions...
  -    try
  -    {
  -        myParser.parse(fileToParse);
  -    }
  -
  -    ...
  -};
  -</source>
  -
  -<p>
  -We feel that this is a simpler architecture, and that it makes things
  -easier for you. In the above example, for instance, the parser will be
  -cleaned up for you automatically upon exit since you don't have to
  -allocate it anymore.
  -</p>
  -
  -</s2>
  -
  -<s2 title="DOM Level 2 support">
  -<p>
  -Experimental early support for some parts of the DOM level
  -2 specification have been added. These address some of the
  -shortcomings in our DOM implementation,
  -such as a simple, standard mechanism for tree traversal.
  -</p>
  -
  -</s2>
  -<s2 title="Progressive Parsing">
  -<p>The new parser classes support, in addition to the <ref>parse()</ref>
  -method, two new parsing methods, <ref>parseFirst()</ref> and <ref>parseNext()</ref>.
  -These are designed to support 'progressive parsing', so that
  -you don't have to depend upon throwing an exception to
  -terminate the parsing operation. Calling parseFirst() will
  -cause the DTD (or in the future, Schema) to be parsed (both
  -internal and external subsets) and any pre-content, i.e. everything
  -up to but not including the root element. Subsequent calls to
  -parseNext() will cause one more pieces of markup to be parsed,
  -and spit out from the core scanning code to the parser (and
  -hence either on to you if using SAX or into the DOM tree if
  -using DOM.) You can quit the parse any time by just not
  -calling parseNext() anymore and breaking out of the loop. When
  -you call parseNext() and the end of the root element is the
  -next piece of markup, the parser will continue on to the
  -end of the file and return false, to let you know that the
  -parse is done. So a typical progressive parse loop will look
  -like this:</p>
  -
  -<source>
  -    // Create a progressive scan token
  -    XMLPScanToken token;
  -
  -    if (!parser.parseFirst(xmlFile, token))
  -    {
  -        cerr &lt;&lt; "scanFirst() failed\n" &lt;&lt; endl;
  -        return 1;
  -    }
  -
  -    //
  -    // We started ok, so lets call scanNext()
  -    // until we find what we want or hit the end.
  -    //
  -    bool gotMore = true;
  -    while (gotMore &amp;&amp; !handler.getDone())
  -       gotMore = parser.parseNext(token);
  -</source>
  -
  -<p>
  -In this case, our event handler object (named 'handler' surprisingly
  -enough) is watching form some criteria and will return a
  -status from its getDone() method. Since the handler sees
  -the SAX events coming out of the SAXParser, it can tell
  -when it finds what it wants. So we loop until we get no
  -more data or our handler indicates that it saw what it wanted to see.
  -</p>
  -<note>In the case of the normal parse() call, the end of the parse
  -is unambiguous and the parser will flush any open entities on exit
  -(closing files, sockets, memory buffers, etc...) that were open
  -when the exit completed. In the progressive parse scenario, it cannot
  -know when you are done unless you parse to the end. So, to insure
  -that all entites are closed, you should typically destroy the parser.
  -If you are going to reuse the parser again and again, each reuse will
  -implicitly flush any previous content, but any opened entities will
  -remain opened until you do one of these things.</note>
  -
  -<p>Also note that you must create a scan token and pass it back
  -in on each call. This insures that things don't get done out of
  -sequence. When you call parseFirst() or parse(), any previous scan
  -tokens are invalidated and will cause an error if used again. This
  -prevents incorrect mixed use of the two different parsing
  -schemes or incorrect calls to parseNext().</p>
  -
  -</s2>
  -<s2 title="Namespace support">
  -<p>
  -The C++ parser now supports namespaces. With current
  -XML interfaces (SAX/DOM) this doesn't mean very much because
  -these APIs are incapable of passing on the namespace information.
  -However, if you are using our internal APIs to write your own
  -parsers, you can make use of this new information. Since the
  -internal event APIs must be able to now support both namespace
  -and non-namespace information, they have more parameters. These
  -allow namespace information to be passed along.
  -</p>
  -<p>
  -Most of the samples now have a new command line parameter to
  -turn on namespace support. You turn on namespaces like this:
  -</p>
  -
  -<source>
  -    SAXParser myParser;
  -
  -    // Tell it whether to do namespacse
  -    myParser.setDoNamespaces(true);
  -</source>
  -</s2>
  -
  -<s2 title="Moved Classes to src/framework">
  -<p>
  -Some of the classes previously in the src/internal/
  -directory have been moved to their more correct location
  -in the src/framework/ directory. These are classes used by
  -the outside world and should have been framework classes
  -to begin with. Also, to avoid name classes in the absense
  -of C++ namespace support, some of these classes have been
  -renamed to make them more XML specific and less likely to
  -clash. More classes might end up being moved to framework
  -as well.
  -</p>
  -<p>
  -So you might have to change a few include statements to
  -find these classes in their new locations. And you might
  -have to rename some of the names of the classes, if you
  -used any of the ones whose names were changed.
  -</p>
  -</s2>
  -
  -
  -<s2 title="Loadable Message Text">
  -<p>
  -The system now supoprts loadable message text, instead of
  -having it hard coded into the program. The current drop
  -still just supports English, but it can now support other
  -languages. Anyone interested in contributing any translations
  -should contact us. This would be an extremely useful service.
  -</p>
  -
  -<p>
  -In order to support the local message loading services, we
  -have created a pretty flexible framework for supporting
  -loadable text. Firstly, there is now an XML file, in the
  -src/NLS/ directory, which contains all of the error messages.
  -There is a simple program, in the Tools/NLSXlat/ directory,
  -which can spit out that text in various formats. It currently
  -supports a simple 'in memory' format (i.e. an array of strings),
  -the Win32 resource format, and the message catalog format.
  -The 'in memory' format is intended for very simple installations
  -or for use when porting to a new platform (since you can use
  -it until you can get your own local message loading support done.)
  -</p>
  -<p>
  -In the src/util/ directory, there is now an XMLMsgLoader class.
  -This is an abstraction from which any number of message loading
  -services can be derived. Your platform driver file can create
  -whichever type of message loader it wants to use on that platform.
  -We currently have versions for the in memory format, the Win32
  -resource format, and the message catalog format. An ICU one is
  -present but not implemented yet. Some of the platforms can
  -support multiple message loaders, in which case a #define token
  -is used to control which one is used. You can set this in your
  -build projects to control the message loader type used.
  -</p>
  -<p>
  -This is also a good place to mention that the Java and C++
  -messages are now the <em>same</em>, since both are being taken
  -from the same XML message file.</p>
  -</s2>
  -
  -<s2 title="Pluggable Validators">
  -<p>
  -In a preliminary move to support Schemas, and to make them
  -first class citizens just like DTDs, the system has been
  -reworked internally to make validators completely pluggable.
  -So now the DTD validator code is under the src/validators/DTD/
  -directory, with a future Schema validator probably going into
  -the src/validators. The core scanner architecture now works
  -completely in terms of the framework/XMLValidator abstract
  -interface and knows almost nothing about DTDs or Schemas. For
  -now, if you don't pass in a validator to the parsers, they
  -will just create a DTDValidator. This means that, theoretically,
  -you could write your own validator. But we would not encourage
  -this for a while, until the semantics of the XMLValidator
  -interface are completely worked out and proven to handle
  -DTD and Schema cleanly.
  -</p>
  -</s2>
  -
  -
  -<s2 title="Pluggable Transcoders">
  -<p>
  -Another abstract framework added in the src/util/ directory
  -is to support pluggable transcoding services. The XMLTransService
  -class is an abtract API that can be derived from, to support
  -any desired transcoding service. XMLTranscoder is the
  -abstract API for a particular instance of a transcoder
  -for a particular encoding. The platform driver file decides
  -what specific type of transcoder to use, which allows each
  -platform to use its native transcoding services, or the ICU
  -service if desired.
  -</p>
  -<p>
  -Implementations are provided for Win32 native services, ICU
  -services, and the <ref>iconv</ref> services available on many Unix
  -platforms. The Win32 version only provides native code page
  -services, so it can only handle XML code in the intrinsic
  -encodings (UTF-8, ASCII, UTF-16, UCS-4.) The ICU version provides
  -all of the encodings that ICU supports. The <ref>iconv</ref> version will
  -support the encodings supported by the local system. You can use
  -transcoders we provide or create your own if you feel ours are
  -insufficient in some way, or if your platform requires an implementation
  -that we do not provide.
  -</p>
  -</s2>
  -
  -<s2 title="Util directory Reorganization">
  -<p>The src/util directory was becoming somewhat of a dumping
  -ground of platform and compiler stuff. So we reworked that
  -directory to better spread things out. The new scheme is:
  -</p>
  -
  -  <s3 title="util - The platform independent utility stuff">
  -  <ul>
  -  <li>MsgLoaders - Holds the msg loader implementations</li>
  -     <ol><li>ICU</li>
  -         <li>InMemory</li>
  -         <li>MsgCatalog</li>
  -         <li>Win32</li>
  -     </ol>
  -  <li>Compilers - All the compiler specific files</li>
  -  <li>Transcoders - Holds the transcoder implementations</li>
  -    <ol><li>Iconv</li>
  -        <li>ICU</li>
  -        <li>Win32</li>
  -    </ol>
  -  <li>Platforms</li>
  -    <ol><li>AIX</li>
  -        <li>HP-UX</li>
  -        <li>Linux</li>
  -        <li>Solaris</li>
  -        <li>....</li>
  -        <li>Win32</li>
  -    </ol>
  -
  -    </ul>
  -    </s3>
  -<p>
  -This organization makes things much easier to understand.
  -And it makes it easier to find which files you need and
  -which are optional. Note that only per-platform files have
  -any hard coded references to specific message loaders or
  -transcoders. So if you don't include the ICU implementations
  -of these services, you don't need to link in ICU or use
  -any ICU headers. The rest of the system works only in
  -terms of the abstraction APIs.
  -</p>
  +<s1 title="Migration">
  +    <s2 title="Migrating from &XercesCName; &XercesCVersion152; to &XercesCName; &XercesCVersion;">
  +      <p>This document is a discussion of the technical differences between
  +      &XercesCName; &XercesCVersion152; code base and the &XercesCName; &XercesCVersion; code base.</p>
  +
  +      <p>Topics discussed are:</p>
  +      <ul>
  +        <li><link anchor="NewFeatures">New features in &XercesCName; &XercesCVersion;</link></li>
  +        <li><link anchor="API">Public API Changes in &XercesCName; &XercesCVersion;</link></li>
  +        <ul>
  +            <li><link anchor="NewAPI">New Public API</link></li>
  +            <li><link anchor="ModifiedAPI">Public API Modified</link></li>
  +            <li><link anchor="DeprecatedAPI">Deprecated Public API</link></li>
  +        </ul>
  +      </ul>
  +    </s2>
  +
  +    <anchor name="NewFeatures"/>
  +    <s2 title="New features in &XercesCName; &XercesCVersion;">
  +      <ul>
  +        <li>Full Schema support is available in this release.
  +            See <jump href="schema.html">the Schema page</jump> for details.</li>
  +        <li>New sample SEnumVal to show how to enumerate the markup decls in a Schema Grammar is added.</li>
  +      </ul>
  +    </s2>
  +
  +    <anchor name="API"/>
  +    <s2 title="Public API Changes in &XercesCName; &XercesCVersion;">
  +
  +        <p>The following lists the public API changes between the &XercesCName;
  +           &XercesCVersion152; and the &XercesCName; &XercesCVersion; releases
  +           of the parser. </p>
  +
  +        <anchor name="NewAPI"/>
  +        <s3 title="New Public API">
  +            <ul>
  +              <li>It should not be a fatal error if a schema InputSource is not found.
  +                  Add the following new methods:</li>
  +                <ul>
  +                   <li>const bool InputSource::getIssueFatalErrorIfNotFound() const</li>
  +                   <li>void InputSource::setIssueFatalErrorIfNotFound(const bool flag</li>
  +                </ul>
  +              <li>Allow code to take advantage of the fact that the length of the prefix and
  +                  local name are known when constructing the QName.
  +                  Add the following new methods:</li>
  +                <ul>
  +                   <li>void QName::setNPrefix(const XMLCh*, const unsigned int)</li>
  +                   <li>void QName::setNLocalPart(const XMLCh*, const unsigned int)</li>
  +                </ul>
  +              <li>To support schemaLocation and noNamespaceSchemaLocation to be specified outside the
  +                  instance document, the following new methods are added:</li>
  +              <ul>
  +                <li>XMLCh* DOMParser::getExternalSchemaLocation() const</li>
  +                <li>XMLCh* DOMParser::getExternalNoNamespaceSchemaLocation() const</li>
  +                <li>void DOMParser::setExternalSchemaLocation(const XMLCh* const schemaLocation)</li>
  +                <li>void DOMParser::setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation)</li>
  +                <li>XMLCh* IDOMParser::getExternalSchemaLocation() const</li>
  +                <li>XMLCh* IDOMParser::getExternalNoNamespaceSchemaLocation() const</li>
  +                <li>void IDOMParser::setExternalSchemaLocation(const XMLCh* const schemaLocation)</li>
  +                <li>void IDOMParser::setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation)</li>
  +                <li>XMLCh* SAXParser::getExternalSchemaLocation() const</li>
  +                <li>XMLCh* SAXParser::getExternalNoNamespaceSchemaLocation() const</li>
  +                <li>void SAXParser::setExternalSchemaLocation(const XMLCh* const schemaLocation)</li>
  +                <li>void SAXParser::setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation)</li>
  +                <li>and the following properties are recognized by SAX2XMLReader:</li>
  +                <ul>
  +                   <li>http://apache.org/xml/properties/schema/external-schemaLocation</li>
  +                   <li>http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation</li>
  +                </ul>
  +              </ul>
  +              <li>To support identity constraints, the following new method is added:</li>
  +              <ul>
  +                <li>QName* XMLAttr::getAttName() const</li>
  +              </ul>
  +            </ul>
  +        </s3>
  +
  +        <anchor name="ModifiedAPI"/>
  +        <s3 title="Pulic API Modified">
  +            <ul>
  +              <li>To support attribute constraint checking, the constant values in XMLAttDef::DefAttTypes have been re-ordered.</li>
  +            </ul>
  +        </s3>
  +
  +        <anchor name="DeprecatedAPI"/>
  +        <s3 title="Deprecated Pulic API">
  +            <ul>
  +              <li>Root Element check is moved from XMLValidator to XMLScanner.  Thus XMLValidator::checkRootElement() is deprecated.</li>
  +            </ul>
  +        </s3>
   
  -</s2>
  +    </s2>
  +
  +    <s2 title="Migration Archive">
  +
  +       <p>For migration information to &XercesCName; &XercesCVersion152; or earlier,
  +          please refer to <jump href="migrate_archive.html">Migration Archive. </jump></p>
  +
  +    </s2>
   
   </s1>
  
  
  
  1.5       +772 -65   xml-site/sources/xerces-c/program.xml
  
  Index: program.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/program.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- program.xml	9 Dec 1999 02:07:59 -0000	1.4
  +++ program.xml	14 Feb 2002 16:44:20 -0000	1.5
  @@ -2,7 +2,59 @@
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
   <s1 title="Programming Guide">
  -  <s2 title="SAX Programming Guide">
  +
  +  <p>This page has sections on the following topics:</p>
  +  <ul>
  +    <li><link anchor="SAX1ProgGuide">SAX Programming Guide</link></li>
  +    <ul>
  +      <li><link anchor="ConstructParser">Constructing a parser</link></li>
  +      <li><link anchor="UsingSAX1API">Using the SAX API</link></li>
  +    </ul>
  +    <li><link anchor="SAX2ProgGuide">SAX2 Programming Guide</link></li>
  +    <ul>
  +      <li><link anchor="ConstructParser2">Constructing an XML Reader</link></li>
  +      <li><link anchor="UsingSAX2API">Using the SAX2 API</link></li>
  +      <li><link anchor="SAX2Features">Supported Features</link></li>
  +      <li><link anchor="SAX2Properties">Supported Properties</link></li>
  +    </ul>
  +    <li><link anchor="DOMProgGuide">DOM Programming Guide</link></li>
  +    <ul>
  +      <li><link anchor="JAVAandCPP">Comparision of Java and C++ DOM's</link></li>
  +      <ul>
  +        <li><link anchor="AccessAPI">Accessing the API from application code</link></li>
  +        <li><link anchor="ClassNames">Class Names</link></li>
  +        <li><link anchor="ObjMemMgmt">Objects and Memory Management</link></li>
  +      </ul>
  +      <li><link anchor="DOMString">DOMString</link></li>
  +      <ul>
  +        <li><link anchor="EqualityTesting">Equality Testing</link></li>
  +      </ul>
  +      <li><link anchor="Downcasting">Downcasting</link></li>
  +      <li><link anchor="Subclassing">Subclassing</link></li>
  +    </ul>
  +    <li><link anchor="IDOMProgGuide">Experimental IDOM Programming Guide</link></li>
  +    <ul>
  +      <li><link anchor="ConstructIDOMParser">Constructing a parser</link></li>
  +      <li><link anchor="DOMandIDOM">Comparision of C++ DOM and IDOM</link></li>
  +      <ul>
  +        <li><link anchor="Motivation">Motivation behind new design</link></li>
  +        <li><link anchor="IDOMClassNames">Class Names</link></li>
  +        <li><link anchor="IDOMObjMgmt">Objects Management</link></li>
  +        <li><link anchor="IDOMMemMgmt">Memory Management</link></li>
  +          <ul>
  +            <li><link anchor="IDOMMemImplicit">Implicit Object Deletion</link></li>
  +            <li><link anchor="IDOMMemExplicit">Explicit Object Deletion</link></li>
  +          </ul>
  +        <li><link anchor="DOMStringXMCh">DOMString vs. XMLCh</link></li>
  +      </ul>
  +    </ul>
  +  </ul>
  +
  +
  +  <anchor name="SAX1ProgGuide"/>
  +  <s2 title="SAX1 Programming Guide">
  +
  +    <anchor name="ConstructParser"/>
       <s3 title="Constructing a parser">
         <p>In order to use &XercesCName; to parse XML files, you will
           need to create an instance of the SAXParser class. The example
  @@ -11,21 +63,21 @@
           required by the SAX API are provided using the HandlerBase
           class supplied with &XercesCName;.</p>
   
  -      <source><![CDATA[
  -int main (int argc, char* args[]) {
  +<source>int main (int argc, char* args[]) {
   
       try {
           XMLPlatformUtils::Initialize();
       }
       catch (const XMLException&amp; toCatch) {
  -        cout << "Error during initialization! :\n"
  -             << toCatch.getMessage() << "\n";
  +        cout &lt;&lt; "Error during initialization! :\n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n";
           return 1;
       }
   
       char* xmlFile = "x1.xml";
       SAXParser* parser = new SAXParser();
       parser->setDoValidation(true);    // optional.
  +	parser->setDoNamespaces(true);    // optional
   
       DocumentHandler* docHandler = new HandlerBase();
       ErrorHandler* errHandler = (ErrorHandler*) docHandler;
  @@ -35,15 +87,24 @@
       try {
           parser->parse(xmlFile);
       }
  -    catch (const XMLException& toCatch) {
  -        cout << "\nFile not found: '" << xmlFile << "'\n"
  -             << "Exception message is: \n"
  -             << toCatch.getMessage() << "\n" ;
  +    catch (const XMLException&amp; toCatch) {
  +        cout &lt;&lt; "Exception message is: \n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n" ;
           return -1;
       }
  -}
  -        ]]></source>
  +    catch (const SAXParseException&amp; toCatch) {
  +        cout &lt;&lt; "Exception message is: \n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n" ;
  +        return -1;
  +    }
  +    catch (...) {
  +        cout &lt;&lt; "Unexpected Exception \n" ;
  +        return -1;
  +    }
  +}</source>
       </s3>
  +
  +    <anchor name="UsingSAX1API"/>
       <s3 title="Using the SAX API">
         <p>The SAX API for XML parsers was originally developed for
           Java.  Please be aware that there is no standard SAX API for
  @@ -75,21 +136,18 @@
           additional examples of how to write handler classes.</p>
   
         <p>This is the header file MySAXHandler.hpp:</p>
  -      <source><![CDATA[
  -#include <sax/HandlerBase.hpp>
  +<source>#include &lt;sax/HandlerBase.hpp>
   
   class MySAXHandler : public HandlerBase {
   public:
  -    void startElement(const XMLCh* const, AttributeList&);
  -    void fatalError(const SAXParseException&);
  -};
  -        ]]></source>
  +    void startElement(const XMLCh* const, AttributeList&amp;);
  +    void fatalError(const SAXParseException&amp;);
  +};</source>
   
         <p>This is the implementation file MySAXHandler.cpp:</p>
   
  -      <source><![CDATA[
  -#include "MySAXHandler.hpp"
  -#include <iostream.h>
  +<source>#include "MySAXHandler.hpp"
  +#include &lt;iostream.h>
   
   MySAXHandler::MySAXHandler()
   {
  @@ -101,26 +159,293 @@
       // transcode() is an user application defined function which
       // converts unicode strings to usual 'char *'. Look at
       // the sample program SAXCount for an example implementation.
  -    cout << "I saw element: " << transcode(name) << endl;
  +    cout &lt;&lt; "I saw element: " &lt;&lt; transcode(name) &lt;&lt; endl;
   }
   
  -MySAXHandler::fatalError(const SAXParseException& exception)
  +MySAXHandler::fatalError(const SAXParseException&amp; exception)
   {
  -    cout << "Fatal Error: " << transcode(exception.getMessage())
  -         << " at line: " << exception.getLineNumber()
  -         << endl;
  -}
  -        ]]></source>
  +    cout &lt;&lt; "Fatal Error: " &lt;&lt; transcode(exception.getMessage())
  +         &lt;&lt; " at line: " &lt;&lt; exception.getLineNumber()
  +         &lt;&lt; endl;
  +}</source>
   
         <p>The XMLCh and AttributeList types are supplied by
           &XercesCName; and are documented in the include
           files. Examples of their usage appear in the source code to
           the sample applications.</p>
  +    </s3>
  +  </s2>
  +
  +  <anchor name="SAX2ProgGuide"/>
  +  <s2 title="SAX2 Programming Guide">
  +
  +    <anchor name="ConstructParser2"/>
  +    <s3 title="Constructing an XML Reader">
  +      <p>In order to use &XercesCName; to parse XML files, you will
  +        need to create an instance of the SAX2XMLReader class. The example
  +        below shows the code you need in order to create an instance
  +        of SAX2XMLReader. The ContentHandler and ErrorHandler instances
  +        required by the SAX API are provided using the DefaultHandler
  +        class supplied with &XercesCName;.</p>
  +
  +<source>int main (int argc, char* args[]) {
  +
  +    try {
  +        XMLPlatformUtils::Initialize();
  +    }
  +    catch (const XMLException&amp; toCatch) {
  +        cout &lt;&lt; "Error during initialization! :\n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n";
  +        return 1;
  +    }
  +
  +    char* xmlFile = "x1.xml";
  +    SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
  +    parser->setFeature(XMLString::transcode("http://xml.org/sax/features/validation", true)   // optional
  +    parser->setFeature(XMLString::transcode("http://xml.org/sax/features/namespaces", true)   // optional
  +
  +    ContentHandler* contentHandler = new DefaultHandler();
  +    ErrorHandler* errHandler = (ErrorHandler*) contentHandler;
  +    parser->setContentHandler(contentHandler);
  +    parser->setErrorHandler(errHandler);
  +
  +    try {
  +        parser->parse(xmlFile);
  +    }
  +    catch (const XMLException&amp; toCatch) {
  +        cout &lt;&lt; "Exception message is: \n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n" ;
  +        return -1;
  +    }
  +    catch (const SAXParseException&amp; toCatch) {
  +        cout &lt;&lt; "Exception message is: \n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n" ;
  +        return -1;
  +    }
  +    catch (...) {
  +        cout &lt;&lt; "Unexpected Exception \n" ;
  +        return -1;
  +    }
  +}</source>
  +    </s3>
  +
  +    <anchor name="UsingSAX2API"/>
  +    <s3 title="Using the SAX2 API">
  +      <p>The SAX2 API for XML parsers was originally developed for
  +        Java.  Please be aware that there is no standard SAX2 API for
  +        C++, and that use of the &XercesCName; SAX2 API does not
  +        guarantee client code compatibility with other C++ XML
  +        parsers.</p>
  +
  +      <p>The SAX2 API presents a callback based API to the parser. An
  +        application that uses SAX2 provides an instance of a handler
  +        class to the parser. When the parser detects XML constructs,
  +        it calls the methods of the handler class, passing them
  +        information about the construct that was detected. The most
  +        commonly used handler classes are ContentHandler which is
  +        called when XML constructs are recognized, and ErrorHandler
  +        which is called when an error occurs. The header files for the
  +        various SAX2 handler classes are in
  +        '&lt;&XercesCInstallDir;>/include/sax2'</p>
  +
  +      <p>As a convenience, &XercesCName; provides the class
  +        DefaultHandler, which is a single class which is publicly derived
  +        from all the Handler classes. DefaultHandler's default
  +        implementation of the handler callback methods is to do
  +        nothing. A convenient way to get started with &XercesCName; is
  +        to derive your own handler class from DefaultHandler and override
  +        just those methods in HandlerBase which you are interested in
  +        customizing. This simple example shows how to create a handler
  +        which will print element names, and print fatal error
  +        messages. The source code for the sample applications show
  +        additional examples of how to write handler classes.</p>
  +
  +      <p>This is the header file MySAX2Handler.hpp:</p>
  +<source>#include &lt;sax2/DefaultHandler.hpp>
  +
  +class MySAX2Handler : public DefaultHandler {
  +public:
  +    void startElement(
  +        const   XMLCh* const    uri,
  +        const   XMLCh* const    localname,
  +        const   XMLCh* const    qname,
  +        const   Attributes&amp;     attrs
  +    );
  +    void fatalError(const SAXParseException&amp;);
  +};</source>
  +
  +      <p>This is the implementation file MySAX2Handler.cpp:</p>
  +
  +<source>#include "MySAX2Handler.hpp"
  +#include &lt;iostream.h>
  +
  +MySAX2Handler::MySAX2Handler()
  +{
  +}
  +
  +MySAX2Handler::startElement(const   XMLCh* const    uri,
  +                            const   XMLCh* const    localname,
  +                            const   XMLCh* const    qname,
  +                            const   Attributes&amp;     attrs)
  +{
  +    // transcode() is an user application defined function which
  +    // converts unicode strings to usual 'char *'. Look at
  +    // the sample program SAX2Count for an example implementation.
  +    cout &lt;&lt; "I saw element: " &lt;&lt; transcode(qname) &lt;&lt; endl;
  +}
  +
  +MySAX2Handler::fatalError(const SAXParseException&amp; exception)
  +{
  +    cout &lt;&lt; "Fatal Error: " &lt;&lt; transcode(exception.getMessage())
  +         &lt;&lt; " at line: " &lt;&lt; exception.getLineNumber()
  +         &lt;&lt; endl;
  +}</source>
  +
  +      <p>The XMLCh and Attributes types are supplied by
  +        &XercesCName; and are documented in the include
  +        files. Examples of their usage appear in the source code to
  +        the sample applications.</p>
  +    </s3>
  +
  +    <anchor name="SAX2Features"/>
  +    <s3 title="Xerces SAX2 Supported Features">
  +
  +       <p>The behavior of the SAX2XMLReader is dependant on the values of the following features.
  +       All of the features below can be set using the function <code>SAX2XMLReader::setFeature(cons XMLCh* const, const bool)</code>.
  +       And can be queried using the function <code>bool SAX2XMLReader::getFeature(const XMLCh* const)</code>.
  +       </p>
  +       <p>None of these features can be modified in the middle of a parse, or an exception will be thrown.</p>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://xml.org/sax/features/namespaces</em></td></tr>
  +            <tr><td><em>true:</em></td><td> Perform Namespace processing (default)</td></tr>
  +            <tr><td><em>false:</em></td><td> Optionally do not perform Namespace processing</td></tr>
  +        </table>
  +
  +        <p/>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://xml.org/sax/features/namespace-prefixes</em></td></tr>
  +            <tr><td><em>true:</em></td><td> Report the orignal prefixed names and attributes used for Namespace declarations (default)</td></tr>
  +            <tr><td><em>false:</em></td><td> Do not report attributes used for Namespace declarations, and optionally do not report original prefixed names. </td></tr>
  +        </table>
  +
  +        <p/>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://xml.org/sax/features/validation</em></td></tr>
  +            <tr><td><em>true:</em></td><td> Report all validation errors. (default)</td></tr>
  +            <tr><td><em>false:</em></td><td> Do not report validation errors. </td></tr>
  +        </table>
  +
  +        <p/>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://apache.org/xml/features/validation/dynamic</em></td></tr>
  +            <tr><td><em>true:</em></td><td> The parser will validate the document only if a grammar is specified.  (http://xml.org/sax/features/validation must be true)</td></tr>
  +            <tr><td><em>false:</em></td><td> Validation is determined by the state of the http://xml.org/sax/features/validation feature (default)</td></tr>
  +        </table>
  +
  +        <p/>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://apache.org/xml/features/validation/schema</em></td></tr>
  +            <tr><td><em>true:</em></td><td> Enable the parser's schema support. (default) </td></tr>
  +            <tr><td><em>false:</em></td><td> Disable the parser's schema support. </td></tr>
  +        </table>
  +
  +        <p/>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://apache.org/xml/features/validation/schema-full-checking</em></td></tr>
  +            <tr><td><em>true:</em></td><td> Enable full schema constraint checking, including checking
  +                         which may be time-consuming or memory intensive. Currently, particle unique
  +                         attribution constraint checking and particle derivation resriction checking
  +                         are controlled by this option. </td></tr>
  +            <tr><td><em>false:</em></td><td> Disable full schema constraint checking (default). </td></tr>
  +        </table>
  +
  +        <p/>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://apache.org/xml/features/validation/reuse-grammar</em></td></tr>
  +            <tr><td><em>true:</em></td><td> The parser will reuse grammar information from previous parses in subsequent parses. </td></tr>
  +            <tr><td><em>false:</em></td><td> The parser will not reuse any grammar information. (default)</td></tr>
  +        </table>
  +
  +        <p/>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://apache.org/xml/features/validation/reuse-validator</em> (deprecated) <br/>
  +             Please use <em>http://apache.org/xml/features/validation/reuse-grammar</em>
  +            </td></tr>
  +            <tr><td><em>true:</em></td><td> The parser will reuse grammar information from previous parses in subsequent parses. </td></tr>
  +            <tr><td><em>false:</em></td><td> The parser will not reuse any grammar information. (default)</td></tr>
  +        </table>
  +
  +    </s3>
  +
  +    <anchor name="SAX2Properties"/>
  +    <s3 title="Xerces SAX2 Supported Properties">
  +
  +       <p>The behavior of the SAX2XMLReader is dependant on the values of the following properties.
  +       All of the properties below can be set using the function <code>SAX2XMLReader::setProperty(const XMLCh* const, void*)</code>.
  +       It takes a void pointer as the property value.  Application is required to initialize this void
  +       pointer to a correct type.  Please check the column "Value Type" below
  +       to learn exactly what type of property value each property expects for processing.
  +       Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
  +       If the same property is set more than once, the last one takes effect.</p>
  +
  +       <p>Property values can be queried using the function <code>void* SAX2XMLReader::getFeature(const XMLCh* const)</code>.
  +        The parser owns the returned pointer, and the memory allocated for the returned pointer will
  +        be destroyed when the parser is deleted.  To ensure assessiblity of the returned information after
  +        the parser is deleted, callers need to copy and store the returned information somewhere else.
  +        Since the returned pointer is a generic void pointer, check the column "Value Type" below to learn
  +        exactly what type of object each property returns for replication.</p>
  +
  +       <p>None of these properties can be modified in the middle of a parse, or an exception will be thrown.</p>
  +
  +        <table>
  +            <tr><td colspan="2"><em>http://apache.org/xml/properties/schema/external-schemaLocation</em></td></tr>
  +            <tr><td><em>Description</em></td><td> The XML Schema Recommendation explicitly states that
  +                        the inclusion of schemaLocation/ noNamespaceSchemaLocation attributes in the
  +                        instance document is only a hint; it does not mandate that these attributes
  +                        must be used to locate schemas.  Similar situation happens to &lt;import&gt;
  +                        element in schema documents. This property allows the user to specify a list
  +                        of schemas to use.  If the targetNamespace of a schema specified using this
  +                        method matches the targetNamespace of a schema occurring in the instance
  +                        document in schemaLocation attribute, or
  +                        if the targetNamespace matches the namespace attribute of &lt;import&gt;
  +                        element, the schema specified by the user using this property will
  +                        be used (i.e., the schemaLocation attribute in the instance document
  +                        or on the &lt;import&gt; element will be effectively ignored).</td></tr>
  +            <tr><td><em>Value</em></td><td> The syntax is the same as for schemaLocation attributes
  +                             in instance documents: e.g, "http://www.example.com file_name.xsd".
  +                             The user can specify more than one XML Schema in the list.</td></tr>
  +            <tr><td><em>Value Type</em></td><td> XMLCh* </td></tr>
  +        </table>
  +
  +        <p/>
  +        <table>
  +            <tr><td colspan="2"><em>http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation</em></td></tr>
  +            <tr><td><em>Description</em></td><td> The XML Schema Recommendation explicitly states that
  +                        the inclusion of schemaLocation/ noNamespaceSchemaLocation attributes in the
  +                        instance document is only a hint; it does not mandate that these attributes
  +                        must be used to locate schemas.  This property allows the user to specify the
  +                        no target namespace XML Schema Location externally.  If specified, the instance
  +                        document's noNamespaceSchemaLocation attribute will be effectively ignored.</td></tr>
  +            <tr><td><em>Value</em></td><td> The syntax is the same as for the noNamespaceSchemaLocation
  +                        attribute that may occur in an instance document: e.g."file_name.xsd".</td></tr>
  +            <tr><td><em>Value Type</em></td><td> XMLCh* </td></tr>
  +        </table>
   
       </s3>
     </s2>
   
  +  <anchor name="DOMProgGuide"/>
     <s2 title="DOM Programming Guide">
  +
  +    <anchor name="JAVAandCPP"/>
       <s3 title="Java and C++ DOM comparisons">
         <p>The C++ DOM API is very similar in design and use, to the
           Java DOM API bindings. As a consequence, conversion of
  @@ -132,22 +457,22 @@
         </p>
       </s3>
   
  +    <anchor name="AccessAPI"/>
       <s3 title="Accessing the API from application code">
   
  -<source><![CDATA[
  +<source>
   // C++
  -#include <dom/DOM.hpp>]]></source>
  +#include &lt;dom/DOM.hpp></source>
   
  -<source><![CDATA[
  -// Java
  -import org.w3c.dom.*]]></source>
  +<source>// Java
  +import org.w3c.dom.*</source>
   
         <p>The header file &lt;dom/DOM.hpp&gt; includes all the
           individual headers for the DOM API classes. </p>
   
       </s3>
   
  -
  +    <anchor name="ClassNames"/>
       <s3 title="Class Names">
         <p>The C++ class names are prefixed with "DOM_". The intent is
           to prevent conflicts between DOM class names and other names
  @@ -158,31 +483,29 @@
           conflict problem, but for the fact that many compilers do not
           yet support them.</p>
   
  -<source><![CDATA[
  -DOM_Document   myDocument;   // C++
  +<source>DOM_Document   myDocument;   // C++
   DOM_Node       aNode;
  -DOM_Text       someText;]]></source>
  +DOM_Text       someText;</source>
   
  -<source><![CDATA[
  -Document       myDocument;   // Java
  +<source>Document       myDocument;   // Java
   Node           aNode;
  -Text           someText;]]></source>
  +Text           someText;</source>
   
         <p>If you wish to use the Java class names in C++, then you need
           to typedef them in C++. This is not advisable for the general
           case - conflicts really do occur - but can be very useful when
           converting a body of existing Java code to C++.</p>
   
  -<source><![CDATA[
  -typedef DOM_Document  Document;
  +<source>typedef DOM_Document  Document;
   typedef DOM_Node      Node;
   
   Document   myDocument;        // Now C++ usage is
                                 // indistinguishable from Java
  -Node       aNode;]]></source>
  +Node       aNode;</source>
       </s3>
   
   
  +    <anchor name="ObjMemMgmt"/>
       <s3 title="Objects and Memory Management">
         <p>The C++ DOM implementation uses automatic memory management,
           implemented using reference counting.  As a result, the C++
  @@ -193,19 +516,17 @@
   
         <p>Consider the following code snippets </p>
   
  -<source><![CDATA[
  -// This is C++
  +<source>// This is C++
   DOM_Node       aNode;
   aNode = someDocument.createElement("ElementName");
   DOM_Node docRootNode = someDoc.getDocumentElement();
  -docRootNode.AppendChild(aNode);]]></source>
  +docRootNode.AppendChild(aNode);</source>
   
  -<source><![CDATA[
  -// This is Java
  +<source>// This is Java
   Node       aNode;
   aNode = someDocument.createElement("ElementName");
   Node docRootNode = someDoc.getDocumentElement();
  -docRootNode.AppendChild(aNode);]]></source>
  +docRootNode.AppendChild(aNode);</source>
   
         <p>The Java and the C++ are identical on the surface, except for
           the class names, and this similarity remains true for most DOM
  @@ -264,6 +585,7 @@
   
       </s3>
   
  +    <anchor name="DOMString"/>
       <s3 title="DOMString">
         <p>Class DOMString provides the mechanism for passing string
           data to and from the DOM API. DOMString is not intended to be
  @@ -271,12 +593,12 @@
           specific needs of the DOM API.</p>
   
         <p>The design derives from two primary sources: from the DOM's
  -        CharacterData interface and from class java.lang.string</p>
  +        CharacterData interface and from class <code>java.lang.string</code>.</p>
   
         <p>Main features are:</p>
   
         <ul>
  -        <li>Unicode, with fixed sized 16 bit storage elements.</li>
  +        <li>It stores Unicode text.</li>
   
           <li>Automatic memory management, using reference counting.</li>
   
  @@ -298,11 +620,12 @@
         <note>The ICU classes are a more general solution to UNICODE
           character handling for C++ applications.  ICU is an Open
           Source Unicode library, available at the <jump
  -        href="http://www.software.ibm.com/developerworks/opensource/icu/index.html">IBM
  +        href="http://oss.software.ibm.com/icu/">IBM
           DeveloperWorks website</jump>.</note>
   
       </s3>
   
  +    <anchor name="EqualityTesting"/>
       <s3 title="Equality Testing">
         <p>The DOMString equality operators (and all of the rest of the
           DOM class conventions) are modeled after the Java
  @@ -323,8 +646,7 @@
   
         </ul>
         <p>Here is an example of how the equality operators work: </p>
  -      <source><![CDATA[
  -DOMString a = "Hello";
  +<source>DOMString a = "Hello";
   DOMString b = a;
   DOMString c = a.clone();
   if (b == a)           //  This is true
  @@ -334,44 +656,42 @@
   if (b == a)           // Still true, and the string's
                         //    value is "Hello World"
   if (a.equals(c))      // false.  a is "Hello World";
  -                      //    c is still "Hello".
  -        ]]></source>
  +                      //    c is still "Hello".</source>
       </s3>
   
  +    <anchor name="Downcasting"/>
       <s3 title="Downcasting">
         <p>Application code sometimes must cast an object reference from
           DOM_Node to one of the classes deriving from DOM_Node,
           DOM_Element, for example.  The syntax for doing this in C++ is
           different from that in Java.</p>
   
  -<source><![CDATA[
  -// This is C++
  +<source>// This is C++
   DOM_Node       aNode = someFunctionReturningNode();
  -DOM_Element    el = (Element &) aNode;]]></source>
  +DOM_Element    el = (DOM_Element &amp;) aNode;</source>
   
  -<source><![CDATA[
  -// This is Java
  +<source>// This is Java
   Node       aNode = someFunctionReturningNode();
  -Element    el = (Element) aNode;]]></source>
  +Element    el = (Element) aNode;</source>
   
         <p>The C++ cast is not type-safe; the Java cast is checked for
           compatible types at runtime.  If necessary, a type-check can
           be made in C++ using the node type information: </p>
   
  -<source><![CDATA[
  -// This is C++
  +<source>// This is C++
   
   DOM_Node       aNode = someFunctionReturningNode();
   DOM_Element    el;    // by default, el will == null.
   
   if (anode.getNodeType() == DOM_Node::ELEMENT_NODE)
  -   el = (Element &) aNode;
  +   el = (DOM_Element &amp;) aNode;
   else
      // aNode does not refer to an element.
  -   // Do something to recover here.]]></source>
  +   // Do something to recover here.</source>
   
       </s3>
   
  +    <anchor name="Subclassing"/>
       <s3 title="Subclassing">
         <p>The C++ DOM classes, DOM_Node, DOM_Attr, DOM_Document, etc.,
           are not designed to be subclassed by an application
  @@ -381,6 +701,393 @@
           field for use by applications as a hook for extending nodes by
           referencing additional data or objects.  See the API
           description for DOM_Node for details.</p>
  +    </s3>
  +
  +  </s2>
  +
  +  <anchor name="IDOMProgGuide"/>
  +  <s2 title="Experimental IDOM Programming Guide">
  +    <p>The experimental IDOM API is a new design of the C++ DOM API.
  +       Please note that this experimental IDOM API is only a prototype
  +       and is subject to change.</p>
  +
  +    <anchor name="ConstructIDOMParser"/>
  +    <s3 title="Constructing a parser">
  +      <p>In order to use &XercesCName; to parse XML files using IDOM, you
  +        will need to create an instance of the IDOMParser class. The example
  +        below shows the code you need in order to create an instance of the
  +        IDOMParser.</p>
  +
  +      <source>
  +int main (int argc, char* args[]) {
  +
  +    try {
  +        XMLPlatformUtils::Initialize();
  +    }
  +    catch (const XMLException&amp; toCatch) {
  +        cout &lt;&lt; "Error during initialization! :\n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n";
  +        return 1;
  +    }
  +
  +    char* xmlFile = "x1.xml";
  +    IDOMParser* parser = new IDOMParser();
  +    parser->setValidationScheme(IDOMParser::Val_Always);    // optional.
  +    parser->setDoNamespaces(true);    // optional
  +
  +    ErrorHandler* errHandler = (ErrorHandler*) new HandlerBase();
  +    parser->setErrorHandler(errHandler);
  +
  +    try {
  +        parser->parse(xmlFile);
  +    }
  +    catch (const XMLException&amp; toCatch) {
  +        cout &lt;&lt; "Exception message is: \n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n" ;
  +        return -1;
  +    }
  +    catch (const SAXParseException&amp; toCatch) {
  +        cout &lt;&lt; "Exception message is: \n"
  +             &lt;&lt; DOMString(toCatch.getMessage()) &lt;&lt; "\n" ;
  +        return -1;
  +    }
  +    catch (...) {
  +        cout &lt;&lt; "Unexpected Exception \n" ;
  +        return -1;
  +    }
  +
  +    return 0;
  +}
  +      </source>
  +    </s3>
  +
  +    <anchor name="DOMandIDOM"/>
  +    <s3 title="Comparision of C++ DOM and IDOM">
  +      <p>
  +        This section outlines the differences between the C++ DOM and IDOM APIs.
  +      </p>
  +    </s3>
  +
  +    <anchor name="Motivation"/>
  +    <s3 title="Motivation behind new design">
  +      <p>
  +        The performance of the C++ DOM has not been as good as it
  +        might be, especially for use in server style applications.
  +        The DOM's reference counted automatic memory management has
  +        been the biggest time consumer. The situation becomes worse
  +        when running multi-threaded applications.
  +      </p>
  +      <p>
  +        The experimental C++ IDOM is a new alternative to the C++ DOM, and aims at
  +        meeting the following requirements:
  +      </p>
  +      <ul>
  +      <li>Reduced memory footprint.</li>
  +      <li>Fast.</li>
  +      <li>Good scalability on multiprocessor systems.</li>
  +      <li>More C++ like and less Java like.</li>
  +      </ul>
  +    </s3>
  +
  +    <anchor name="IDOMClassNames"/>
  +    <s3 title="Class Names">
  +      <p>
  +        The IDOM class names are prefixed with "IDOM_". The intent is
  +        to prevent conflicts between IDOM class names and DOM class names
  +        that may already be in use by an application or other
  +        libraries that a DOM based application must link with.
  +      </p>
  +
  +
  +      <source>
  +IDOM_Document*   myDocument;   // IDOM
  +IDOM_Node*       aNode;
  +IDOM_Text*       someText;
  +      </source>
  +
  +      <source>
  +DOM_Document     myDocument;   // DOM
  +DOM_Node         aNode;
  +DOM_Text         someText;
  +      </source>
  +    </s3>
  +
  +    <anchor name="IDOMObjMgmt"/>
  +    <s3 title="Objects Management">
  +      <p>Applications would use normal C++ pointers to directly access the
  +         implementation objects for Nodes in IDOM C++, while they would use
  +         object references in DOM C++.
  +      </p>
  +
  +      <p>Consider the following code snippets</p>
  +
  +
  +      <source>
  +// IDOM C++
  +IDOM_Node*       aNode;
  +IDOM_Node* docRootNode;
  +aNode = someDocument->createElement("ElementName");
  +docRootNode = someDocument->getDocumentElement();
  +docRootNode->appendChild(aNode);
  +      </source>
  +
  +      <source>
  +// DOM C++
  +DOM_Node       aNode;
  +DOM_Node docRootNode;
  +aNode = someDocument.createElement("ElementName");
  +docRootNode = someDocument.getDocumentElement();
  +docRootNode.appendChild(aNode);
  +      </source>
  +   </s3>
  +
  +
  +    <anchor name="IDOMMemMgmt"/>
  +    <s3 title="Memory Management">
  +      <p>The C++ IDOM implementation no longer uses reference counting for
  +         automatic memory management.  The C++ IDOM uses an independent storage
  +         allocator per document.  The storage for a DOM document is
  +         associated with the document node object.
  +         The advantage here is that allocation would require no synchronization
  +         in most cases (based on the the same threading model that we
  +         have now - one thread active per document, but any number of
  +         documents running in parallel with separate threads).
  +      </p>
  +
  +      <p>The allocator does not support a delete operation at all - all
  +         allocated memory would persist for the life of the document, and
  +         then the larger blocks would be returned to the system without separately
  +         deleting all of the individual nodes and strings within the document.
  +      </p>
  +
  +      <p>The C++ DOM and IDOM are similar in the use of factory methods in the
  +         document class for all object creation. They differ in the object deletion
  +         mechanism.
  +      </p>
  +
  +      <p>In C++ DOM, there is no explicit object deletion. The deallocation of
  +         memory is automatically taken care of by the reference counting.
  +      </p>
  +
  +      <p>In C++ IDOM, there is an implict and explict object deletion.
  +      </p>
  +    </s3>
  +
  +    <anchor name="IDOMMemImplicit"/>
  +      <s3 title="Implicit Object Deletion">
  +         <p>When parsing a document using an IDOMParser, all memory allocated
  +            for a DOM tree is associated to the DOM document.  And this storage
  +            will be automatically deleted when the parser instance is deleted (implicit).
  +         </p>
  +         <p>If you do multiple parse using the same IDOMParser instance, then
  +            multiple DOM documents will be generated and saved in a vector pool.
  +            All these documents (and thus all the allocated memory) won't be deleted
  +            until the parser instance is destroyed.  If you want to release the memory
  +            back to the system but don't want to destroy the IDOMParser instance at this moment,
  +            then you can call the method IDOMParser::resetDocumentPool to reset the document
  +            vector pool, provided that you do not need access to these documents anymore.
  +         </p>
  +
  +         <p>Consider the following code snippets: </p>
  +
  +         <source>
  +   // C++ IDOM - implicit deletion
  +   IDOMParser* parser = new IDOMParser();
  +   parser->parse(xmlFile)
  +   IDOM_Document *doc = parser->getDocument();
  +
  +   unsigned int i = 1000;
  +   while (i > 0) {
  +      parser->parse(xmlFile)
  +      IDOM_Document* myDoc = parser->getDocument();
  +      i--;
  +   }
  +
  +   // all allocated memory associated with these 1001 DOM documents
  +   // will be deleted implicitly when the parser instance is destroyed
  +   delete parser;
  +         </source>
  +
  +         <source>
  +   // C++ IDOM - implicit deletion
  +   // optionally release the memory
  +   IDOMParser* parser = new IDOMParser();
  +   unsigned int i = 1000;
  +   while (i > 0) {
  +      parser->parse(xmlFile)
  +      IDOM_Document *doc = parser->getDocument();
  +      i--;
  +   }
  +
  +   // instead of waiting until the parser instance is destroyed,
  +   // user can optionally choose to release the memory back to the system
  +   // if does not need access to these 1000 parsed documents anymore.
  +   parser->resetDocumentPool();
  +
  +   // now the parser has some fresh memory to work on for the following
  +   // big loop
  +   i = 1000;
  +   while (i > 0) {
  +      parser->parse(xmlFile)
  +      IDOM_Document *doc = parser->getDocument();
  +      i--;
  +   }
  +   delete parser;
  +
  +         </source>
  +      </s3>
  +
  +    <anchor name="IDOMMemExplicit"/>
  +      <s3 title="Explicit Object Deletion">
  +      <p>If user is manually building a DOM tree in memory using the document factory methods,
  +         then the user needs to explicilty delete the document object to free all the allocated memory.
  +         It normally falls under the following 3 scenarios:
  +      </p>
  +        <ul>
  +           <li>If a user is manually creating a DOM document using the document implementation
  +               factory methods, IDOM_DOMImplementation::getImplementation()->createDocument,
  +               then the user needs to explicilty delete the document object to free all
  +               allocated memory. </li>
  +           <li>If a user is creating a DocumentType object using the document implementation factory
  +               method, IDOM_DOMImplementation::getImplementation()->createDocumentType, then
  +               the user also needs to explicilty delete the document type object to free the
  +               allocated memory.</li>
  +           <li>Special case:  If a user is creating a DocumentType using the document
  +               implementation factory method, and clone the node WITHOUT assigning a document
  +               owner to that documentType object, then the cloned node also needs to be explicitly
  +               deleted.</li>
  +        </ul>
  +
  +      <p>Consider the following code snippets: </p>
  +
  +      <source>
  +// C++ IDOM - explicit deletion
  +// use the document implementation factory method to create a document type and a document
  +IDOM_DocumentType* myDocType;
  +IDOM_Document*   myDocument;
  +IDOM_Node*       root;
  +IDOM_Node*       aNode;
  +
  +myDocType  = IDOM_DOMImplementation::getImplementation()->createDocumentType(name, 0, 0);
  +myDocument = IDOM_DOMImplementation::getImplementation()->createDocument(0, name, myDocType);
  +root       = myDocument->getDocumentElement();
  +aNode      = myDocument->createElement(anElementname);
  +
  +root->appendChild(aNode);
  +
  +// need to delete both myDocType and myDocument which are created through DOM Implementation
  +delete myDocType;
  +delete myDocument;
  +      </source>
  +
  +      <source>
  +// C++ IDOM - explicit deletion
  +// use the document implementation factory method to create a document
  +IDOM_DocumentType* myDocType;
  +IDOM_Document*   myDocument;
  +IDOM_Node*       root;
  +IDOM_Node*       aNode;
  +
  +myDocument = IDOM_DOMImplementation::getImplementation()->createDocument();
  +myDocType  = myDocument->createDocumentType(name);
  +root       = myDocument->createElement(name);
  +aNode      = myDocument->createElement(anElementname);
  +
  +myDocument->appendChild(myDocType);
  +myDocument->appendChild(root);
  +root->appendChild(aNode);
  +
  +// the myDocType is created through myDocument, not through Document Implementation
  +// thus no need to delete myDocType
  +delete myDocument;
  +      </source>
  +
  +      <source>
  +// C++ IDOM - explicit deletion
  +// manually build a DOM document
  +// clone the document type object which does not have an owner yet
  +IDOM_DocumentType* myDocType1;
  +IDOM_DocumentType* myDocType;
  +IDOM_Document*   myDocument;
  +IDOM_Node*       root;
  +IDOM_Node*       aNode;
  +
  +myDocType  = IDOM_DOMImplementation::getImplementation()->createDocumentType(name, 0, 0);
  +myDocType1 = (IDOM_DocumentType*) myDocType->cloneNode(false);
  +myDocument = IDOM_DOMImplementation::getImplementation()->createDocument(0, name, myDocType);
  +
  +root       = myDocument->getDocumentElement();
  +aNode      = myDocument->createElement(anElementname);
  +
  +root->appendChild(aNode);
  +
  +// myDocType does not have an owner yet when myDocType1 was cloned.
  +// thus need to explicitly delete myDocType1
  +delete myDocType1;
  +delete myDocType;
  +delete myDocument;
  +      </source>
  +
  +      <source>
  +// C++ IDOM - explicit deletion
  +// manually build a DOM document
  +// clone the document type object that has an owner already
  +//   thus no need to delete the cloned object
  +IDOM_DocumentType* myDocType1;
  +IDOM_DocumentType* myDocType;
  +IDOM_Document*   myDocument;
  +IDOM_Node*       root;
  +IDOM_Node*       aNode;
  +
  +myDocType  = IDOM_DOMImplementation::getImplementation()->createDocumentType(name, 0, 0);
  +myDocument = IDOM_DOMImplementation::getImplementation()->createDocument(0, name, myDocType);
  +myDocType1 = (IDOM_DocumentType*) myDocType->cloneNode(false);
  +
  +root       = myDocument->getDocumentElement();
  +aNode      = myDocument->createElement(anElementname);
  +
  +root->appendChild(aNode);
  +
  +// myDocType already has myDocument as the owner when myDocType1 was cloned
  +// thus NO need to explicitly delete myDocType1
  +delete myDocType;
  +delete myDocument;
  +      </source>
  +      </s3>
  +
  +      <p>Key points to remember when using the C++ IDOM classes:</p>
  +
  +      <ul>
  +        <li>The DOM objects are accessed via C++ pointers.</li>
  +
  +        <li>The DOM objects - nodes, attributes, CData
  +        sections, etc., are created with the factory methods
  +        (create...) in the document class.</li>
  +
  +        <li>If you are manually building a DOM tree in memory, you
  +        need to explicitly delete the document object.
  +        Memory management will be automatically taken care of by
  +        the IDOM parser when parsing an instance document.</li>
  +
  +      </ul>
  +
  +    <anchor name="DOMStringXMCh"/>
  +    <s3 title="DOMString vs. XMLCh">
  +      <p>The IDOM C++ no longer uses DOMString to pass string data to
  +      and from the DOM API. Instead, the IDOM C++ uses plain, null-terminated
  +      (XMLCh *) utf-16 strings. The (XMLCh*) utf-16 type string is much
  +      simpler with lower overhead. All the string data would remain in
  +      memory until the document object is deleted.</p>
  +
  +    <source>
  +//C++ IDOM
  +const XMLCh* nodeValue = aNode->getNodeValue();
  +    </source>
  +
  +    <source>
  +//C++ DOM
  +DOMString    nodeValue = aNode.getNodeValue();
  +    </source>
       </s3>
   
     </s2>
  
  
  
  1.5       +67 -54    xml-site/sources/xerces-c/readme.xml
  
  Index: readme.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/readme.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- readme.xml	9 Dec 1999 02:07:59 -0000	1.4
  +++ readme.xml	14 Feb 2002 16:44:20 -0000	1.5
  @@ -3,72 +3,85 @@
   
   <s1 title="&XercesCFullName;">
   
  -    <s2 title="&XercesCName;++ Version &XercesCVersion;">
  +    <s2 title="&XercesCName; Version &XercesCVersion;">
   
  -<p>&XercesCName; is a validating XML parser written in a portable subset of C++.
  -&XercesCName; makes it easy to give your application
  -the ability to read and write XML data. A shared library is
  -provided for parsing, generating, manipulating, and validating XML
  -documents. &XercesCName; is faithful to the XML 1.0 recommendation
  -and associated standards (DOM 1.0, SAX 1.0, Namespaces). It also provides
  -early implementations of DOM Level 2.0 and soon it will support
  -XMLSchema. The parser provides high performance, modularity, and scalability.
  -Source code, samples and API documentation are provided with the parser. For
  -portability, care has been taken to make minimal use of templates,
  -no RTTI, no C++ namespaces, limited use of exceptions and minimal
  -use of #ifdefs.</p>
  -<p>&XercesCName; is fully compliant with Unicode 3.0 specification, making it
  -the first Unicode 3.0 compliant application.</p>
  -</s2>
  +        <p>&XercesCName; is a validating XML parser written in a portable subset of C++.
  +        &XercesCName; makes it easy to give your application the ability to read and write
  +        <jump href="http://www.w3.org/XML/">XML</jump> data.
  +        A shared library is provided for parsing, generating, manipulating, and validating XML
  +        documents.
  +        </p>
  +        <p>&XercesCName; is faithful to the
  +        <jump href="http://www.w3.org/TR/REC-xml">XML 1.0</jump> recommendation
  +        and associated standards (
  +        <jump href="http://www.w3.org/TR/REC-DOM-Level-1/">DOM 1.0</jump>,
  +        <jump href="http://www.w3.org/TR/DOM-Level-2-Core/">DOM 2.0</jump>.
  +        <jump href="http://sax.sourceforge.net/?selected=sax1">SAX 1.0</jump>,
  +        <jump href="http://sax.sourceforge.net/">SAX 2.0</jump>,
  +        <jump href="http://www.w3.org/TR/REC-xml-names/">Namespaces</jump>, and
  +        <jump href="http://www.w3.org/XML/Schema.html">W3C's XML Schema recommendation version 1.0</jump>.)
  +        </p>
  +        <p>The parser provides high performance, modularity, and scalability.
  +        Source code, samples and API documentation are provided with the parser. For
  +        portability, care has been taken to make minimal use of templates,
  +        no RTTI, no C++ namespaces and minimal use of #ifdefs.</p>
  +
  +    </s2>
   
       <s2 title="Applications of the &XercesCProjectName; Parser">
   
  -<p>&XercesCProjectName; has rich generating and validating capabilities. The parser is used for:</p>
  +        <p>&XercesCProjectName; has rich generating and validating capabilities. The parser is used for:</p>
   
  -<ul>
  -    <li>Building XML-savvy Web servers</li>
  -    <li>Building next generation of vertical applications that use XML as
  -      their data format</li>
  -    <li>On-the-fly validation for creating XML editors</li>
  -    <li>Ensuring the integrity of e-business data expressed in XML</li>
  -    <li>Building truly internationalized XML applications</li>
  -</ul>
  +        <ul>
  +            <li>Building XML-savvy Web servers</li>
  +            <li>Building next generation of vertical applications that use XML as
  +              their data format</li>
  +            <li>On-the-fly validation for creating XML editors</li>
  +            <li>Ensuring the integrity of e-business data expressed in XML</li>
  +            <li>Building truly internationalized XML applications</li>
  +        </ul>
       </s2>
   
       <s2 title="Features">
  -<ul>
  -<li>Conforms to XML Spec 1.0</li>
  -<li>Tracking of latest DOM (Level 1.0), SAX and namespace specs</li>
  -<li>Experimental DOM Level 2.0 implementation</li>
  -<li>Source code, samples, and docs provided</li>
  -<li>Programmatic generation, validation of XML</li>
  -<li>Pluggable catalogs, validators, encodings</li>
  -<li>High performance</li>
  -<li>Customizable error handling</li>
  -</ul>
  +        <ul>
  +            <li>Conforms to <jump href="http://www.w3.org/TR/REC-xml">XML Spec 1.0</jump></li>
  +            <li>Tracking of latest
  +            <jump href="http://www.w3.org/TR/REC-DOM-Level-1/">DOM (Level 1.0)</jump>,
  +            <jump href="http://www.w3.org/TR/DOM-Level-2-Core/">DOM (Level 2.0)</jump>,
  +            <jump href="http://sax.sourceforge.net/">SAX/SAX2</jump>,
  +            <jump href="http://www.w3.org/TR/REC-xml-names/">Namespace</jump>, and
  +            <jump href="http://www.w3.org/XML/Schema.html">W3C's XML Schema recommendation version 1.0</jump>
  +            specifications.</li>
  +            <li>Source code, samples, and documentation is provided.</li>
  +            <li>Programmatic generation and validation of XML</li>
  +            <li>Pluggable catalogs, validators and encodings</li>
  +            <li>High performance</li>
  +            <li>Customizable error handling</li>
  +        </ul>
       </s2>
   
       <s2 title="Platforms with Binaries">
  -    <ul>
  -        <li>Win32 (MSVC 6.0 compiler)</li>
  -        <li>Linux (RedHat 6.0)</li>
  -        <li>Solaris 2.6</li>
  -        <li>AIX 4.1.5 and higher</li>
  -        <li>HP-UX 10.2 (aCC and CC)</li>
  -        <li>HP-UX 11 (aCC and CC)</li>
  -    </ul>
  +        <ul>
  +            <li>Win32 using MSVC 6.0 SP3</li>
  +            <li>Linux (RedHat 6.1) using egcs-2.91.66 and glibc-2.1.2-11</li>
  +            <li>Solaris 2.6 using Forte C++ Version 6 Update 2</li>
  +            <li>AIX 4.3 using xlC_r 5.0.2</li>
  +            <li>HP-UX 11 using aCC A.03.13 with pthreads</li>
  +        </ul>
       </s2>
   
  -    <s2 title="Platforms Coming Soon">
  -    <ul>
  -        <li>FreeBSD</li>
  -        <li>SGI IRIX</li>
  -        <li>Unixware</li>
  -        <li>OS/390</li>
  -        <li>OS/2</li>
  -        <li>AS/400</li>
  -        <li>and more!</li>
  -    </ul>
  +    <s2 title="Other ports...">
  +        <ul>
  +            <li>OS/390</li>
  +            <li>AS/400</li>
  +            <li>FreeBSD</li>
  +            <li>SGI IRIX</li>
  +            <li>Macintosh</li>
  +            <li>OS/2</li>
  +            <li>PTX</li>
  +            <li>UnixWare</li>
  +            <li>and more!</li>
  +        </ul>
       </s2>
   
  -</s1>
  \ No newline at end of file
  +</s1>
  
  
  
  1.6       +2005 -29  xml-site/sources/xerces-c/releases.xml
  
  Index: releases.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/releases.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- releases.xml	15 Dec 1999 01:09:14 -0000	1.5
  +++ releases.xml	14 Feb 2002 16:44:20 -0000	1.6
  @@ -1,33 +1,2009 @@
  -<?xml version="1.0" standalone="no"?>
  +<?xml version="1.0"  encoding="iso-8859-1" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
   <s1 title="Releases">
  -    <s2 title="&XercesCFullName; Version 1.0.1: December 15, 1999">
  -        <ul>
  -            <li>Port to Solaris.</li>
  -            <li>Improved error recovery and clarified error messages.</li>
  -            <li>Added DOMTest program.</li>
  -        </ul>
  -    </s2>
  -
  -    <s2 title="&XercesCFullName; Version 1.0.0: December 7, 1999">
  -        <ul>
  -            <li>Released &XercesCName; after incorporating ICU as a value-added plug-in.</li>
  -            <li>Has bug fixes, better conformance, better speed and cleaner internal internal architecture</li>
  -            <li>Three additional samples added: PParse, StdInParse and EnumVal</li>
  -            <li>Experimental DOM Level 2 support</li>
  -            <li>Support for namespaces</li>
  -            <li>Loadable message text enabling future translations to be easily plugged-in</li>
  -            <li>Pluggable validators</li>
  -            <li>Pluggable transcoders</li>
  -            <li>Reorganized the util directory to better manage different platforms and compilers</li>
  -        </ul>
  -    </s2>
  -
  -    <s2 title="Apache Xerces-C: November 5, 1999">
  -        <ul>
  -            <li>Created initial code base derived from IBM's XML4C Version 2.0</li>
  -            <li>Modified documentation to reflect new name (Xerces-C)</li>
  -        </ul>
  -    </s2>
  +
  +<s2 title="&XercesCName; Version 1.6.0: December 6, 2001">
  +<table>
  +    <tr>
  +        <td>Date</td>
  +        <td>Contributor</td>
  +        <td>Description</td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Khaled Noaman</td>
  +        <td>Schema: Add Identity Constraint(Key, KeyRef, Unique, Selector, Field, and Partial XPath Support). <br/>
  +            Add XPathSymbols, <br/>
  +            XPathMatcherStack, <br/>
  +            XPathMatcher, <br/>
  +            XPathException, <br/>
  +            XercesXPath, <br/>
  +            ValueStoreCache, <br/>
  +            ValueStore, <br/>
  +            IdentityConstraint, <br/>
  +            IC_Unique, <br/>
  +            IC_Selector, <br/>
  +            IC_KeyRef, <br/>
  +            IC_Key, <br/>
  +            IC_Field, <br/>
  +            FieldValueMap, <br/>
  +            FieldActivator. <br/>
  +            Support Particle Derivation Constraint Checking.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>PeiYong Zhang</td>
  +        <td>DatatypeValidator:<br/>
  +             Support DateTimeValidator, <br/>
  +             DateTimeDatatypeValidator, <br/>
  +             DateDatatypeValidator, <br/>
  +             TimeDatatypeValidator, <br/>
  +             DayDatatypeValidator, <br/>
  +             MonthDatatypeValidator, <br/>
  +             MonthDayDatatypeValidator, <br/>
  +             YearDatatypeValidator, <br/>
  +             YearMonthDatatypeValidator, <br/>
  +             DurationDatatypeValidator. <br/>
  +             Add SchemaDataTimeException, <br/>
  +             XMLAbstractDoubleFloat, <br/>
  +             XMLDateTime.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 1959] setNodeValue throws exception when spec specifies NOP.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Erik Rydgren</td>
  +        <td>[Bug 2174] Bug in NamedNodeMapImpl.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Henry Zongaro</td>
  +        <td>Performance Enhancement.  Added setNPrefix and setNLocalPart methods in QName that
  +            allow code to take advantage of the fact that it knows the length of the prefix and
  +            local name, when possible.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Henry Zongaro</td>
  +        <td>Performance Enhancement.  Added a second ContentSpecNode constructor that allows
  +            the QName to be just assigned, not copied.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Henry Zongaro</td>
  +        <td>Performance Enhancement.  Added a second CMLeaf constructor that indicated the
  +            QName passed in was to be adopted.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Henry Zongaro</td>
  +        <td>Performance Enhancement.  Modify the handling of the fNEL option so that it results
  +            in fgCharCharsTable being modified, instead of having all of the low-level routines check
  +            the option.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-06</td>
  +        <td>Tinny Ng</td>
  +        <td>Make the runConfigure and associated config*, Makefile* in folders tests,
  +            samples and src more consistent.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-05</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 1236] Incorrect NMTOKENS attribute normalization.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-05</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 2752] Surrogate support incomplete.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-05</td>
  +        <td>Edward Avis</td>
  +        <td>Fix runConfigure which can run into infinite loop with invalid argument
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-05</td>
  +        <td>Tinny Ng</td>
  +        <td>Generate linker map for certain platforms
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-03</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 5237] PATH_MAX undefined during build without threading support.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-03</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 5179] Misprint in downcasting description.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-12-03</td>
  +        <td>Max Gotlib</td>
  +        <td>Add FreeBSD native transcoder (IconvFBSD).
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-30</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Build all tests on HP-UX 11.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-29</td>
  +        <td>Michael Huedepohl</td>
  +        <td>Add FreeBSD Support.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>PeiYong Zhang</td>
  +        <td>DOMMemTest: delete compiler generated temperary DOMString object "Hello Goodbye".
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>Fix broken ParserTest.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>Do not increment the error count if it is a warning.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Phil Brown</td>
  +        <td>[Bug 4019] XMLReader::getNextChar can over read (UTF-16).
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 4544] DOM_NodeList::getLength incorrect when called twice for empty list.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Artur Klauser</td>
  +        <td>[Bug 2238]libWWW problems with broken proxys and range requests.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Artur Klauser</td>
  +        <td>[Bug 2237] libWWW redirect error.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Matt Lovett</td>
  +        <td>[Bug 4422] BinMemInputStream::readBytes is inefficient.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3683] Access Violations when performing custom schema validation.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>Check tohash pointer before accessing content in XMLString::hash.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-27</td>
  +        <td>Tinny Ng</td>
  +        <td>Fix packageBinaries.pl to correctly strip the zip file name from the target
  +            directory which has "." dot in it.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-26</td>
  +        <td>Don Mastrovito</td>
  +        <td>BCB4 can use wchar_t.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-23</td>
  +        <td>Tinny Ng</td>
  +        <td>Support ICU 2.0.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-23</td>
  +        <td>Tinny Ng</td>
  +        <td>Eliminate Warning from Solaris Forte C++:
  +            Warning (Anachronism): Formal argument start_routine of type extern "C".
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-23</td>
  +        <td>Tinny Ng</td>
  +        <td>Eliminate Warning from Solaris Forte C++:
  +            Warning: String literal converted to char* in initialization.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-23</td>
  +        <td>Tinny Ng</td>
  +        <td>Eliminate Warning from AIX xlC 3.6:1540-399.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-23</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 4655] config.status be included in all future binary releases.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-23</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 4873] ICU 2.0 breaks Xerces 1.5.2 build.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-22</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Eliminate Visual C++ compiler warning C4273.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-22</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Schema: Allow "0.0" to be a valid lexcial representation of ZERO.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-21</td>
  +        <td>Peter A. Volchek and PeiYong Zhang</td>
  +        <td>Add sample SEnumVal.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-21</td>
  +        <td>Tinny Ng</td>
  +        <td>New method InputSource::get/setIssueFatalErrorIfNotFound to tell the parser
  +            whether to issue fatal error or not if cannot find it (the InputSource).
  +            This is required for schema processing as it shouldn't be a fatal error if the
  +            schema is not found.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-20</td>
  +        <td>Tinny Ng</td>
  +        <td>Allow schemaLocation and noNamespaceSchemaLocation to be specified outside the
  +            instance document.  New methods setExternalSchemaLocation and
  +            setExternalNoNamespaceSchemaLocation are added (for SAX2, two new properties are added).
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-19</td>
  +        <td>PeiYong Zhang</td>
  +        <td>XMLFloat and XMLDouble boundary Values updated.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-16</td>
  +        <td>Tinny Ng</td>
  +        <td>Add test case InitTermTest to test XMLPlatformUtils:Initialize/Terminate() pair.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-16</td>
  +        <td>Khaled Noaman</td>
  +        <td>Design change: GeneralAttributeCheck is not longer a singleton class.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-15</td>
  +        <td>Khaled Noaman</td>
  +        <td>Re-organize constant values in XMLAttDef.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-13</td>
  +        <td>Tinny Ng</td>
  +        <td>Move root element check from XMLValidator to XMLScanner
  +            and deprecate XMLValidator::checkRootElement().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-13</td>
  +        <td>Tinny Ng</td>
  +        <td>Update documentation for SAX2XMLReader, DefaultHandler and DOMParser.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-09</td>
  +        <td>Tinny Ng</td>
  +        <td>Regular Expression: Update the Block Names and Block Range to comply to the latest standard.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-09</td>
  +        <td>Carolyn Weiss</td>
  +        <td>DOMIDTest/MemParse fix: Pulled the hardcoded encoding out of the document
  +            itself and made it a #define to make it easier to support other encodings.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-09</td>
  +        <td>Carolyn Weiss</td>
  +        <td>DOMMemTest fix: Changed some literal values to their equivalent hex values
  +            so they work correctly on both ASCII and EBCDIC systems.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-09</td>
  +        <td>Linda Swan</td>
  +        <td>Bug Fix: maxChars in XMLString::copyNString is more related to the target than the src.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-07</td>
  +        <td>Tinny Ng</td>
  +        <td>Performance: Create QName in ContentSpecNode only if it is a leaf/Any/PCDataNode.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-07</td>
  +        <td>Tinny Ng</td>
  +        <td>Performance: move getRawName() to outer loop in DFAContentModel so that it
  +            is called only once per outer loop.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-06</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 4644] Memory leak in schema traverser.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-02</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 4133] --prefix not used properly in configure.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-01</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 2730] Can't build xerces-c-1.5.1 with ICUMsgLoader.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-01</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 4578] No documentation for XMLTranscoder.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-11-01</td>
  +        <td>Tinny Ng</td>
  +        <td>IDOM: Leak: should allocate the fNodeListPool with the overloaded new.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001/10/29</td>
  +        <td>Tinny Ng</td>
  +        <td>Update samples doc to reflect the latest changes.  Also update runConfigure usage
  +            in build doc to reflect the latest changes.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-26</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Thread safe XMLFloat and XMLDouble.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-26</td>
  +        <td>Tinny Ng</td>
  +        <td>Update SAX standard web link.
  +        </td>
  +    </tr>
  +
  +</table>
  +</s2>
  +
  +<s2 title="&XercesCName; Version 1.5.2: October 26, 2001">
  +<table>
  +    <tr>
  +        <td>Date</td>
  +        <td>Contributor</td>
  +        <td>Description</td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-26</td>
  +        <td>Khaled Noaman</td>
  +        <td>Schema:<br/>
  +             Support group, <br/>
  +             attributeGroup, <br/>
  +             all, <br/>
  +             any, <br/>
  +             anyAttribute, <br/>
  +             annotation, <br/>
  +             notation, <br/>
  +             redefine, <br/>
  +             circular import. <br/>
  +             Add AnySimpleTypeDatatypeValidator. <br/>
  +             Add XercesGroupInfo. <br/>
  +             More complex type constraint checking.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-26</td>
  +        <td>PeiYong Zhang</td>
  +        <td>DatatypeValidator:<br/>
  +             Support DoubleDatatypeValidator, <br/>
  +             FloatDatatypeValidator, <br/>
  +             AnyURIDatatypeValidator, <br/>
  +             AbstractStringValidator, <br/>
  +             AbstractNumericValidator, <br/>
  +             AbstractNumericFacetValidator, <br/>
  +             NCNameDatatypeValidator, <br/>
  +             NameDatatypeValidator. <br/>
  +             Add XMLDouble, <br/>
  +             XMLFloat, <br/>
  +             XMLInteger, <br/>
  +             XMLNumber, <br/>
  +             XMLUri.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-26</td>
  +        <td>Tinny Ng</td>
  +        <td>Schema:<br/>
  +             Support xsi:type, <br/>
  +             Unique Particle Attribution Constraint Checking, <br/>
  +             anyAttribute in Scanner and Validator. <br/>
  +             Add XercesElementWildCard, <br/>
  +             AllContentModel, <br/>
  +             XMLInternalErrorHandler.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>PeiYong Zhang</td>
  +        <td>XMLDeleterFor related functions and data are removed.  Replace with XMLRegisterCleanup.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>Henry Zongaro</td>
  +        <td>[Bug 2924] runConfigure script to accept multiple linker options.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>John Warrier</td>
  +        <td>[Bug 2924] runConfigure script to accept multiple compiler options.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>Mark Weaver</td>
  +        <td>[Bug 4213] BinHTTPURLInputStream initialisation not thread safe.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>John Clayton</td>
  +        <td>[Bug 4121] BinHTTPUrlInputStream needs to read entire HTTP header.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 4318] Single threaded build fails due to obsolete #define.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2860] gAtomicMutex should be used when APP_NO_THREADS is not defined in both Tru64 and OS400.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-25</td>
  +        <td>Tinny Ng</td>
  +        <td>Comment outside root element should also be reported.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-24</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 4342] Validator mutex is not deleted.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-24</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 3975] XMLPlatformUtils::Initialize() leaks memory after thousands of calls.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-24</td>
  +        <td>Kevin Philips</td>
  +        <td>[Bug 3813] BinHTTPURLInputStream has weak HTTP request capabilities.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-24</td>
  +        <td>Peter A. Volchek</td>
  +        <td>[Bug 2305] Include stdlib.h to BinHTTPURLInputStream.cpp.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-24</td>
  +        <td>Sean Bright</td>
  +        <td>[Bug 2456] loadXML gives an exception.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-24</td>
  +        <td>Curt Arnold</td>
  +        <td>Fixed xml4com.idl which attempts to set the version of the type library to 1.5.2 when
  +            only major.minor format is allowed.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-23</td>
  +        <td>Mark Weaver</td>
  +        <td>[Bug 4060] XMLPlatformUtils leaks a mutex on Solaris, Linux and others.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-23</td>
  +        <td>Mark Weaver</td>
  +        <td>[Bug 880] XMLPlatformUtils::Terminate cannot be called more than once.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-22</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3660] Off-by-one error in DOMString.cpp.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-22</td>
  +        <td>Tinny Ng</td>
  +        <td>Check that memory has been acquired successfully after memory acquisition requests in DOMString.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-22</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3361] "String pool id was not legal" error in Attributes::getURI().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-22</td>
  +        <td>Linda Swan</td>
  +        <td>castToNodeImpl is inconsistent with other cast routinesin IDCasts.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>James Berry</td>
  +        <td>Add new file name shortening hints; chmod +x.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>James Berry</td>
  +        <td>Cleanup handling of transcoder failure to transcode a character;
  +            implement canTranscodeTo; thanks to Geoff Coffey.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>James Berry</td>
  +        <td>Correctly swap / and : in classic environment MacOS pathnames; thanks to Geoff Coffey.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>James Berry</td>
  +        <td>Update MacOS projects for CodeWarrior 7 and ProjectBuilder 1.1, new files.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3909] return non-zero an exit code when error was encountered.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>Tinny Ng</td>
  +        <td>Modify PParse not to hardcode the number of expected elements as this may vary.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>David McCreedy</td>
  +        <td>Fixed the binary search in XML256TableTranscoder.cpp which
  +            fails for the last item in whichever table it is searching.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>David McCreedy</td>
  +        <td>Added U+0110 to XMLEBCDICTranscoder.cpp's "Unicode to IBM037" translation table.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-19</td>
  +        <td>David McCreedy</td>
  +        <td>Modified DOMPrint and IDOMPrint not to use "endl" method which puts out a newline
  +            in the local code page to generate output.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-18</td>
  +        <td>Jerry Carter</td>
  +        <td>[Bug 3666] Win32MsgLoader unable to retrieve error text if DLL is renamed.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-18</td>
  +        <td>Tinny Ng</td>
  +        <td>Use opt2 on AIX platform.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-18</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 1699] Redirect "delete this" to a temp ptr to bypass AIX xlC v5
  +            optimization memory leak problem.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-18</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 4015] IDDOMImplementation::createDocumentType hopelessly broken.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-16</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 3750] GeneralAttributeCheck threading bug.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-15</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 4177] setupRange uses non-portable code.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-13</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 2409] undocumented XMLException in LocalFileInputSource::new().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-13</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 4133] --prefix not used properly in configure.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-10</td>
  +        <td>Jason Stewart</td>
  +        <td>XMLURL::parse now throws an exception if it sees a an http URL without
  +            two forward slashes ('//') following the protocol.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-10</td>
  +        <td>Petr Gotthard</td>
  +        <td>Add "Base64::encode" for encoding binary data.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-09</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 1685] memory leak after parsing document with validation error.<br/>
  +            And other miscellaneous memory leak.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-05</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 3831] -1 returned from getIndex() needs to be checked.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-03</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3867] IDOM_Element::getElementsByTagName() threading problem.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-10-02</td>
  +        <td>Tinny Ng</td>
  +        <td>Memory leak in IDOM, need to delete the fDocument created.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-13</td>
  +        <td>Artur Klauser</td>
  +        <td>Patch: Xerces 1.5 w/ libWWW for Tru64.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-13</td>
  +        <td>Artur Klauser</td>
  +        <td>Patch: Xerces 1.5 samples with g++ compiler.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-12</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 3565] Stream leaked in ReaderMgr.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-12</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3155] SAX2 does not offer progressive parse.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-11</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3523] SchemaElementDecl.cpp(242) : error C2202 : not all control paths return a value.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-10</td>
  +        <td>Tinny Ng</td>
  +        <td>Performance: Store the fGrammarType instead of calling getGrammarType all the time for faster performance.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-04</td>
  +        <td>Christopher Just</td>
  +        <td>Support IRIX's sproc().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-09-04</td>
  +        <td>Kevin Philips</td>
  +        <td>[Bug 3170] URLs with ? type fragments in them don't work.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-29</td>
  +        <td>Henry Zongaro</td>
  +        <td>Allowing -p as argument to -z or -l in runConfigure.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-29</td>
  +        <td>Tinny Ng</td>
  +        <td>Performance: Use XMLBufBid instead of XMLBuffer directly for better performance.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-29</td>
  +        <td>Tinny Ng</td>
  +        <td>Performance: No need to new the child QName in ElemStack addChild.  Remove it for performance gain. for BCB5.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-22</td>
  +        <td>Don Mastrovito</td>
  +        <td>Project files for BCB5.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-21</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 2816]Numerous datatype headers cause CC error 1144.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-21</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 3017] MSVC5.0: C2202: 'compareSpecial' : not all control paths return a value.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-17</td>
  +        <td>Nick Chiang</td>
  +        <td>Fix to memory leak in buildDFA().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-16</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Performance: stateTable created to optimize the identification of new state created.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-10</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Add isHex(), isAlphaNum(), isAllWhiteSpace() and patternMatch() in XMLString.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-09</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2947]IDOM segfault calling getElementsByTagName() using a DOM_Document().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-09</td>
  +        <td>Tinny Ng</td>
  +        <td>Port test case DOMTest to  IDOMTest.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-07</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2676] IDOM: pure virtual called in IDDeepNodeListImpl::item().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-07</td>
  +        <td>Kari Whitcomb</td>
  +        <td>IDOM: Unaligned Access warnings in IDOM samples.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-02</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 1329] SAX2XMLReaderImpl leaks XMLBuffers.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-08-02</td>
  +        <td>Tinny Ng</td>
  +        <td>Allow DOMCount/SAXCount/IDOMCount/SAX2Count to take a file that has a list of xml file as input.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-31</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Fix: memory leak in DFAContentModel::postTreeBuildInit().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001/07/27</td>
  +        <td>Tinny Ng</td>
  +        <td>Fix bug in 'transcode' functions reported by Evgeniy Gabrilovich.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-27</td>
  +        <td>Tinny Ng</td>
  +        <td>put getScanner() back as they were there before, not to break existing apps.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-26</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2751] Several NameChar characters missing from internal tables.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-26</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 2815] util/regx/RegxParser.cpp compile fails on HP-UX 10.20 with CC A.10.40.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-24</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 2707] DFAContentModel memory leaks.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-19</td>
  +        <td>Tinny Ng</td>
  +        <td>Add IDOMCount, IDOMPrint, SAX2Count, and SAX2Print to samples.dsw.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-19</td>
  +        <td>Tinny Ng</td>
  +        <td>Add more tests in sanityTest.pl.
  +        </td>
  +    </tr>
  +
  +
  +</table>
  +</s2>
  +
  +<s2 title="&XercesCName; Version 1.5.1: July 18, 2001">
  +<table>
  +    <tr>
  +        <td>Date</td>
  +        <td>Contributor</td>
  +        <td>Description</td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-17</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 2643] - derivation by extension of complex types does not permit
  +        addition of ONLY element content.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-16</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2410] DOMParser::parse() throws undocumented exceptions.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-16</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2512] typing mistake in code example of chapter "Constructing an XML Reader".
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-16</td>
  +        <td>Tinny Ng</td>
  +        <td>APIDocs fix: default for schema processing in DOMParser, IDOMParser,
  +        and SAXParser should be false.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-15</td>
  +        <td>James Berry</td>
  +        <td>Add new files to UnionTypeValidator and ListDataTypeValidator to MacOS Project files.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-09</td>
  +        <td>Khaled Noaman</td>
  +        <td>Add constraint checking for simple types.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-11</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Fix to normalizeWhiteSpace: synchronize fDatatypeBuffer with toFill.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-05</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Add ListDatatypeValidator and UnionDatatypeValidator.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-10</td>
  +        <td>Tinny Ng</td>
  +        <td>Give proper error messsage when scanning external id.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-10</td>
  +        <td>Tinny Ng</td>
  +        <td>The first char of PI Target Name should be checked.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-09</td>
  +        <td>Khaled Noaman</td>
  +        <td>Add &lt;any&gt; declaration.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-09</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fixes for import/include declarations.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-09</td>
  +        <td>Tinny Ng</td>
  +        <td>Partial Markup in Parameter Entity is validity constraint and thus
  +        should be just error, not fatal error.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>Add new samples projects: IDOMPPrint and SAX2Print for ProjectBuilder
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>Update ProjectBuilder Xerces project for latest file additions.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>[Bug 2486] Files missing from XercesLib.mcp.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>Add new samples for CodeWarrior build: IDOMPrint and SAX2Print.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>New file for use in building Carbon samples.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>Simplify file existance checks.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>[Bug 2495] Missing ( in xerces-c-src1_5_0/obj/Makefile.in.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-08</td>
  +        <td>James Berry</td>
  +        <td>Fix clean and distclean targets; broken because rm fails if passed no files.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-06</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2472] Linker options ignored on IRIX.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-06</td>
  +        <td>Martin Kalen</td>
  +        <td>Automatic build of single-threaded library.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-05</td>
  +        <td>Tinny Ng</td>
  +        <td>Encoding String must present for external entity text decl.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-05</td>
  +        <td>Tinny Ng</td>
  +        <td>Standalone checking is validity constraint and thus should be just error, not fatal error.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-05</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Add NotationDatatypeValidator, QNameDatatypeValidator and ENTITYDatatypeValidator.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-04</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Add IDREFDatatypeValidator and IDDatatypeValidator.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-04</td>
  +        <td>PeiYong Zhang</td>
  +        <td>XMLString:isValidName(): to validate Name (XML [4][5]).
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-03</td>
  +        <td>Tinny Ng</td>
  +        <td>Some compilers (e.g. the HP compiler) has mistaken the parameter 'std',
  +        which is short for standalone as the special prefix used by the standard libraries.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-07-03</td>
  +        <td>Miroslaw Dobrzanski-Neumann</td>
  +        <td>Supporting dce threading on AIX and Solaris.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-27</td>
  +        <td>David Bertoni</td>
  +        <td>[Bug 2365] Huge performance problem with the parser in XMLScanner::sendCharData().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-27</td>
  +        <td>David Bertoni</td>
  +        <td>[Bug 2363] XMLScanner::sendCharData() can send the wrong length to the handler.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-27</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 2353] Validating Parser parses after validation failed.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-27</td>
  +        <td>Murray Cumming</td>
  +        <td>[Bug 1147] Headers install in wrong directory.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-26</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2119] DOMString::print() should use DOMString::transcode() for transcoding.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-25</td>
  +        <td>Stephen Dulin</td>
  +        <td>OS390 updates.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-25</td>
  +        <td>Linda Swan</td>
  +        <td>AS400 updates.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-25</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 1393] Converting from Unicode to iso8859.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-25</td>
  +        <td>Matt Lovett</td>
  +        <td>[Bug 965] scanDocTypeDecl messes up the source offsets.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-25</td>
  +        <td>Khaled Noaman</td>
  +        <td>Add constraint checking on elements in complex types.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-22</td>
  +        <td>James Berry</td>
  +        <td>[Bug 2277] Bad argument to ConvertFromUnicodeToText.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-22</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 2263] 'SIZE' : redefinition ( BooleanDatatypeValidator.cpp ).
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-22</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 2258] Bug in Iconv and Iconv390.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-22</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2225] assignment vs. comparison in if clause.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-22</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2257] 1.5 thinks a &lt;?xml-stylesheet ...&gt; tag is a &lt;?xml ...&gt; tag.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-21</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 1946] Standalone validity check only for external decl.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-21</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2262] Duplicated header guard.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-20</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Proper Debug Guard: Reported by Dean.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-19</td>
  +        <td>Tinny Ng</td>
  +        <td>Namespace should be off by default in XMLScanner.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001/06/19</td>
  +        <td>Tinny Ng</td>
  +        <td>Add installAdvDocHandler to SAX2XMLReader as the code is there already.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-19</td>
  +        <td>Khaled Noaman</td>
  +        <td>Handle maxChars > length(toTranscode).
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-18</td>
  +        <td>Erik Rydgren</td>
  +        <td>Memory leak fix: to addlevel().
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-18</td>
  +        <td>Khaled Noaman and PeiYong Zhang</td>
  +        <td>Add support for 'fixed' facet.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>Khaled Noaman</td>
  +        <td>Added constraint checking for ref on elements.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>Tinny Ng</td>
  +        <td>ICU 1.8.1 update.
  +        </td>
  +    </tr>
  +
  +
  +</table>
  +</s2>
  +
  +
  +<s2 title="&XercesCName; Version 1.5.0: June 15, 2001">
  +
  +<table>
  +    <tr>
  +        <td>Date</td>
  +        <td>Contributor</td>
  +        <td>Description</td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>Tinny Ng</td>
  +        <td>Schema:<br/>
  +            Add Schema support in XMLParsers (DOM/SAX/SAX2), XMLScanner. <br/>
  +            Create SchemaValidator. <br/>
  +            Add Grammar Model. <br/>
  +            Support xsi:nil. <br/>
  +            Support xsi:schemaLocation and xsi:noNamespaceSchemaLocation. <br/>
  +            Update samples to enable schema.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>Tinny Ng</td>
  +        <td>Break DTDValidator into DTDGrammar, DTDScanner, and DTDValidator.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>Tinny Ng</td>
  +        <td>IDOM:<br/>
  +            Complete the Range, TreeWalker, NodeIterator, and other memory fixes.<br/>
  +            Support IDOM on UNIX platform.<br/>
  +            Add samples IDOMPrint, and IDOMCount.<br/>
  +            Add test cases IRangeTest and ITraversal.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>Khaled Noaman</td>
  +        <td>Schema:<br/>
  +             Add Regular Expression. <br/>
  +             Add Schema Messages. <br/>
  +             Add Schema Simple Type Support. <br/>
  +             Add Schema Complex Type Support (Except Group). <br/>
  +             Add Schema Attribute Declarations support. <br/>
  +             Add Schema Element Declarations support. <br/>
  +             Support Simple Content and Complex Content. <br/>
  +             Support Element and attribute reuse using "ref". <br/>
  +             Support Schema Choice and Sequence. <br/>
  +             Support Schema Import and Include.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>Khaled Noaman</td>
  +        <td>DatatypeValidator:<br/>
  +            Add DatatypeValidator and DatatypeValidatorFactory.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Schema:<br/>
  +            Add Schema support in Content Model. <br/>
  +            Add Schema Exception Handling. <br/>
  +            Add Schema XUtil. <br/>
  +            Add QName Support. <br/>
  +            Support SubstitutionGroup.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-15</td>
  +        <td>PeiYong Zhang</td>
  +        <td>DatatypeValidator:<br/>
  +             Support Base64DatatypeValidator, <br/>
  +             BooleanDatatypeValidator, <br/>
  +             DecimalDatatypeValidator, <br/>
  +             HexBinDatatypeValidator, <br/>
  +             StringDatatypeValidator, <br/>
  +             InvalidDatatypeFacetException, <br/>
  +             InvalidDatatypeValueException.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-13</td>
  +        <td>Erik Rydgren</td>
  +        <td>[Bug 812] Memory leak with multiple !ATTLIST on single !ELEMENT.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-08</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2043] XMLFormatter unallocates arrays incorrectly.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-08</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Documentation and project files update for Xerces 1.5.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-08</td>
  +        <td>Khaled Noaman</td>
  +        <td>IDOM Documentation.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-07</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fix no error message for faulted-in attributes if reuse grammar for 3+ times.
  +	</td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-06</td>
  +        <td>Peter A. Volchek</td>
  +        <td>/Platforms/Win32/Win32PlatformUtils.cpp<br/>
  +	    Include stdlib.h.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-06</td>
  +        <td>James Berry</td>
  +        <td>Update Mac OS ProjectBuilder projects.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-06</td>
  +        <td>James Berry</td>
  +        <td>Fix invalid file references in project.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-06</td>
  +        <td>James Berry</td>
  +        <td>/src/util XMLString.cpp<br/>
  +            Clean up compiler warning.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-06</td>
  +        <td>James Berry</td>
  +        <td>/src/util/regx RegxParser.cpp<br/>
  +            Fix two improper NULL tests.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-05</td>
  +        <td>James Berry</td>
  +        <td>Add support for Mac OS X command line configuration and build.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-5</td>
  +        <td>Peter A. Volchek</td>
  +        <td>Add 'const' to getGrammar.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-04</td>
  +        <td>PeiYong Zhang</td>
  +        <td>The start tag "&#60;?xml" could be	followed by (#x20 | #x9 | #xD | #xA)+.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-04</td>
  +        <td>James Berry</td>
  +        <td>Add support for tracking error count during parse; enables
  +            simple parse without requiring error handler.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-06-01</td>
  +        <td>Tinny Ng</td>
  +        <td>/scripts/packageSources.pl<br/>
  +	    Keep the BCB4 project files	in the source package.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-22</td>
  +        <td>James Berry</td>
  +        <td>Check for existance of MacOS Unicode Converter routines prior to instanciating our
  +	 transcoder object; Xerces will thus panic, rather than crash, if they don't exist.
  +	 Add support to check for existance of MacOS Unicode Converter to avoid calling through NULL pointer.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-16</td>
  +        <td>Henry Zongaro</td>
  +        <td>IDOM: Add DeepNodeList support.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-16</td>
  +        <td>Henry Zongaro</td>
  +        <td>IDOM: Add namespace support.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-10</td>
  +        <td>Christian Schuhegger</td>
  +        <td>[Bug 1158] built-in buffer limit could be smaller than system limit,
  +            use PATH_MAX instead.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-10</td>
  +        <td>Arnaud LeHors</td>
  +        <td>[Bug 1605] AttrNSImpl.cpp: fixed typo in constructor.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-09</td>
  +        <td>Curt Arnold</td>
  +        <td>[Bug 1500] The public id was set twice and the system id was not set on Notations.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-04</td>
  +        <td>Tinny Ng</td>
  +        <td>DOMPrint: Check error before continuing.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-03</td>
  +        <td>Tinny Ng</td>
  +        <td>ICU 1.8 update.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-05-03</td>
  +        <td>Khaled Noaman</td>
  +        <td>Added new option to the parsers so that the NEL (0x85) char can be
  +            treated as a newline character.
  +	</td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-23</td>
  +        <td>Erik Rydgren</td>
  +        <td>DTDScanner: Reuse grammar should allow users to use any stored
  +            element decl as root.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-19</td>
  +        <td>William L Hopper</td>
  +        <td>Win32PlatformUtils: InterlockedCompareExchange on different Windows.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-19</td>
  +        <td>William L Hopper</td>
  +        <td>BCB project changes.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-16</td>
  +        <td>James Berry</td>
  +        <td>MacOSUnicodeConverter: Fix include path, Updates to reflect changes for
  +            Mac OS X final and Update MacOS projects for Mac OS X final ProjectBuilder.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-11</td>
  +        <td>Arnaud LeHors</td>
  +        <td>[Bug 1303] AttrImpl: allow value to be set to null.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-11</td>
  +        <td>Tinny Ng</td>
  +        <td>DOMParser: Attribute default values not printed in document
  +	    type internal subset interface.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-10</td>
  +        <td>Tinny Ng</td>
  +        <td>createdocs.bat: fix PDF generation.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-04</td>
  +        <td>Alberto Massari</td>
  +        <td>DTDElementDecl: Error checking for null content spec.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-02</td>
  +        <td>Andy Heninger</td>
  +        <td>IDOM: imported.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-04-02</td>
  +        <td>Andy Heninger</td>
  +        <td>IThreadTest: imported.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-30</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 1150] Problems with Namespaces and validating parsing.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-27</td>
  +        <td>Roman Sulzhyk</td>
  +        <td>[Bug 1069] Explicit Makefile dependency for 'lib' build.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-26</td>
  +        <td>PeiYong Zhang</td>
  +        <td>When Standalone="yes", it is NOT supposed to accept element
  +            which is defined in external DTD with #FIXED attribute.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-26</td>
  +        <td>Andy Heninger</td>
  +        <td>Update packageBinaries.pl for ICU 1.8. ICU debug .lib file
  +            names and locations changed.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-23</td>
  +        <td>Jeff Harrell</td>
  +        <td>[Bug 1018] AutoSense looks for "IRIX" when it should look for "sgi" or "__sgi".
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-22</td>
  +        <td>Roman Sulzhyk</td>
  +        <td>[Bug 1069] The Makefiles fail to locate .cpp -> .o dependency and rebuild .o all the time.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-22</td>
  +        <td>John Rope</td>
  +        <td>[Bug 1021] Accessing an XML file using the file "protocol" and a UNC path fails
  +            to open the file.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-09</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 733] Seg fault when trying to parse empty filename.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-06</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 677] Infinite loop caused by malformed XML. Happen when namespace is on.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-03-02</td>
  +        <td>Martin Kalen</td>
  +        <td>Enabling libWWW NetAccessor support under UNIX. Tested with latest
  +            tarball of libWWW (w3c-libwww-5.3.2) under RedHat Linux 6.1.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-27</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 676] Linux for S/390 build requires -fPIC.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-22</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 678] StdInParse doesn't output filename or duration.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-21</td>
  +        <td>Matt Lovett</td>
  +        <td>ICUTranscoder::transcodeFrom() expects ICU function ucnv_toUnicode
  +            to return an extra element in fSrcOffsets to allow us to figure
  +            out the last char size, which in fact it is not.  The fix is to compute
  +            the last char size ourselves using the total bytes used.
  +           </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001/02/16</td>
  +        <td>Andy Heninger</td>
  +        <td>Change limit test to reduce spurious pointer assignment warnings from BoundsChecker.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-14</td>
  +        <td>Bob Kline</td>
  +        <td>Better FAQ for the checksum error.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-14</td>
  +        <td>Mark Everline</td>
  +        <td>Core dump when UTF-16 encoding contradicts actual encoding.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-13</td>
  +        <td>Hiram Clawson</td>
  +        <td>Update samples/tests files for on UnixWare 7.1.1 with gcc 2.95. Add
  +            UNIXWARE platform defines to Makefile.incl, add recognition of
  +            sysv5uw7 to configure.in, and add unixware as recognized platform to runConfigure.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-09</td>
  +        <td>Martin Kalen</td>
  +        <td>Update support for SCO UnixWare 7 (gcc). Tested under UnixWare 7.1.1
  +            with gcc version 2.95.2 19991024 (release) with gmake 3.79.1.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-08</td>
  +        <td>Martin Kalen</td>
  +        <td>Enable COMPAQ Tru64 UNIX machines to build xerces-c with gcc (tested using
  +            COMPAQ gcc version2.95.2 19991024 (release) and Tru64 V5.0 1094).
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-07</td>
  +        <td>Bill Schindler</td>
  +        <td>Rearranged statements in Initialize() so that platformInit() is called
  +            before an XMLMutex is created.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-07</td>
  +        <td>Richard Ko</td>
  +        <td>Storage overlay in ucnv_setFromUCallBack.</td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-05</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 766] /src/util/Compilers/CSetDefs.hpp: define NO_NATIVE_BOOL macro only
  +            if not pre-defined/reserved.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2001-02-05</td>
  +        <td>Jordan Naftolin</td>
  +        <td>Add createPDF.jar and apachPDFStyle.xsl to convert documentation xml files
  +            to pdf format.
  +        </td>
  +    </tr>
  +
  +</table>
  +</s2>
  +
  +<s2 title="Release Archive">
  +
  +    <p> For release information about &XercesCName; 1.4.0 or earlier,
  +        please refer to <jump href="releases_archive.html">Release Archive</jump>.
  +    </p>
  +</s2>
  +
   </s1>
  
  
  
  1.8       +61 -745   xml-site/sources/xerces-c/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/samples.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- samples.xml	19 Jan 2000 00:17:05 -0000	1.7
  +++ samples.xml	14 Feb 2002 16:44:20 -0000	1.8
  @@ -1,758 +1,74 @@
   <?xml version="1.0" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
  -<s1 title="Samples">
  +<s1 title="&XercesCName; Samples">
   
  -    <s2 title="Building the Samples">
  -    <p>&XercesCName; comes packaged with nine sample applications that
  +    <p>&XercesCName; comes packaged with 15 sample applications that
       demonstrate salient features of the parser using simple
       applications written on top of the SAX and DOM APIs provided by
  -    the parser.</p>
  -
  -    <p>Once you have set up your PATH variable, you can run the
  -    samples by opening a command window (or your shell prompt for
  -    UNIX environments). Sample XML data files are provided in the
  -    samples/data directory.</p>
  -
  -    <p>The installation process for the samples is same on all UNIX
  -    platforms.
  -    Note that <em>runConfigure</em> is just a helper script and you are free to
  -    use <em>./configure</em> with the correct parameters to make it work
  -    on any platform-compiler combination of your choice. The script needs the following parameters:
  -    </p>
  -    <source>
  -    Usage: runConfigure "options"
  -           where options may be any of the following:
  -           -p &lt;platform&gt; (accepts 'aix', 'linux', 'solaris', 'hp-10', 'hp-11')
  -           -c &lt;C compiler name&gt; (e.g. gcc, xlc_r, cc or aCC)
  -           -x &lt;C++ compiler name&gt; (e.g. g++, xlC_r, CC or aCC)
  -           -d (specifies that you want to build debug version)
  -           -h (get help on the above commands)
  -    </source>
  -
  -    <note><em>NOTE:</em>The code samples in this section assume that you are are working on the Linux binary drop.
  -    If you are using some other UNIX flavor, please replace '-linux' with the appropriate
  -    platform name in the code samples.</note>
  +    the parser.  Sample XML data files are provided in the samples/data directory.</p>
   
  +    <s2 title="Building the Samples">
  +        <p>Please refer to the <jump href="build.html">Build Page</jump> for
  +           Build Instructions as per specific platform.</p>
       </s2>
   
       <s2 title="Running the Samples">
  -        
  -    <p>The sample applications are dependent on the &XercesCName; shared library
  -        (and could also depend on the ICU library if you built &XercesCName; with ICU).
  -        Therefore, on Windows platforms you must make sure that your <code>PATH</code> 
  -        environment variable is set properly to pick up these shared libraries at
  -        runtime.</p>
  -
  -        <p>On UNIX platforms you must ensure that <ref>LIBPATH</ref>
  -        environment variable is set properly to pick up the shared libraries at 
  -        runtime. (UNIX gurus will understand here that <ref>LIBPATH</ref> actually 
  -        translates to <em>LD_LIBRARY_PATH</em> on Solaris and Linux, <em>SHLIB_PATH</em> on HP-UX
  -        and stays as <em>LIBPATH</em> on AIX).</p>
  -
  -        <p>To set you LIBPATH (on AIX for example), you would type:</p>
  -        <source>
  -export LIBPATH=&XercesCInstallDir;/lib:$LIBPATH</source>
  -        
  -    </s2>
  -        
  -    <s2 title="SAXCount">
  -        <p>SAXCount is the simplest application that counts the elements and characters of
  -        a given XML file using the (event based) SAX API.</p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked SAXCount.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd SAXCount
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        SAXCount in '&XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running SAXCount">
  -
  -          <p>The SAXCount sample parses an XML file and prints out a count of the number of
  -          elements in the file. To run SAXCount, enter the following </p>
  -          <source>
  -               SAXCount &lt;XML File&gt;
  -          </source>
  -          <p>To use the validating parser, use </p>
  -          <source>
  -               SAXCount -v &lt;XML file&gt;
  -          </source>
  -          <p>Here is a sample output from SAXCount</p>
  -          <source>
  -          cd &XercesCInstallDir;-linux/samples/data
  -          SAXCount -v personal.xml
  -          personal.xml: 60 ms (37 elems, 12 attrs, 134 spaces, 134 chars)
  -          </source>
  -          <p>Running SAXCount with the validating parser gives a different result because
  -          ignorable white-space is counted separately from regular characters.</p>
  -          <source>
  -          SAXCount personal.xml
  -          personal.xml: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)
  -          </source>
  -          <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  -
  -          <note>The time reported by the program may be different depending on your
  -          machine processor.
  -          </note>
  -        </s3>
  -
  -    </s2>
  -
  -    <s2 title="SAXPrint">
  -        <p>SAXPrint uses the SAX APIs to parse an XML file and print it back. Notice that
  -                  the output of this file is not exactly the same as the input (in terms of white
  -                  spaces), but the output has the same information content as the input.</p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked SAXPrint.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd SAXPrint
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        SAXPrint in '&XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running SAXPrint">
  -
  -          <p>The SAXPrint sample parses an XML file and prints out a count of the number of
  -          elements in the file. To run SAXPrint, enter the following </p>
  -          <source>
  -               SAXPrint &lt;XML file&gt;
  -          </source>
  -          <p>To use the validating parser, use </p>
  -          <source>
  -               SAXPrint -v &lt;XML file&gt;
  -          </source>
  -          <p>Here is a sample output from SAXPrint</p>
  -          <source>
  -cd &XercesCInstallDir;-linux/samples/data
  -SAXPrint -v personal.xml
  -
  -&lt;personnel>
  -
  -  &lt;person id="Big.Boss">
  -    &lt;name>&lt;family>Boss&lt;/family> &lt;given>Big&lt;/given>&lt;/name>
  -    &lt;email>chief@foo.com&lt;/email>
  -    &lt;link subordinates="one.worker two.worker three.worker four.worker five.worker">&lt;/link>
  -  &lt;/person>
  -
  -  &lt;person id="one.worker">
  -    &lt;name>&lt;family>Worker&lt;/family> &lt;given>One&lt;/given>&lt;/name>
  -    &lt;email>one@foo.com&lt;/email>
  -    &lt;link manager="Big.Boss">&lt;/link>
  -  &lt;/person>
  -
  -  &lt;person id="two.worker">
  -    &lt;name>&lt;family>Worker&lt;/family> &lt;given>Two&lt;/given>&lt;/name>
  -    &lt;email>two@foo.com&lt;/email>
  -    &lt;link manager="Big.Boss">&lt;/link>
  -  &lt;/person>
  -
  -  &lt;person id="three.worker">
  -    &lt;name>&lt;family>Worker&lt;/family> &lt;given>Three&lt;/given>&lt;/name>
  -    &lt;email>three@foo.com&lt;/email>
  -    &lt;link manager="Big.Boss">&lt;/link>
  -  &lt;/person>
  -
  -  &lt;person id="four.worker">
  -    &lt;name>&lt;family>Worker&lt;/family> &lt;given>Four&lt;/given>&lt;/name>
  -    &lt;email>four@foo.com&lt;/email>
  -    &lt;link manager="Big.Boss">&lt;/link>
  -  &lt;/person>
  -
  -  &lt;person id="five.worker">
  -    &lt;name>&lt;family>Worker&lt;/family> &lt;given>Five&lt;/given>&lt;/name>
  -    &lt;email>five@foo.com&lt;/email>
  -    &lt;link manager="Big.Boss">&lt;/link>
  -  &lt;/person>
  -
  -&lt;/personnel></source>
  -          <note>Note that SAXPrint does not reproduce the original XML file. Also SAXPrint and
  -                            DOMPrint produce different results because of the way the two APIs store data
  -                  and capture events.</note>
  -        </s3>
  -
  -    </s2>
  -
  -
  -
  -
  -
  -
  -    <s2 title="DOMCount">
  -        <p>DOMCount uses the provided DOM API to parse an XML file, constructs the
  -                  DOM tree and walks through the tree counting the elements (using just one API
  -                  call).</p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked DOMCount.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd DOMCount
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        DOMCount in ' &XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running DOMCount">
  -
  -          <p>The DOMCount sample parses an XML file and prints out a count of the number of
  -          elements in the file. To run DOMCount, enter the following </p>
  -          <source>
  -               DOMCount &lt;XML file&gt;
  -          </source>
  -          <p>To use the validating parser, use </p>
  -          <source>
  -               DOMCount -v &lt;XML file&gt;
  -          </source>
  -          <p>Here is a sample output from DOMCount</p>
  -          <source>
  -          cd &XercesCInstallDir;-linux/samples/data
  -          DOMCount -v personal.xml
  -          personal.xml: 20 ms (37 elems)
  -          </source>
  -
  -          <p>The output of both versions should be same.</p>
  -
  -          <note>The time reported by the system may be different, depending on your
  -          processor type.
  -          </note>
  -        </s3>
  -
  -    </s2>
  -
  -
  -
  -
  -
  -    <s2 title="DOMPrint">
  -        <p>DOMPrint parses an XML file, constructs the DOM tree, and walks through the
  -                  tree printing each element. It thus dumps the XML back (output same as
  -                  SAXPrint).</p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked DOMPrint.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd DOMPrint
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        DOMPrint in ' &XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running DOMPrint">
  -
  -          <p>The DOMPrint sample parses an XML file, using either a validating or
  -                   non-validating DOM parser configuration, builds a DOM tree, and then walks the
  -                   tree and outputs the contents of the nodes in a 'canonical' format. To run
  -                   DOMPrint, enter the following:</p>
  -          <source>
  -               DOMPrint [-v] &lt;XML file&gt;
  -          </source>
  -          <p>The -v option is used when you wish to use a validating parser. Here is a
  -                   sample output for DOMPrint when the validating parser is used: </p>
  -          <source>
  -               cd &XercesCInstallDir;-linux/samples/data
  -               DOMPrint -v personal.xml
  -          </source>
  -          <p>Here is a sample output from DOMPrint</p>
  -          <source>
  -          cd &XercesCInstallDir;-linux/samples/data
  -          DOMPrint -v personal.xml
  -
  -
  -         &lt;?xml version='1.0' encoding='utf-8?&gt;
  -         &lt;!-- Revision: 63 1.7 samples/data/personal.xml, xml4c2Docs, xml4c2, xml4c2_1_0_d2 -->
  -         &lt;personnel>
  -
  -           &lt;person id="Big.Boss">
  -             &lt;name>&lt;family>Boss&lt;/family> &lt;given>Big&lt;/given>&lt;/name>
  -             &lt;email>chief@foo.com&lt;/email>
  -             &lt;link subordinates="one.worker two.worker three.worker four.worker five.worker">&lt;/link>
  -           &lt;/person>
  -
  -           &lt;person id="one.worker">
  -             &lt;name>&lt;family>Worker&lt;/family> &lt;given>One&lt;/given>&lt;/name>
  -             &lt;email>one@foo.com&lt;/email>
  -             &lt;link manager="Big.Boss">&lt;/link>
  -           &lt;/person>
  -
  -           &lt;person id="two.worker">
  -             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Two&lt;/given>&lt;/name>
  -             &lt;email>two@foo.com&lt;/email>
  -             &lt;link manager="Big.Boss">&lt;/link>
  -           &lt;/person>
  -
  -           &lt;person id="three.worker">
  -             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Three&lt;/given>&lt;/name>
  -             &lt;email>three@foo.com&lt;/email>
  -             &lt;link manager="Big.Boss">&lt;/link>
  -           &lt;/person>
  -
  -           &lt;person id="four.worker">
  -             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Four&lt;/given>&lt;/name>
  -             &lt;email>four@foo.com&lt;/email>
  -             &lt;link manager="Big.Boss">&lt;/link>
  -           &lt;/person>
  -
  -           &lt;person id="five.worker">
  -             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Five&lt;/given>&lt;/name>
  -             &lt;email>five@foo.com&lt;/email>
  -             &lt;link manager="Big.Boss">&lt;/link>
  -           &lt;/person>
  -
  -           &lt;/personnel>
  -
  -          </source>
  -          <p>Note that DOMPrint does not reproduce the original XML file. Also DOMPrint and
  -           SAXPrint produce different results because of the way the two APIs store data
  -           and capture events.</p>
  -
  -        </s3>
  -
  -    </s2>
  -
  -
  -
  -
  -
  -
  -
  -    <s2 title="MemParse">
  -        <p>MemParse uses the Validating SAX Parser to parse a memory buffer containing
  -                  XML statements, and reports the number of elements and attributes found.</p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked MemParse.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd MemParse
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        MemParse in ' &XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running MemParse">
  -
  -          <p>This program uses the SAX Parser to parse a memory buffer
  -             containing XML statements, and reports the number of elements and attributes
  -             found. </p>
  -          <source>
  -               MemParse [-v]
  -          </source>
  -          <p>The -v option is used to invoke the Validating SAX Parser instead.
  -
  -          When invoked with a validating parser: </p>
  -          <source>
  -               cd &XercesCInstallDir;-linux/samples/data
  -               MemParse -v
  -          </source>
  -          <p>The output is the following:</p>
  -          <source>
  -
  -          Finished parsing the memory buffer containing the following XML statements:
  -
  -          &lt;?xml version='1.0' encoding='ascii'?&gt;
  -          &lt;!DOCTYPE company [
  -          &lt;!ELEMENT company     (product,category,developedAt)&gt;
  -          &lt;!ELEMENT product     (#PCDATA)&gt;
  -          &lt;!ELEMENT category    (#PCDATA)&gt;
  -          &lt;!ATTLIST category idea CDATA #IMPLIED&gt;
  -          &lt;!ELEMENT developedAt (#PCDATA)&gt;
  -          ]&gt;
  -
  -
  -         &lt;company>
  -             &lt;product>&XercesCName;&lt;/product>
  -             &lt;category idea='great'>XML Parsing Tools&lt;/category>
  -             &lt;developedAt>
  -               IBM Center for Java Technology, Silicon Valley, Cupertino, CA
  -             &lt;/developedAt>
  -         &lt;/company>
  -
  -        Parsing took 0 ms (4 elements, 1 attributes, 16 spaces, 95 characters).
  -
  -          </source>
  -
  -        </s3>
  -
  -    </s2>
  -
  -
  -
  -
  -    <s2 title="Redirect">
  -        <p>Redirect uses the SAX EntityResolver handler to redirect the input stream for
  -                  external entities. It installs an entity resolver, traps the call to the external DTD
  -                  file and redirects it to another specific file which contains the actual DTD.</p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked Redirect.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd Redirect
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        Redirect in '&XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running Redirect">
  -
  -          <p>This program illustrates how a XML application can use the SAX EntityResolver
  -                   handler to redirect the input stream for external entities. It installs an entity
  -                   resolver, traps the call to the external DTD file and redirects it to another specific
  -                   file which contains the actual DTD.</p>
  -
  -                    <p>The program then counts and reports the number of elements and attributes in
  -                   the given XML file.</p>
  -          <source>
  -               Redirect [-v] &lt;XML file&gt;
  -          </source>
  -          <p>The -v option is used to invoke the Validating SAX Parser instead.</p>
  -
  -                   <p>When invoked as follows:</p>
  -          <source>
  -               cd &XercesCInstallDir;-linux/samples/data
  -               Redirect -v personal.xml
  -          </source>
  -          <p>The output is the following:</p>
  -          <source>
  -          cd &XercesCInstallDir;-linux/samples/data
  -          Redirect -v personal.xml
  -          personal.xml: 30 ms (37 elems, 12 attrs, 134 spaces, 134 chars)
  -          </source>
  -
  -          <p>External files required to run this sample are 'personal.xml', 'personal.dtd' and
  -             'redirect.dtd', which are all present in the 'samples/data' directory. Make sure
  -             that you run redirect in the samples/data directory.</p>
  -
  -             <p>The 'resolveEntity' callback in this sample looks for an external entity with
  -             system id as 'personal.dtd'. When it is asked to resolve this particular external
  -             entity, it creates and returns a new InputSource for the file 'redirect.dtd'.</p>
  -
  -             <p>A real-world XML application can similarly do application specific processing
  -             when encountering external entities. For example, an application might want to
  -             redirect all references to entities outside of its domain to local cached copies.</p>
  -
  -        </s3>
  -
  -    </s2>
  -
  -
  -
  -
  -
  -    <s2 title="PParse">
  -        <p>Demonstrates progressive parsing.</p>
  -        <p>
  -           In this example, the programmer doesn't have to depend upon throwing
  -            an exception to terminate the parsing operation. Calling parseFirst() will
  -            cause the DTD to be parsed (both internal and external subsets) and any
  -            pre-content, i.e. everything up to but not including the root element.
  -            Subsequent calls to parseNext() will cause one more piece of markup to
  -            be parsed, and spit out from the core scanning code to the parser. You
  -            can quit the parse any time by just not calling parseNext() anymore
  -            and breaking out of the loop. When you call parseNext() and the end
  -            of the root element is the next piece of markup, the parser will
  -            continue on to the end of the file and return false, to let you
  -            know that the parse is done.
  -          </p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked PParse.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd PParse
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        PParse in ' &XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running PParse">
  -
  -
  -        <p>The program looks for the first 16 elements of the XML file, and reports if successful.</p>
  -          <source>
  -               PParse [-v] &lt;XML file&gt;
  -          </source>
  -
  -          <p>The output is the following:</p>
  -          <source>
  -          Got the required 16 elements.
  -          </source>
  -
  -        </s3>
  -
  -    </s2>
  -
  -
  -    <s2 title="StdInParse">
  -        <p>Demonstrates streaming XML data from the standard input.
  -        </p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked StdInParse.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd StdInParse
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        StdInParse in ' &XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running StdInParse">
  -
  -          <p>The StdInParse sample parses an XML file and prints out a count of the number of
  -          elements in the file. To run StdInParse, enter the following </p>
  -          <source>
  -               StdInParse &lt; &lt;XML file&gt;
  -          </source>
  -          <p>Here is a sample output from StdInParse</p>
  -          <source>
  -          cd &XercesCInstallDir;-linux/samples/data
  -          StdInParse &lt; personal.xml
  -          personal.xml: 60 ms (37 elems, 12 attrs, 0 spaces, 268 chars)
  -          </source>
  -
  -          <note>The time reported by the program may be different depending on your
  -          machine processor.
  -          </note>
  -        </s3>
  -
  -    </s2>
  -
  -
  -    <s2 title="CreateDOMDocument">
  -        <p> CreateDOMDocument, illustrates how you can create a DOM tree in 
  -            memory from scratch. It then reports the elements in the tree that
  -            was just created.</p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked DOMCount.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd CreateDOMDocument
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        CreateDOMDocument in ' &XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running CreateDOMDocument">
  -
  -          <p>The CreateDOMDocument sample illustrates how you can create a DOM tree
  -             in memory from scratch. To run CreateDOMDocument, enter the following</p>
  -          <source>
  -               CreateDOMDocument
  -          </source>
  -          <p>Here is a sample output from CreateDOMDocument</p>
  -          <source>
  -          cd &XercesCInstallDir;-linux/samples/data
  -          CreateDOMDocument
  -          The tree just created contains: 4 elements.
  -          </source>
  -
  -        </s3>
  -
  -    </s2>
  -
  -
  -
  -    <s2 title="EnumVal">
  -        <p>Shows how to enumerate the markup decls in a DTD Validator.
  -        </p>
  -
  -        <s3 title="Building on Windows">
  -        <p>Load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
  -        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -        build the project marked EnumVal.
  -        </p>
  -        </s3>
  -        <s3 title="Building on UNIX">
  -        <source>
  -        cd &XercesCInstallDir;-linux/samples
  -        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  -        cd EnumVal
  -        gmake
  -        </source>
  -        <p>
  -        This will create the object files in the current directory and the executable named
  -        EnumVal in ' &XercesCInstallDir;-linux/bin' directory.</p>
  -
  -        <p>To delete all the generated object files and executables, type</p>
  -        <source>
  -        gmake clean
  -        </source>
  -        </s3>
  -
  -        <s3 title="Running EnumVal">
  -
  -          <p>This program parses a file, then shows how to enumerate the contents of the validator pools.
  -          To run EnumVal, enter the following </p>
  -          <source>
  -               EnumVal &lt;XML file&gt;
  -          </source>
  -          <p>Here is a sample output from EnumVal</p>
  -          <source>
  -cd &XercesCInstallDir;-linux/samples/data
  -EnumVal personal.xml
  -
  -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:subordinates, Type: IDREF(S)
  -    Name:manager, Type: IDREF(S)
  -
  -  Name: family
  -  Content Model: (#PCDATA)*
  -
  -  Name: given
  -  Content Model: (#PCDATA)*
  -
  -          </source>
  -        </s3>
   
  +    <p>The sample applications are dependent on the &XercesCName; shared library
  +		(and could also depend on the ICU library if you built &XercesCName; with ICU).
  +		Therefore, on Windows platforms you must make sure that your <code>PATH</code>
  +		environment variable is set properly to pick up these shared libraries at
  +		runtime.</p>
  +
  +		<p>On UNIX platforms you must ensure that <ref>LIBPATH</ref>
  +		environment variable is set properly to pick up the shared libraries at
  +		runtime. (UNIX gurus will understand here that <ref>LIBPATH</ref> actually
  +		translates to <em>LD_LIBRARY_PATH</em> on Solaris and Linux, <em>SHLIB_PATH</em> on HP-UX
  +		and stays as <em>LIBPATH</em> on AIX).</p>
  +
  +		<p>To set you LIBPATH (on AIX for example), you would type:</p>
  +<source>export LIBPATH=&XercesCInstallDir;/lib:$LIBPATH</source>
  +
  +               <p>Once you have set up your PATH variable, you can run the
  +               samples by opening a command window (or your shell prompt for
  +               UNIX environments).</p>
  +
  +		<s3 title="&XercesCName; Samples">
  +			<ul>
  +				<li><link idref="saxcount">SAXCount</link>
  +					<br/>SAXCount counts the elements, attributes, spaces and
  +					characters in an XML file.</li>
  +				<li><link idref="saxprint">SAXPrint</link>
  +					<br/>SAXPrint parses an XML file and prints it out.</li>
  +				<li><link idref="domcount">DOMCount</link>
  +					<br/>DOMCount counts the elements in a XML file.</li>
  +				<li><link idref="domprint">DOMPrint</link>
  +					<br/>DOMPrint parses an XML file and prints it out.</li>
  +				<li><link idref="memparse">MemParse</link>
  +					<br/>MemParse parses XML in a memory buffer, outputing the number of elements and attributes.</li>
  +				<li><link idref="redirect">Redirect</link>
  +					<br/>Redirect redirects the input stream for external entities.</li>
  +				<li><link idref="pparse">PParse</link>
  +					<br/>PParse demonstrates progressive parsing.</li>
  +				<li><link idref="stdinparse">StdInParse</link>
  +					<br/>StdInParse demonstrates streaming XML data from standard input.</li>
  +				<li><link idref="enumval">EnumVal</link>
  +					<br/>EnumVal shows how to enumerate the markup decls in a DTD Grammar.</li>
  +				<li><link idref="senumval">SEnumVal</link>
  +					<br/>SEnumVal shows how to enumerate the markup decls in a Schema Grammar.</li>
  +				<li><link idref="createdoc">CreateDOMDocument</link>
  +					<br/>CreateDOMDocument creates a DOM tree in memory from scratch.</li>
  +				<li><link idref="sax2count">SAX2Count</link>
  +					<br/>SAX2Count counts the elements, attributes, spaces and
  +					characters in an XML file.</li>
  +				<li><link idref="sax2print">SAX2Print</link>
  +					<br/>SAX2Print parses an XML file and prints it out.</li>
  +				<li><link idref="idomcount">IDOMCount</link>
  +					<br/>IDOMCount counts the elements in a XML file.</li>
  +				<li><link idref="idomprint">IDOMPrint</link>
  +					<br/>IDOMPrint parses an XML file and prints it out.</li>
  +			</ul>
  +		</s3>
       </s2>
   </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/bug-report.xml
  
  Index: bug-report.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Bug Reporting">
  
      <s2 title="How to report bugs">
          <p> Please report bugs to <jump href="http://nagoya.apache.org/bugzilla/">Bugzilla</jump>,
  	     the Apache bug database.  Pick the product "Xerces-C++: Apache XML parsers in C++"
              using the following components:
          </p>
          <table>
              <tr><td><em>Component</em></td><td><em>Description</em></td></tr>
              <tr><td>DOM</td><td>Items specific to DOM</td></tr>
              <tr><td>SAX/SAX2</td><td>Items specific to SAX or SAX2</td></tr>
              <tr><td>Non-Validating Parser</td><td>General Parsing Problem</td></tr>
              <tr><td>Validating Parser (DTD)</td><td>DTD related parser issue</td></tr>
              <tr><td>Validating Parser (Schema)</td><td>Schema related parser issue</td></tr>
              <tr><td>Utilities</td><td>Items related to utilities like MessageLoader, Transcoder, NetAccessors, Platform specific utilities</td></tr>
              <tr><td>Build</td><td>Problem with build, makefile, project files</td></tr>
              <tr><td>Documentation</td><td>Documentation bugs such as FAQ, Programming Guide</td></tr>
              <tr><td>Samples/Tests</td><td>Samples or test cases related issues</td></tr>
              <tr><td>Miscellaneous</td><td>Items not covered in other categories</td></tr>
          </table>
          <p>A copy of your bug report is sent automatically to the discussion list
             <jump href="mailto:&XercesCEmailAddress;">Xerces-C mailing list</jump>.
          </p>
      </s2>
  			
      <s2 title="Search frist">
          <p> Check the <jump href="http://nagoya.apache.org/bugzilla/">Bugzilla</jump> database
              before submitting your bug report to avoid creating a duplicate report.
              Even the bug has been reported already, you may add a comment to the existing report
              since your contribution may lead to a quicker identification/resolution to the bug reported.
          </p>
      </s2>
  
      <s2 title="Write good bug report">
          <p> Writing a useful bug report, which makes the bug reproducible, is the first step
              towards the resolution of the bug. Specifics about the bug, like
          </p>
  	 <ul>
            <li>&XercesCName; version number</li>
            <li>Platform</li>
            <li>Operating system and version number</li>
            <li>Compiler and version number</li>
            <li>The XML document (or excerpt) that failed</li>
            <li>The C++ application code that failed</li>
            <li>Whether you built the &XercesCName; library yourself or used the
                binary distribution</li>
            <li>What happened</li>
          </ul>			
          <p>
              are all necessary information to allow developer to reproduce,
              identify, evaluate and eventually, fix the bug, which is the very
              purpose of your reporting of the bug.
          </p>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/build-misc.xml
  
  Index: build-misc.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  
  <faqs title="Other Build Instructions">
      <faq title="Building &XercesCName; with ICU using bundled Perl scripts on Windows">
      <q>Building &XercesCName; with ICU using bundled Perl scripts on Windows</q>
      <a>
          <p>As mentioned earlier, &XercesCName; may be built in stand-alone mode using
          native encoding support and also using ICU where you get support over 180
          different encodings. ICU stands for International Components for Unicode and is an
          open source distribution from IBM. You can get
          <jump href="http://oss.software.ibm.com/icu/">ICU libraries</jump> from
          <jump href="http://oss.software.ibm.com/developerworks/opensource/">IBM's developerWorks site</jump>
          or go to the ICU
          <jump href="http://oss.software.ibm.com/icu/download/index.html">download page</jump>
          directly.</p>
  
          <note><em>Important:</em> Please remember that <em>ICU and
          &XercesCName; must be built with the same compiler</em>,
          preferably with the same version. You cannot for example,
          build ICU with a threaded version of the xlC compiler and
          build &XercesCName; with a non-threaded one.</note>
  
          <p>There are two options to build &XercesCName; with ICU. One is to use the
          MSDEV GUI environment, and the other is to invoke the compiler from the
          command line.</p>
  
          <p>Using, the GUI environment, requires one to edit the project files.
          Here, we will describe only the second option. It involves using the
          perl script '<code>packageBinaries.pl</code>'.</p>
  
          <p><em>Prerequisites:</em></p>
          <ul>
          <li>Perl 5.004 or higher</li>
          <li>Cygwin tools or MKS Toolkit</li>
          <li>zip.exe</li>
          </ul>
  
          <p>Extract &XercesCName; source files from the .zip archive using WinZip, say
          in the root directory (an arbitrary drive x:). It should create a directory like
          '<code>x:\&XercesCSrcInstallDir;</code>'.</p>
  
          <p>Extract the ICU files, using WinZip, in root directory of the disk
          where you have installed &XercesCName;, sources. After extraction, there
          should be a new directory '<code>x:\icu</code>' which contains all the ICU
          source files.</p>
  
          <p>Start a command prompt to get a new shell window. Make sure you have
          perl, cygwin tools (<code>uname</code>, <code>rm</code>,
          <code>cp</code>, ...), and <code>zip.exe</code> somewhere in the
          path. Next setup the environment for MSVC using
          '<code>VCVARS32.BAT</code>' or a similar file. Then at the prompt
          enter:</p>
  
  <source>set XERCESCROOT=x:\&XercesCSrcInstallDir;
  set ICUROOT=x:\icu
  cd x:\&XercesCSrcInstallDir;\scripts
  perl packageBinaries.pl -s x:\&XercesCSrcInstallDir; -o x:\temp\&XercesCInstallDir;-win32 -t icu</source>
  
          <p>(Match the source directory to your system; the target directory can be
          anything you want.)</p>
  
          <p>If everything is setup right and works right, then you should see a
          binary drop created in the target directory specified above. This script
          will build both ICU and &XercesCName;, copy the files (relevant to the binary
          drop) to the target directory.</p>
  
          <p>For a description of options available, you can enter:</p>
  <source>perl packageBinaries.pl</source>
      </a>
      </faq>
  
      <faq title="Building &XercesCName; COM Wrapper on Windows">
      <q>Building &XercesCName; COM Wrapper on Windows</q>
      <a>
          <p>To build the COM module for use with XML on Windows platforms, you
          must first set up your machine appropriately with necessary tools and
          software modules and then try to compile it. The end result is an additional
          library that you can use along with the standard &XercesCName; for writing
          VB templates or for use with IE 5.0 using JavaScript.</p>
  
          <p><em>Setting up your machine for COM</em></p>
          <p>To build the COM project you will need to install the MS PlatformSDK.
          Some of the header files we use don't come with Visual C++ 6.0. You may
          download it from Microsoft's Website at <jump href="http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm">http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm</jump>
          or directly FTP it from <jump href="ftp://ftp.microsoft.com/developr/PlatformSDK/April2000/Msi/WinNT/x86/InstMsi.exe">ftp://ftp.microsoft.com/developr/PlatformSDK/April2000/Msi/WinNT/x86/InstMsi.exe</jump>.</p>
  
          <p>The installation is huge, but you don't need most of it. So you
          may do a <em>custom install</em> by just selecting "Build Environment" and
          choosing the required components. First select the top level Platform SDK.
          Then click the down arrow and make all of the components unavailable. Next open the
          "Build Environment" branch and select only the following items:</p>
          <ul>
          <li>Win32 API</li>
          <li>Component Services</li>
          <li>Web Services - Internet Explorer</li>
          </ul>
  
          <p><em>Important:</em> When the installation is complete you need to update VC6's
          include path to include <code>..\platformsdk\include\atl30</code>. You do this by
          choosing "Tools -> Options -> Directories". This path
          should be placed <ref>second</ref> after the normal PlatformSDK include.
          You change the order of the paths by clicking the up and down arrows.</p>
  
          <note>The order in which the directories appear on your path is important. Your
          first include path should be <code>..\platformsdk\include</code>. The second one
          should be <code>..\platformsdk\include\atl30</code>.</note>
  
  
          <p><em>Building COM module for &XercesCName;</em></p>
          <p>Once you have set up your machine, build &XercesCName; COM module
          by choosing the project named 'xml4com' inside the workspace. Then select your
          build mode to be <em>xml4com - Win32 Release MinDependency</em>. Finally build the
          project. This will produce a DLL named <code>xerces-com.dll</code> which needs
          to be present in your path (on local machine) before you can use it.</p>
  
  
          <p><em>Testing the COM module</em></p>
          <p>There are some sample test programs in the <code>test/COMTest</code>
          directory which show examples of navigating and searching an XML tree
          using DOM. You need to browse the HTML files in this directory using
          IE 5.0. Make sure that your build has worked properly, specially the
          registration of the ActiveX controls that happens in the final step.</p>
          <p>You may also want to check out the NIST DOM test suite at
          <jump href="http://xw2k.sdct.itl.nist.gov/BRADY/DOM/">http://xw2k.sdct.itl.nist.gov/BRADY/DOM/</jump>.
          You will have to modify the documents in the NIST suite to load the
          Xerces COM object instead of the MSIE COM object.</p>
  
      </a>
      </faq>
  
  
      <faq title="Building User Documentation">
      <q>Building User Documentation</q>
      <a>
          <p>The user documentation (this very page that you are reading
          on the browser right now), was generated using an XML
          application called StyleBook. This application makes use of
          Xerces-J and Xalan to create the HTML file from the XML source
          files. The XML source files for the documentation are part of
          the &XercesCName; module. These files reside in the
          <code>doc</code> directory.</p>
  
          <p><em>Pre-requisites for building the user
          documentation are:</em></p>
  
          <ul>
            <li>JDK 1.2.2 (or later).</li>
            <li>Xerces-J 1.0.1.<em>bundled</em></li>
            <li>Xalan-J 0.19.2.<em>bundled</em></li>
            <li>Stylebook 1.0-b2.<em>bundled</em></li>
            <li>The Apache Style files (dtd's and .xsl files).<em>bundled</em></li>
          </ul>
  
          <p>Invoke a command window and setup PATH to include the JDK 1.2.2 bin
          directory</p>
  
          <p>Next, cd to the &XercesCName; source drop root directory,
          and enter</p>
  
          <ul>
            <li>Under Windows:<br/>
            <code>createDocs</code></li>
            <li>Under Unix's:<br/>
            <code>sh createDocs.bat</code></li>
          </ul>
  
          <p>This should generate the .html files in the 'doc/html'
          directory.</p>
      </a>
      </faq>
  
  
      <faq title="I wish to port &XercesCProjectName; to my favourite platform. Do you have any suggestions?">
      <q>I wish to port &XercesCProjectName; to my favourite platform. Do you have any suggestions?</q>
      <a>
        <p>All platform dependent code in &XercesCProjectName; has been
        isolated to a couple of files, which should ease the porting
        effort.  Here are the basic steps that should be followed to
        port &XercesCProjectName;.</p>
  
        <ol>
  
          <li>The directory <code>src/util/Platforms</code> contains the
          platform sensitive files while <code>src/util/Compilers</code> contains
          all development environment sensitive files. Each operating
          system has a file of its own and each development environment
          has another one of its own too.
  
          <br/>
  
          As an example, the Win32 platform as a <code>Win32Defs.hpp</code> file
          and the Visual C++ environment has a <code>VCPPDefs.hpp</code> file.
          These files set up certain define tokens, typedefs,
          constants, etc... that will drive the rest of the code to
          do the right thing for that platform and development
          environment. AIX/CSet have their own <code>AIXDefs.hpp</code> and
          <code>CSetDefs.hpp</code> files, and so on. You should create new
          versions of these files for your platform and environment
          and follow the comments in them to set up your own.
          Probably the comments in the Win32 and Visual C++ will be
          the best to follow, since that is where the main
          development is done.</li>
  
          <li>Next, edit the file <code>XercesDefs.hpp</code>, which is where all
              of the fundamental stuff comes into the system. You will
              see conditional sections in there where the above
              per-platform and per-environment headers are brought in.
              Add the new ones for your platform under the appropriate
              conditionals.</li>
  
          <li>Now edit <code>AutoSense.hpp</code>. Here we set canonical &XercesCProjectName;
              internal <code>#define</code> tokens which indicate the platform and
              compiler. These definitions are based on known platform
              and compiler defines.
              <br/>
              <code>AutoSense.hpp</code> is included in <code>XercesDefs.hpp</code> and the
              canonical platform and compiler settings thus defined will
              make the particular platform and compiler headers to be
              the included at compilation.
              <br/>
              It might be a little tricky to decipher this file so be
              careful. If you are using say another compiler on Win32,
              probably it will use similar tokens so that the platform
              will get picked up already using what is already there.</li>
  
          <li>Once this is done, you will then need to implement a
              version of the <ref>platform utilities</ref> for your platform.
              Each operating system has a file which implements some
              methods of the XMLPlatformUtils class, specific to that
              operating system. These are not terribly complex, so it
              should not be a lot of work. The Win32 verions is called
              <code>Win32PlatformUtils.cpp</code>, the AIX version is
              <code>AIXPlatformUtils.cpp</code> and so on. Create one for your
              platform, with the correct name, and empty out all of the
              implementation so that just the empty shells of the
              methods are there (with dummy returns where needed to make
              the compiler happy.) Once you've done that, you can start
              to get it to build without any real implementation.</li>
  
          <li>Once you have the system building, then start
              implementing your own platform utilties methods. Follow
              the comments in the Win32 version as to what they do, the
              comments will be improved in subsequent versions, but they
              should be fairly obvious now. Once you have these
              implementations done, you should be able to start
              debugging the system using the demo programs.</li>
        </ol>
  
        <p>Other concerns are:</p>
  
        <ul>
          <li>Does ICU compile on your platform? If not, then you'll need to
              create a transcoder implementation that uses your local transcoding
              services. The Iconv transcoder should work for you, though perhaps
              with some modifications.</li>
          <li>What message loader will you use? To get started, you can use the
              "in memory" one, which is very simple and easy. Then, once you get
              going, you may want to adapt the message catalog message loader, or
              write one of your own that uses local services.</li>
        </ul>
  
        <p>That is the work required in a nutshell!</p>
      </a>
      </faq>
  
  
      <faq title="What should I define XMLCh to be?">
      <q>What should I define XMLCh to be?</q>
      <a>
          <p>XMLCh should be defined to be a type suitable for holding a
             utf-16 encoded (16 bit) value, usually an <code>unsigned short</code>. </p>
  
          <p>All XML data is handled within &XercesCName; as strings of
             XMLCh characters.  Regardless of the size of the
             type chosen, the data stored in variables of type XMLCh
             will always be utf-16 encoded values. </p>
  
  
  
          <p>Unlike XMLCh, the  encoding
                 of wchar_t is platform dependent.  Sometimes it is utf-16
                 (AIX, Windows), sometimes ucs-4 (Solaris,
                 Linux), sometimes it is not based on Unicode at all
                 (HP/UX, AS/400, system 390).  </p>
  
          <p>Some earlier releases of xerce-c defined XMLCh to be the
             same type as wchar_t on most platforms, with the goal of making
             it possible to pass XMLCh strings to library or system functions
             that were expecting wchar_t paramters.  This approach has
             been abandonded because of</p>
  
             <ul>
                <li>
                   Portability problems with any code that assumes that
                   the types of XMLCh and wchar_t are compatible
                </li>
  
                <li>Excessive memory usage, especially in the DOM, on
                    platforms with 32 bit wchar_t.
                </li>
  
                <li>utf-16 encoded XMLCh is not always compatible with
                    ucs-4 encoded wchar_t on Solaris and Linux.  The
                    problem occurs with Unicode characters with values
                    greater than 64k; in ucs-4 the value is stored as
                    a single 32 bit quatity.  With utf-16, the value
                    will be stored as a "surrogate pair" of two 16 bit
                    values.  Even with XMLCh equated to wchar_t, xerces will
                    still create the utf-16 encoded surrogate pairs, which
                    are illegal in ucs-4 encoded wchar_t strings.
                 </li>
             </ul>
      </a>
      </faq>
  
      <faq title="Where can I look for more help?">
      <q>Where can I look for more help?</q>
      <a>
          <p>If you have read this page, followed the instructions, and
          still cannot resolve your problem(s), there is more help. You
          can find out if others have
          solved this same problem before you, by checking the Apache XML
          mailing list archives at <jump href="http://archive.covalent.net ">
          http://archive.covalent.net</jump> and the
  		<jump href="http://nagoya.apache.org/bugzilla/">Bugzilla</jump>
  		Apache bug database.</p>
      </a>
      </faq>
  
  </faqs>
  
  
  
  1.1                  xml-site/sources/xerces-c/build-other.xml
  
  Index: build-other.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  
  <faqs title="Building on Other Platforms">
      <faq title="Building &XercesCName; on OS/2 using Visual Age C++">
      <q>Building &XercesCName; on OS/2 using Visual Age C++</q>
      <a>
            <p>OS/2 is a favourite IBM PC platforms. The only
            option in this platform is to use
            <jump href="http://www-4.ibm.com/software/ad/vacpp/">Visual Age C++ compiler</jump>.
            Here are the steps you need to build &XercesCName; using
            Visual Age C++ on OS/2.</p>
            <p><em>Building &XercesCName; library</em></p>
               <p><em>Requirements:</em></p>
                  <ul>
                      <li>VisualAge C++ Version 4.0 with Fixpak 1:
                      <br/>Download the
                      <jump href="http://www-4.ibm.com/software/ad/vacpp/service/csd.html">Fixpak</jump>
                      from the IBM VisualAge C++ Corrective Services web page.</li>
                  </ul>
  
               <p>There are two ways to build &XercesCName;. The "From Existing" method only
                    requires VAC++. The "From Scratch" method requires both Object Rexx and VAC++
                    installed.</p>
  
            <p><em>The &quot;From Existing&quot; Method</em></p>
            <ol>
              <li>In the <code>&XercesCSrcInstallDir;\Projects\OS2\VACPP40</code> directory,
              find and edit the VAC++ configuration file <code>project_options.icc</code>.</li>
  
              <li>Change the directory on the first line <code>'BASE_DIR = "..."'</code>
              to match the base directory of the &XercesCName; sources on your system.
              Note that the directory path must use double backslashes <code>"\\"</code>!</li>
  
              <li>Save <code>project_options.icc</code></li>
  
              <li>Start the Command Line in the VAC++ folder.</li>
  
              <li>Navigate to the <code>&XercesCSrcInstallDir;\Projects\OS2\VACPP40</code> directory.</li>
  
              <li>Run <code>build.cmd</code>. This does a migration build.</li>
  
              <li>When <code>build.cmd</code> finishes, review the file <code>compiler.errors</code>.
              This file should contain only informational messages, almost all complaining
              about constant values in comparisons.</li>
  
              <li>You should now have a <code>xerces-c.dll</code> and <code>xerces-c.lib</code>.
              The library file is an import library for the DLL.</li>
            </ol>
  
            <p><em>The &quot;From Scratch&quot; Method</em></p>
            <ol>
              <li>If you are not currently running <code>Object Rexx</code>,
              run the <code>SWITCHRX</code> command from a command line,
              answer <code>"yes"</code> to switching to <code>Object Rexx</code>, and follow the
              instructions to reboot. You can switch back to <code>"Classic Rexx"</code> by running
              <code>SWITCHRX</code> again. But you probably won't need to switch back since
              <code>Object Rexx</code> runs almost 100% of Classic Rexx programs.</li>
  
              <li>In the <code>&XercesCSrcInstallDir;\Projects\OS2\VACPP40</code> directory,
              run <code>genICC.cmd</code>. This builds the VAC++ configuration files for
              the sources you have on your system.</li>
  
              <li>Check the generated <code>ICC</code> files to ensure that they didn't pick up some
              non-OS/2 platform stuff. This happens when new platform-specific directories
              are added to Xerces. If they did pick up new non-OS/2 stuff, either edit it out
              of the <code>ICC</code> file or add them to the "ignore" array in <code>genICC.cmd</code> and
              re-run <code>genICC</code>.</li>
  
              <li>Start the Command Line in the VAC++ folder.</li>
  
              <li>Navigate to the <code>&XercesCSrcInstallDir;\Projects\OS2\VACPP40</code> directory.</li>
  
              <li>Run <code>build.cmd</code> This does a migration build.</li>
  
              <li>When <code>build.cmd</code> finishes, review the file <code>compiler.errors</code>.
              This file should contain only informational messages, almost all complaining about constant
              values in comparisons.</li>
  
              <li>You should now have a <code>xerces-c.dll</code> and <code>xerces-c.lib</code>.
              The library file is an import library for the DLL.)</li>
  
            </ol>
  
           <p><em>Packaging the Binaries</em></p>
  
            <p>There is an <code>Object Rexx</code> program that will package the binaries and headers.
            (See step 1 of the "From scratch" method on how to switch to <code>Object Rexx</code>.) The
            <code>packageBinaries.cmd</code> file is in the <code>&XercesCSrcInstallDir;\Projects\OS2\VACPP40</code>
            directory. Run <code>packageBinaries</code>, giving the source and target directories
            like this:</p>
  
  <source>packageBinaries -s x:\&XercesCSrcInstallDir; -o x:\temp\&XercesCInstallDir;-os2</source>
  
            <p>(Match the source directory to your system; the target directory can be
            anything you want.)</p>
  
            <note>If you don't want to use the <code>Object Rexx</code> program, you'll need to
            manually  copy the "*.hpp" and "*.c" files to an include directory.
            (Be sure to maintain the same directory structure that you find under
            <code>&XercesCSrcInstallDir;</code>.)</note>
  
  
          <p><em>Building Samples</em></p>
           <p>Building the &XercesCName; samples using IBM Visual Age C++ Professional 4.0
            for OS/2 (VAC++).</p>
  
           <ul>
           <li> In the <code>XercesCSrcInstallDir;\samples\Projects\OS2\VACPP40</code> directory,
           find and edit the VAC++ configuration file <code>basedir.icc</code>.</li>
  
           <li>All of the directories used to build the samples are defined in
           <code>basedir.icc</code>. You need to edit the directories to match your system.
           Here are the directories you need to assign:
  
                  SRC_DIR -- <code>XercesCSrcInstallDir;</code>
                             This is where VAC++ should look to find the samples
                             directories containing the source files.
                  BASE_DIR -- The install directory <code>XercesCSrcInstallDir;</code>.
                  		VAC++ will store the compiled samples in the <code>bin</code>
                  		directory under BASE_DIR. It will also look for the
                  		<code>xerces-c.lib</code> file in the <code>lib</code> directory under BASE_DIR.
  
              Other directories are set based on these two. You can choose to override them
              if you wish.</li>
  
           <li>Save <code>basedir.icc</code></li>
  
           <li>Start the Command Line in the VAC++ folder.</li>
  
           <li>Navigate to the <code>XercesCSrcInstallDir;\samples\Projects\OS2\VACPP40</code> directory.</li>
  
           <li>Run <code>bldsamples.cmd</code></li>
  
           <li>When <code>build.cmd</code> finishes, review the file <code>compiler.errors</code>.
           This file should contain only informational messages, almost all complaining about constant
              values in comparisons.</li>
  
           <li>You should now have several executable files.</li>
  
          </ul>
  
          <p>Rebuilding the Configuration Files</p>
  
          <p>Although it shouldn't be necessary, if you want to rebuild the VAC++
          configuration files, you'll need to have Object Rexx running on your system:</p>
  
          <ul>
           <li> If you are not currently running Object Rexx, run the SWITCHRX command from
              a command line, answer "yes" to switching to Object Rexx, and follow the
              instructions to reboot. (Note: You can switch back to "Classic Rexx" by
              running SWITCHRX again. But you probably won't need to switch back since
              Object Rexx runs almost 100% of Classic Rexx programs.)</li>
  
           <li>In the Projects\OS2\VACPP40 directory, run genICC.cmd. This builds the VAC++
              configuration files for the samples you have on your system.</li>
  
  
            <li>Go to the first step above in the "Building asmples for OS/2" section.</li>
          </ul>
  
  
      </a>
      </faq>
  
      <faq title="Building &XercesCName; on AS/400">
      <q>Building &XercesCName; on AS/400</q>
      <a>
              <p>The following addresses the requirements and build of
             &XercesCName; natively on the AS/400.
              </p>
              <p><em>Building &XercesCName; library</em></p>
                  <p><em>Requirements:</em></p>
  
                  <ul>
                      <li><code>QSHELL</code> interpreter installed (install base option 30, operating system)</li>
                      <li>QShell Utilities,  PRPQ  5799-XEH</li>
                      <li>ILE C++ for AS/400,  PRPQ 5799-GDW</li>
                      <li>GNU facilities  (the gnu facilities are currently available by request
                      only.  Send e-mail to <jump href="mailto:rchgo400@us.ibm.com">rchgo400@us.ibm.com</jump>)</li>
                  </ul>
  
                  <p><em>Recommendations:</em></p>
  
                  <ul>
                  <li>There are a couple of options when building the &XercesCName; parser on AS/400.
                  For messaging support, you can use the in memory message option or the
                  message file support. For code page translation, you can use the AS/400
                  native <code>Iconv400</code> support or ICU. If you choose ICU, follow the instructions
                  to build the ICU service program with the ICU download. Those instructions
                  are not included here.</li>
  
                  <li>Currently we recommend that you take the options of <code>MsgFile</code> and
                  <code>Iconv400</code> (see below)</li>
                  </ul>
  
                  <p><em>Setup Instructions:</em></p>
  
                  <ul>
                  <li>Make sure that you have the requirements installed on your AS/400.
                  We highly recommend that you read the writeup that accompanies the gnu
                  facilities download.  There are install instructions as well as
                  information about how modules, programs and service programs can be
                  created in Unix-like fashion using gnu utilities.  Note that symbolic
                  links are use in the file system to point to actual AS/400 <code>*module</code>,
                  <code>*pgm</code> and <code>*srvpgm</code> objects in libraries.</li>
                  <li>Download the tar file  (unix version) to the AS/400
                  (using a mapped drive), and decompress and <code>untar</code> the source.
                  We have had difficulty with the tar command on AS/400. This is under
                  investigation.  If you have trouble, we recommend the following work
                  around:</li></ul>
  <source>qsh:
  gunzip -d &lt;tar file.gz&gt;
  pax -r -f &lt;uncompressed tar file&gt;</source>
  
                  <ul>
                  <li>Create AS400 target library. This library will be the target
                  for the resulting  modules and  &XercesCName; service program. You will
                  specify this library on the <code>OUTPUTDIR</code> environment variable
                  in step 4</li>
                  <li>Set up the following environment variables in your build process
                  (use <code>ADDENVVAR</code> or <code>WRKENVVAR CL</code> commands):</li>
                  </ul>
  <source>XERCESCROOT - &lt;the full path to your &XercesCName; sources&gt;
  PLATFORM  - 'OS400'
  MAKE   - '/usr/bin/gmake'
  OUTPUTDIR  - &lt;identifies target as400 library for *module, *pgm and *srvpgm objects&gt;
  ICUROOT - (optional if using ICU)  &lt;the path of your ICU includes&gt;</source>
  
                  <ul>
                  <li>Add <code>QCXXN</code>, to your build process library list.
                  This results in the resolution of <code>CRTCPPMOD</code> used by the
                  <code>icc</code> compiler.</li>
  
                  <li>The runConfigure instruction below uses <code>'egrep'</code>.
                  This is not on the AS/400 but you can create it by doing the following:
                  <code>edtf '/usr/bin/egrep'</code> with the following source:</li>
                  </ul>
  
  <source>#!/usr/bin/sh
  /usr/bin/grep -e "$@"</source>
  
           <p>You may want to put the environment variables and library list
           setup instructions in a <code>CL</code> program so you will not forget these steps
           during your build.</p>
  
           <p><em>Configure</em></p>
  
           <p>To configure the make files for an AS/400 build do the following:</p>
  <source>qsh
  cd &lt;full path to &XercesCName;&gt;/src
  runConfigure -p os400 -x icc -c icc -m MsgFile -t Iconv400</source>
  
           <p>Troubleshooting:</p>
  <source>error: configure: error: installation or configuration problem:
  C compiler cannot create executables.</source>
  
           <p>If during <code>runConfigure</code> you see the above error message, it
           can mean one of two things. Either <code>QCXXN</code> is not on your library
           list  <em>OR</em> the <code>runConfigure</code> cannot create the temporary
           modules (<code>CONFTest1</code>, etc) it uses to test out the compiler
           options. The second reason happens because the test modules already exist
           from a previous run of <code>runConfigure</code>. To correct the problem,
           do the following:</p>
  <source>DLTMOD &lt;your OUTPUTDIR library&gt;/CONFT* and
  DLTPGM your &lt;OUTPUTDIR library&gt;/CONFT*</source>
  
          <p><em>Build</em></p>
  
  <source>qsh
  gmake -e</source>
  
           <p>The above gmake will result in a service program being created
           in your specified library and a symbolic link to that service program
           placed in &lt;path to &XercesCName;/lib&gt;. You can either bind your
           XML application programs directly to the parser's service program
           via the <code>BNDSRVPGM</code> option on the <code>CRTPGM</code> or
           <code>CRTSRVPGM</code> command  or you can specify a binding directory
           on your <code>icc</code>  command. To specify an archive file to bind to,
           use the  <code>-L, -l</code> binding options on icc.  An archive file
           on AS/400 is a binding directory. To create an archive file, use
           <code>qar</code> command.  (see the gnu facilities write up).
           </p>
  
           <p>
           After building the &XercesCName; service program, create a binding directory
           by doing the following (note, this binding directory is used when building
           the samples):</p>
  <source>qsh
  cd &lt;full path to &XercesCName;>/lib&gt;
  qar -cuv libxercesc1_1.a *.o
  command = CRTBNDDIR BNDDIR(yourlib/libxercesc) TEXT('/yourlib/&XercesCName;/lib/libxercesc1_1.a')
  command = ADDBNDDIRE BNDDIR(yourlib/libxercesc) OBJ((yourlib/LIBXERCESC *SRVPGM) )</source>
  
  
           <p><em>Troubleshooting:</em></p>
           <p>If you are on a V4R3 system, you will get a bind problem
           <code>'descriptor  QlgCvtTextDescToDesc not found'</code> using Iconv400.
           On V4R3 the system doesn't automatically pick up the <code>QSYS/QLGUSR</code> service
           program for you when resolving this function. This is not the case on V4R4.
           To fix this, you can either manually create the service program after creating
           all the resulting modules in your &lt;OUTPUTDIR&gt; library or you can create
           a symbolic link to a binding directory that points to  the <code>QLGUSR</code>
           service program and then specify  an additional <code>-L, -l</code> on the
           <code>EXTRA_LINK_OPTIONS</code> in <code>Makefile.incl</code>.
           See the <code>ln</code> and <code>qar</code> function in the gnu utilities.</p>
  
           <p>To build for transcoder ICU:</p>
           <ol>
            <li>Make sure you have an <code>ICUROOT</code> path set up so that you can
            find the ICU header files (usually <code>/usr/local</code>)</li>
            <li>Make sure you have created a binding directory (symbolic link)
            in the file system so that you can bind the &XercesCName; service program
            to the ICU service program and specify that on the <code>EXTRA_LINK_OPTIONS</code>
            in <code>src/Makefile.incl</code> (usually the default is a link
            in <code>/usr/local/lib</code>).</li>
           </ol>
  
           <p><em>Creating AS400 XML parser message file:</em></p>
           <p>As specified earlier, the <code>-m</code> MsgFile support on the
           <code>runConfigure</code> enable the parser messages to be pulled from
           an AS/400 message file. To view the source for creating  the message file
           and the XML parser messages, see the following stream file:</p>
  <source>EDTF &lt;full path to &XercesCName;&gt;/src/util/MsgLoaders/MsgFile/CrtXMLMsgs</source>
  
           <p>In the prolog of <code>CrtXMLMsgs</code> there are instructions to create
           the message file:</p>
           <ol>
           <li>Use the <code>CPYFRMSTMF</code> to copy the CL source to an AS/400 source
           physical file. Note that the target source file needs to have record length
           of about 200 bytes to avoid any truncation.</li>
           <li>Create the CL program to create the message file and add the various
           message descriptions</li>
           <li>Call the CL program, providing the name of the message file
           (use <code>QXMLMSG</code> as default) and a library  (this can be any
           library, including any product library in which you wish to embed
           the xml parser)</li>
           </ol>
  
           <p>Note that the &XercesCName; source code for resolving parser messages is
           using by default message file  <code>QXMLMSG, *LIBL</code>.
           If you want to change either the message file name or explicitly qualify the
           library to match your product needs, you must edit the following <code>.cpp</code>
           files prior to your build.</p>
  <source>&lt;full path to &XercesCName;&gt;/src/util/MsgLoaders/MsgFile/MsgLoader.cpp
  &lt;full path to &XercesCName;&gt;/src/util/Platforms/OS400/OS400PlatformUtils.cpp</source>
  
           <p><em>Troubleshooting:</em></p>
           <p>If you are using the parser and are failing to get any  message text
           for error codes, it may be because of the <code>*LIBL</code> resolution of
           the message file.</p>
  
  
          <p><em>Building Samples on AS/400</em></p>
  <source>qsh
  cd &lt;full path to &XercesCName;&gt;/samples
  runConfigure -p os400 -x icc -c icc
  gmake -e</source>
  
              <p><em>Troubleshooting:</em></p>
              <p>If you take a <code>'sed'</code> error, while trying to make the samples.
              This is an AS400 anomaly having to do with certain new line character and
              the <code>sed</code> function. A temporary work around is to use <code>EDTF</code>
              on the configure stream file (<code>../samples/configure</code>) and delete the
              following line near the bottom: <code>s%@DEFS@%$DEFS%g</code>.
              </p>
  
  
      </a>
      </faq>
  
      <faq title="Building &XercesCName; on Macintosh">
      <q>Building &XercesCName; on Macintosh</q>
      <a>
  		<p>The &XercesCName; Mac port has the key following attributes:
  		</p>
  		
  		<ol>
  			<li>Built atop CoreServices APIs and a limited number of Carbon APIs;
  			supports builds for both Mac OS Classic, Carbon, and Mac OS X systems.
  			</li>
  			
  			<li>Has a Mac OS native transcoder that utilizes the built-in Mac OS Unicode
  			converter [MacOSUnicodeConverter].
  			</li>
  			
  			<li>Has a Mac OS native netaccessor that utilizes the built-in Mac OS URLAccess
  			routines [MacOSURLAccess].
  			</li>
  			
  			<li>Supports builds from Metroworks CodeWarrior, Apple Project Builder,
  			and Mac OS X shell.
  			</li>
  		</ol>
  		
  		<p><em>Using &XercesCName; with CodeWarrior</em></p>
  
  			<p><em>&XercesCName; and CodeWarrior:</em>
  			</p>
  			
  			<p>&XercesCName; may be built with CodeWarrior under Mac OS Classic or Mac OS X. Since
  			the &XercesCName; code contains some files with very long names, and CodeWarrior
  			does not yet support use of files with such long names, the installation
  			in this case is somewhat involved.
  			</p>
  			
  			<p><em>Installing &XercesCName; for use with CodeWarrior:</em>
  			</p>
  			
  			<p>For compatibility with CodeWarrior, it is necessary to adjust some of the
  			file names (and referencing include statements). To do this, it is necessary
  			to perform the following steps on a unix (or Mac OS X) machine that
  			has support for long file names (a Windows machine may also work):
  			</p>
  			
  			<ul>
  				<li>Retrieve &XercesCName; from CVS, or untar a packaged build. Note that these
  				steps should not be performed in a Classic Mac OS environment, as file
  				names would then be mangled at this point!
  				</li>
  					
  				<li>&XercesCName; comes with a tool that will shorten file names as appropriate,
  				and fix up referencing include statements. Duplicate the file
  				Projects/MacOS/ShortenFiles.pl to the xercesc main directory (the same
  				directory that contains the Projects directory). Executing this perl
  				script from this location will create a new directory MacSrc that
  				contains patched up versions of files from the src directory.
  				</li>
  			</ul>
  			
  <source>cd &lt;xercescroot&gt;
  cp Projects/MacOS/ShortenFiles.pl .
  perl ShortenFiles.pl</source>
  
  			<ul>
  				<li>The source files will likely not now have proper Mac OS type/creator
  				attribution. CodeWarrior badly wants this to be correct. So set the
  				type/creator of these files somehow. The following should work from
  				Mac OS X (but if you're not going to keep building on a Mac OS X
  				machine, you may well need to perform this step in some other way once
  				you get the files onto your classic machine).
  				</li>
  			</ul>
  			
  <source>find . \( -name "*.c" -or -name "*.h" -or -name "*.cpp" -or -name "*.hpp" -or \
  -name "*.xml" \) -print0 | xargs -0 /Developer/Tools/SetFile -c CWIE -t TEXT</source>
  
  			<ul>
  				<li>Move the entire directory structure to your Mac OS machine.
  				</li>
  			</ul>
  		
  			<p><em>Building &XercesCName; with CodeWarrior:</em>
  			</p>
  		
  			<ul>
  				<li>Run CodeWarrior (tested with latest CW Pro 7.0).
  				</li>
  				
  				<li>Import the project Projects/MacOS/CodeWarrior/XercesLib/XercesLib.mcp.xml,
  				saving it back out to the same directory as XercesLib.mcp.
  				</li>
  				
  				<li>This project contains five build targets that build all combinations of
  				classic, carbon, debug, and release versions, with an all target that
  				builds all of these. Build any or all of these.
  				</li>
  			</ul>
  		
  			<p><em>Building &XercesCName; Samples with CodeWarrior:</em>
  			</p>
  			
  			<p>A CodeWarrior project is included that builds the DOMPrint sample. This may
  			be used as an example from which to build additional sample projects. Please
  			read the following important notes:
  			</p>
  			
  			<ul>
  				<li>Once again, it is required that you import the .xml version of the project
  				file, and save it back out.
  				</li>
  				
  				<li>The &XercesCName; sample programs are written to assume a command line interface.
  				To avoid making Macintosh-specific changes to these command line programs,
  				we have opted to instead require that you make a small extension to your
  				CodeWarrior runtime that supports such command line programs. Please read
  				and follow the usage notes in XercesSampleSupport/XercesSampleStartupFragment.c.
  				</li>
  			</ul>
  		
  		
  		
  		<p><em>Building &XercesCName; with Project Builder</em></p>
  		
  			<p>Projects are included to build the &XercesCName; library and DOMPrint sample under
  			Apple's Project Builder for Mac OS X. The following notes apply:
  			</p>
  			
  			<ul>
  				<li>Since you are running under Mac OS X, and if you are not also performing
  				CodeWarrior builds, it is not necessary to shorten file names or set the
  				type/creator codes as required for CodeWarrior.
  				</li>
  				
  				<li>The Project Builder project builds XercesLib as the framework
  				Xerces.framework. This framework, however, does not currently include a
  				correct set of public headers. Any referencing code must have an include
  				path directive that points into the &XercesCName; src directory.
  				</li>
  				
  				<li>The DOMPrint project illustrates one such usage of the Xerces.framework.
  				</li>
  			</ul>
  		
  		
  		<p><em>Building &XercesCName; from the Mac OS X command line</em></p>
  		
  			<p>Support for Mac OS X command line builds is now included in the standard
  			"unix" &XercesCName; build infrastructure.
  			</p>
  			
  			<ul>
  				<li>In general, the Mac OS X command line build follows the generic unix
  				build instructions. You need to set your XERCESCROOT environment variable,
  				<code>./runConfigure</code>, and <code>make</code>.
  				</li>
  			</ul>
  		
  <source>setenv XERCESCROOT "&lt;directory&gt;"
  cd src
  ./runConfigure -p macosx -n native
  make</source>
  			
  			<ul>
  				<li>Similar instructions apply to build the samples and tests, though the
  				<code>-n</code> flag is not used in these cases:
  				</li>
  			</ul>
  		
  <source>cd samples
  ./runConfigure -p macosx
  make</source>
  
  		
  		
  		<p><em>Special usage information for &XercesCName; on the Macintosh</em></p>
  		
  			<p><em>File Path Specification</em></p>
  			
  			<p>Apart from the build instructions, above, the most important note
  			about use of &XercesCName; on the Macintosh is that &XercesCName; expects
  			all filename paths to be specified in unix syntax. If running natively
  			under a Mac OS X system, this path will be the standard posix path as
  			expected by the shell. The easiest means of creating and interpreting these
  			paths will be through the routines <code>XMLCreateFullPathFromFSRef</code>
  			and <code>XMLParsePathToFSRef</code> as declared in the file
  			<code>MacOSPlatformUtils.hpp</code>. FSSpec variants of these routines are
  			also supplied.
  			</p>
  			
  			<p><em>Mac OS Version Compatibility</em></p>
  			
  			<p>&XercesCName; requires that several key components of the Mac OS
  			be relatively up to date. It should be readily compatible with any system
  			above Mac OS 9.0. Compatibility with earlier systems may perhaps be achieved
  			if you can install appropriate components.
  			</p>
  			
  			<p>Required components are:
  			</p>
  			
  			<ul>
  				<li>Unicode Converter and Text Encoding Converter. These provide the base
  				transcoding service used to support &XercesCName; transcoding requirements.
  				</li>
  				
  			</ul>
  			
  			<p>Optional components are:
  			</p>
  			
  			<ul>
  				<li>URLAccess. Provides NetAccessor support to &XercesCName; for use in
  				fetching network referenced entities. If URLAccess is not installed, any
  				such references will fail; the absence of URLAccess, however, will not
  				in itself prevent &XercesCName; from running.
  				</li>
  				
  				<li>Multiprocessing library. Provides mutual exclusion support. Once again,
  				the routines will back down gracefully if Multiprocessing support is not
  				available.
  				</li>
  				
  				<li>HFS+ APIs. If HFS+ APIs are available, all file access is performed
  				using the HFS+ fork APIs to support long file access, and to support
  				long unicode compliant file names. In the absence of HFS+ APIs, classic
  				HFS APIs are used instead.
  				</li>
  			</ul>	
  		
      </a>
      </faq>
  </faqs>
  
  
  
  1.1                  xml-site/sources/xerces-c/build-winunix.xml
  
  Index: build-winunix.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  
  <faqs title="Building on Windows and UNIX">
      <faq title="Building &XercesCName; on Windows NT/98">
      <q>Building &XercesCName; on Windows NT/98</q>
      <a>
          <p>&XercesCName; comes with Microsoft Visual C++ projects and workspaces to
          help you build &XercesCName;. The following describes the steps you need
          to build &XercesCName;.</p>
  
          <p><em>Building &XercesCName; library</em></p>
              <p>To build &XercesCName; from it source (using MSVC), you will
              need to open the workspace containing the project. If you are
              building your application, you may want to add the &XercesCName;
              project inside your applications's workspace.</p>
              <p>The workspace containing the &XercesCName; project file and
              all other samples is:</p>
  <source>&XercesCSrcInstallDir;\Projects\Win32\VC6\xerces-all\xerces-all.dsw</source>
              <p>Once you are inside MSVC, you need to build the project marked
              <em>XercesLib</em>.</p>
              <p>If you want to include the &XercesCName; project separately,
              you need to pick up:</p>
  <source>&XercesCSrcInstallDir;\Projects\Win32\VC6\xerces-all\XercesLib\XercesLib.dsp</source>
              <p>You must make sure that you are linking your application with
              the &XercesCWindowsLib;.lib library and also make sure that
              the associated DLL is somewhere in your path.</p>
              <note>If you are working on the AlphaWorks version which uses ICU,
              you must have the ICU data DLL named <code>icudata.dll</code> available from your path
              setting. For finding out where you can
              get ICU from and build it, look at the <jump href="build-misc.html#faq-1">How to Build ICU</jump>.</note>
  
  
          <p><em>Building samples</em></p>
              <p>If you are using the source package, inside the same workspace (xerces-all.dsw), you'll find several other
              projects. These are for the samples. Select all the samples and right click
              on the selection. Then choose "Build (selection only)" to build all the
              samples in one shot.</p>
  
              <p>If you are using the binary package, load the &XercesCInstallDir;-win32\samples\Projects\Win32\VC6\samples.dsw
                Microsoft Visual C++ workspace inside your MSVC IDE. Then select all the samples and right click
                on the selection. Then choose "Build (selection only)" to build all the
                samples in one shot.</p>
  
      </a>
      </faq>
  
      <faq title="Building &XercesCName; on Windows using Visual Age C++">
      <q>Building &XercesCName; on Windows using Visual Age C++</q>
      <a>
          <p>A few unsupported projects are also packaged with &XercesCName;. Due to
          origins of &XercesCName; inside IBM labs, we do have projects for IBM's
          <jump href="http://www-4.ibm.com/software/ad/vacpp/">Visual Age C++ compiler</jump> on Windows.
          The following describes the steps you need to build &XercesCName; using
          Visual Age C++.</p>
  
          <p><em>Building &XercesCName; library</em></p>
              <p><em>Requirements:</em></p>
  
              <ul>
                  <li>VisualAge C++ Version 4.0 with Fixpak 1:
                  <br/>Download the
                  <jump href="http://www-4.ibm.com/software/ad/vacpp/service/csd.html">Fixpak</jump>
                  from the IBM VisualAge C++ Corrective Services web page.</li>
              </ul>
  
              <p>To include the ICU library:</p>
  
              <ul>
                  <li>ICU Build:
                  <br/>You should have the
                  <jump href="http://oss.software.ibm.com/icu/">ICU Library</jump>
                  in the same directory as the &XercesCName; library. For example if
                  &XercesCName; is at the top level of the d drive, put the ICU
                  library at the top level of d e.g. d:/&XercesCInstallDir; d:/icu.</li>
              </ul>
  
              <p><em>Instructions:</em></p>
              <ol>
                  <li>Change the directory to d:\&XercesCInstallDir;\Projects\Win32</li>
                  <li>If a d:\&XercesCInstallDir;\Project\Win32\VACPP40 directory does not exist, create it.</li>
                  <li>Copy the IBM VisualAge project file, <code>XML4C2X.icc</code>,
                      to the VACPP40 directory.</li>
                  <li>From the VisualAge main menu enter the project file name and path.</li>
                  <li>When the build finishes the status bar displays this message: Last Compile
                     completed Successfully with warnings on date.</li>
              </ol>
              <note>These instructions assume that you install in drive d:\.
              Replace d with the appropriate drive letter.</note>
  
      </a>
      </faq>
  
      <faq title="Building &XercesCName; on Windows using Borland C++Builder">
      <q>Building &XercesCName; on Windows using Borland C++Builder</q>
      <a>
          <p>&XercesCName; comes with Borland C++Builder projects to help you
  		build &XercesCName;. The following describes the steps you need to build
  		&XercesCName;.</p>
  
          <p><em>Building &XercesCName; library</em></p>
  		   <p> The library and demo projects are all contained in the Xerces-all project group:
  		   </p>
  
             <ul>
  		       <li> xerces-c-src1_5_1\Projects\Win32\BCB5\Xerces-all\Xerces-all.bpg </li>
      	   </ul>
  
  		   <p> Each project in the group refers a directory belog \Xerces-all.
  		       For example, the XercesLib project files are contained in the directory
             </p>
  
             <ul>
      	       <li> xerces-c-src1_5_1\Projects\Win32\BCB5\Xerces-all\XercesLib </li>
  		   </ul>
  
             <p> To build any project, open the project manager.  Double click on the project
              name.  Then select "Project|Build" from the menu.  For example, double click
              on XercesLib.dll in the manager.  Then select "Project|Build XercesLib" from
              the menu.
  
              Once the library has been built, include XercesLib.lib with in application's
              project and place XercesLib.dll somewhere in your path.
             </p>
  
  
      </a>
      </faq>
  
      <faq title="Building &XercesCName; on UNIX platforms">
      <q>Building &XercesCName; on UNIX platforms</q>
      <a>
          <p>&XercesCName; uses
          <jump href="http://www.gnu.org">GNU</jump> tools like
          <jump href="http://www.gnu.org/software/autoconf/autoconf.html">Autoconf</jump> and
          <jump href="http://www.gnu.org/software/make/make.html">GNU Make</jump>
          to build the system. You must first make sure you
          have these tools installed on your system before proceeding.
          If you don not have required tools, ask your system administrator
          to get them for you. These tools are free under the GNU Public Licence
          and may be obtained from the
          <jump href="http://www.gnu.org">Free Software Foundation</jump>.</p>
  
          <p><em>Do not jump into the build directly before reading this.</em></p>
  
          <p>Spending some time reading the following instructions will save you a
          lot of wasted time and support-related e-mail communication.
          The &XercesCName; build instructions are a little different from
          normal product builds. Specifically, there are some wrapper-scripts
          that have been written to make life easier for you. You are free
          not to use these scripts and use
          <jump href="http://www.gnu.org/software/autoconf/autoconf.html">Autoconf</jump> and
          <jump href="http://www.gnu.org/software/make/make.html">GNU Make</jump>
          directly, but we want to make sure you know what you are by-passing and
          what risks you are taking. So read the following instructions
          carefully before attempting to build it yourself.</p>
  
          <p>Besides having all necessary build tools, you also need to know what
          compilers we have tested &XercesCName; on. The following table lists the
          relevant platforms and compilers.</p>
  
          <table>
              <tr><td><em>Operating System</em></td><td><em>C++, C Compilers</em></td></tr>
              <tr><td>Redhat Linux 6.1</td><td>g++, gcc (egcs)</td></tr>
              <tr><td>AIX 4.3</td><td>xlC_r, xlc_r</td></tr>
              <tr><td>Solaris 2.6</td><td>CC, cc</td></tr>
              <tr><td>HP-UX 11</td><td>aCC, cc</td></tr>
          </table>
  
          <p>If you are not using any of these compilers, you are taking a calculated risk
          by exploring new grounds. Your effort in making &XercesCName; work on this
          new compiler is greatly appreciated and any problems you face can be addressed
          on the <jump href="mailto:&XercesCEmailAddress;">Xerces-C mailing list</jump>.
          </p>
  
          <p><em>Differences between the UNIX platforms:</em> The description below is
          generic, but as every programmer is aware, there are minor differences
          within the various UNIX flavors the world has been bestowed with.
          The one difference that you need to watch out in the discussion below,
          pertains to the system environment variable for finding libraries.
          On <em>Linux and Solaris</em>, the environment variable name is called
          <code>LD_LIBRARY_PATH</code>, on <em>AIX</em> it is <code>LIBPATH</code>,
          while on <em>HP-UX</em> it is <code>SHLIB_PATH</code>. The following
          discussion assumes you are working on Linux, but it is with subtle
          understanding that you know how to interpret it for the other UNIX flavors.</p>
  
          <note>If you wish to build &XercesCName; with ICU,
          look at the <jump href="build-misc.html#faq-1">Building ICU</jump>.
          It tells you where you can get ICU and how to build &XercesCName; with it.</note>
  
          <p><em>Setting build environment variables</em></p>
              <p>Before doing the build, you must first set your environment variables
              to pick-up the compiler and also specify where you extracted &XercesCName;
              on your machine.
              While the first one is probably set for you by the system administrator, just
              make sure you can invoke the compiler. You may do so by typing the
              compiler invocation command without any parameters (e.g. xlc_r, or g++, or cc)
              and check if you get a proper response back.</p>
              <p>Next set your &XercesCName; root path as follows:</p>
  <source>export XERCESCROOT=&lt;full path to &XercesCSrcInstallDir;&gt;</source>
  
              <p>This should be the full path of the directory where you extracted &XercesCName;.</p>
  
  
          <p><em>Building &XercesCName; library</em></p>
              <p>As mentioned earlier, you must be ready with the GNU tools like
              <jump href="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</jump> and
              <jump href="http://www.gnu.org/software/make/make.html">gmake</jump>
              before you attempt the build.</p>
  
              <p>The autoconf tool is required on only one platform and produces
              a set of portable scripts (configure) that you can run on all
              other platforms without actually having the autoconf tool installed
              everywhere. In all probability the autoconf-generated script
              (called <code>configure</code>) is already in your <code>src</code>
              directory. If not, type:</p>
  
  <source>cd $XERCESCROOT/src
  autoconf</source>
  
              <p>This generates a shell-script called <code>configure</code>. It is tempting to run
              this script directly as is normally the case, but wait a minute. If you are
              using the default compilers like
              <jump href="http://www.gnu.org/software/gcc/gcc.html">gcc</jump> and
              <jump href="http://www.gnu.org/software/gcc/gcc.html">g++</jump> you do not have a problem. But
              if you are not on the standard GNU compilers, you need to export a few more
              environment variables before you can invoke configure.</p>
  
              <p>Rather than make you to figure out what strange environment
              variables you need to use, we have provided you with a wrapper
              script that does the job for you. All you need to tell the script
              is what your compiler is, and what options you are going to use
              inside your build, and the script does everything for you. Here
              is what the script takes as input:</p>
  
  <source>
  runConfigure: Helper script to run "configure" for one of the supported platforms
  Usage: runConfigure "options"
         where options may be any of the following:
         -p &lt;platform&gt; (accepts 'aix', 'linux', 'solaris',
              'hp-10', 'hp-11', 'unixware', 'os400', 'irix', 'ptx', 'tru64', 'macosx' )
         -c &lt;C compiler name&gt; (e.g. gcc, cc, xlc_r, icc)
         -x &lt;C++ compiler name&gt; (e.g. g++, CC, xlC_r, icc, c++)
         -d (specifies that you want to build debug version)
         -m &lt;message loader&gt; can be 'inmem', 'icu', 'MsgFile' or 'iconv'
         -n &lt;net accessor&gt; can be 'fileonly', 'libwww', 'socket' or 'native'
         -t &lt;transcoder&gt; can be 'icu', 'Iconv400', 'Iconv390' or 'native'
         -r &lt;thread option&gt; can be 'pthread' or 'dce' (only used on aix, HP-11 and solaris) or 'sproc' (only on IRIX) or 'none'
         -l &lt;extra linker options&gt;
         -z &lt;extra compiler options&gt;
         -P &lt;install-prefix&gt;
         -C &lt;any one extra configure options&gt;
         -h (to get help on the above commands)
  </source>
  
              <note>&XercesCName; can be built as either a standalone library or as a library
              dependent on International Components for Unicode (ICU). For simplicity,
              the following discussion only explains standalone builds.</note>
  
              <p>One of the common ways to build &XercesCName; is as follows:</p>
  
  <source>runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread</source>
  
              <p>The response will be something like this:</p>
  <source>
  Generating makefiles with the following options ...
  Platform: linux
  C Compiler: gcc
  C++ Compiler: g++
  Extra compile options:
  Extra link options:
  Message Loader: inmem
  Net Accessor: socket
  Transcoder: native
  Thread option: pthread
  Extra configure options:
  Debug is OFF
  
  creating cache ./config.cache
  checking for gcc... gcc
  checking whether the C compiler (gcc  -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET ) works... yes
  checking whether the C compiler (gcc  -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET ) is a cross-compiler... no
  checking whether we are using GNU C... yes
  checking whether gcc accepts -g... yes
  checking for c++... g++
  checking whether the C++ compiler (g++  -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET ) works... yes
  checking whether the C++ compiler (g++  -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET ) is a cross-compiler... no
  checking whether we are using GNU C++... yes
  checking whether g++ accepts -g... yes
  checking for a BSD compatible install... /usr/bin/install -c
  checking for autoconf... autoconf
  checking how to run the C preprocessor... gcc -E
  checking for ANSI C header files... yes
  checking for XMLByte... no
  checking host system type... i686-pc-linux-gnu
  updating cache ./config.cache
  creating ./config.status
  creating Makefile
  creating util/Makefile
  creating util/Transcoders/ICU/Makefile
  creating util/Transcoders/Iconv/Makefile
  creating util/Transcoders/Iconv390/Makefile
  creating util/Transcoders/Iconv400/Makefile
  creating util/Transcoders/MacOSUnicodeConverter/Makefile
  creating util/Platforms/Makefile
  creating util/Platforms/Solaris/Makefile
  creating util/Platforms/AIX/Makefile
  creating util/Platforms/Linux/Makefile
  creating util/Platforms/HPUX/Makefile
  creating util/Platforms/OS390/Makefile
  creating util/Platforms/OS400/Makefile
  creating util/Platforms/IRIX/Makefile
  creating util/Platforms/PTX/Makefile
  creating util/Platforms/UnixWare/Makefile
  creating util/Platforms/Tru64/Makefile
  creating util/Platforms/MacOS/Makefile
  creating util/Compilers/Makefile
  creating util/MsgLoaders/InMemory/Makefile
  creating util/MsgLoaders/ICU/Makefile
  creating util/MsgLoaders/MsgCatalog/Makefile
  creating util/MsgLoaders/MsgFile/Makefile
  creating util/NetAccessors/Socket/Makefile
  creating util/NetAccessors/libWWW/Makefile
  creating util/NetAccessors/MacOSURLAccess/Makefile
  creating util/regx/Makefile
  creating validators/Makefile
  creating validators/common/Makefile
  creating validators/datatype/Makefile
  creating validators/DTD/Makefile
  creating validators/schema/Makefile
  creating framework/Makefile
  creating dom/Makefile
  creating idom/Makefile
  creating parsers/Makefile
  creating internal/Makefile
  creating sax/Makefile
  creating sax2/Makefile
  creating ../obj/Makefile
  
  Having build problems? Read instructions at http://xml.apache.org/xerces-c/build.html
  Still cannot resolve it? Find out if someone else had the same problem before.
  Go to http://marc.theaimsgroup.com/?l=xerces-c-dev
  
  In future, you may also directly type the following commands to create the Makefiles.
  
  export TRANSCODER="NATIVE"
  export MESSAGELOADER="INMEM"
  export NETACCESSOR="Socket"
  export THREADS="pthread"
  export CC="gcc"
  export CXX="g++"
  export CXXFLAGS=" -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET"
  export CFLAGS=" -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET"
  export LDFLAGS=""
  export LIBS=" -lpthread "
  configure
  
  If the result of the above commands look OK to you, go to the directory
  /home/build/linux_xml4c/xerces-c-src1_5_2/src and type "gmake" to make the XERCES-C system.</source>
  
  <note>The error message concerning <code>conf.h</code>
  is NOT an indication of a problem. This code has been inserted to make it
  work on AS/400, but it gives this message which appears to be an error. The problem
  will be fixed in future.</note>
  
              <p>So now you see what the wrapper script has actually been doing! It has
              invoked <code>configure</code>
              to create the Makefiles in the individual sub-directories, but in addition
              to that, it has set a few environment variables to correctly configure
              your compiler and compiler flags too.</p>
  
              <p>Now that the Makefiles are all created, you are ready to do the actual build.</p>
  
  <source>gmake</source>
  
              <p>Is that it? Yes, that's all you need to build &XercesCName;.</p>
  
  
          <p><em>Building samples</em></p>
          <p>The installation process for the samples is same on all UNIX
           platforms.
          </p>
  <source>cd &XercesCInstallDir;-linux/samples
  ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  gmake</source>
           <p>This will create the object files in each sample directory
            and the executables in ' &XercesCInstallDir;-linux/bin' directory.</p>
  
           <p>Note that <em>runConfigure</em> is just a helper script and you are free to
            use <em>./configure</em> with the correct parameters to make it work
            on any platform-compiler combination of your choice. The script needs the following parameters:
  
           </p>
  <source>
  Usage: runConfigure "options"
         where options may be any of the following:
         -p &lt;platform&gt; (accepts 'aix', 'unixware', 'linux', 'solaris',
  'hp-10', 'hp-11', 'os400', 'irix', 'ptx', 'tru64', 'macosx')
         -c &lt;C compiler name&gt; (e.g. gcc, xlc or icc)
         -x &lt;C++ compiler name&gt; (e.g. g++, xlC, or icc)
         -d (specifies that you want to build debug version)
         -h (get help on the above commands)
         -z &lt;extra compiler options&gt;
  </source>
  
           <note><em>NOTE:</em>The code samples in this section assume that you are are working on the Linux binary drop.
           If you are using some other UNIX flavor, please replace '-linux' with the appropriate
           platform name in the code samples.</note>
  
           <p>To delete all the generated object files and executables, type:</p>
  <source>gmake clean</source>
  
      </a>
      </faq>
  
      <faq title="Building &XercesCName; as a single-threaded library on Unix platforms">
      <q>Building &XercesCName; as a single-threaded library on Unix platforms</q>
      <a>
           <p>To build a single-threaded library on Unix platforms you have to update
           one or more of the following files <code>Makefile.incl, Makefile.in, runConfigure</code>.
           The following steps guide you to create a single-threaded library for each platform:</p>
  
           <p>For Aix - </p>
           <ul>
           <li>Replace <code>xlc_r</code> and <code>xlC_r</code> libraries with
              <code>xlc</code> and <code>xlC</code> respectively</li>
           <li>Replace <code>makeC++SharedLib_r</code> with <code>makeC++SharedLib</code></li>
           <li>Remove the flag <code>-D_THREAD_SAFE</code></li>
           <li>Remove inclusion of any threaded library directories from the <code>LIBPATH</code></li>
           <li>Remove inclusion of <code>-lpthreads</code> and <code>-lpthread_compat</code></li>
           <li>Add <code>-DAPP_NO_THREADS</code> to define the variable under AIX specific options
                    in <code>Makefile.incl</code></li>
           </ul>
  
          <p>For Solaris -</p>
           <ul>
            <li>Add <code>-DAPP_NO_THREADS</code> to define the variable under SOLARIS
              specific options in <code>Makefile.incl</code></li>
            <li>Remove compiler switch <code>-mt</code></li>
            <li>Remove <code>-D_REENTRANT</code> flag from the 'compile' options</li>
        <li>Remove inclusion of <code>-lpthread</code></li>
      </ul>
  
      <p>For Linux -</p>
          <ul>
           <li>Add <code>-DAPP_NO_THREADS</code> to define the variable under LINUX
              specific options in <code>Makefile.incl</code></li>
       <li>Remove <code>-D_REENTRANT</code> flag from the 'compile' options</li>
       <li>Remove inclusion of <code>-lpthread</code></li>
      </ul>
  
  
      <p>For HPUX -</p>
          <ul>
           <li>Add <code>-DAPP_NO_THREADS</code> to define the variable under HP
              specific options in <code>Makefile.incl</code></li>
       <li>Remove inclusion of <code>-lpthread</code> and <code>-lcma</code></li>
       <li>Remove threading defines like <code>-D_PTHREADS_DRAFT4 ,
          -DXML_USE_DCE</code></li>
      </ul>
     </a>
     </faq>
  
  </faqs>
  
  
  
  1.1                  xml-site/sources/xerces-c/createdoc.xml
  
  Index: createdoc.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 10: CreateDOMDocument">
  
      <s2 title="CreateDOMDocument">
          <p> CreateDOMDocument, illustrates how you can create a DOM tree in
              memory from scratch. It then reports the elements in the tree that
              was just created.</p>
  
          <s3 title="Running CreateDOMDocument">
  
            <p>The CreateDOMDocument sample illustrates how you can create a DOM tree
               in memory from scratch. To run CreateDOMDocument, enter the following</p>
  <source>CreateDOMDocument</source>
            <p>Here is a sample output from CreateDOMDocument</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  CreateDOMDocument
  The tree just created contains: 4 elements.</source>
  
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/domcount.xml
  
  Index: domcount.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 3: DOMCount">
  
      <s2 title="DOMCount">
          <p>DOMCount uses the provided DOM API to parse an XML file,
  		constructs the DOM tree and walks through the tree counting
  		the elements (using just one API call).</p>
  
          <s3 title="Running DOMCount">
  
            <p>The DOMCount sample parses an XML file and prints out a count of the number of
            elements in the file. To run DOMCount, enter the following </p>
  <source>DOMCount &lt;XML file&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      DOMCount [options] &lt;XML file | List file&gt;
  
  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.
  </source>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em>  will not use any validation<br/>
               <em>-v=auto</em>   will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from DOMCount</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  DOMCount -v=always personal.xml
  personal.xml: 20 ms (37 elems)</source>
  
            <note>The time reported by the system may be different, depending on your
            processor type.</note>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/domprint.xml
  
  Index: domprint.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 4: DOMPrint">
  
      <s2 title="DOMPrint">
          <p>DOMPrint parses an XML file, constructs the DOM tree, and walks
  		through the tree printing each element. It thus dumps the XML back
  		(output same as SAXPrint).</p>
  
          <s3 title="Running DOMPrint">
  
            <p>The DOMPrint sample parses an XML file, using either a validating
  		  or non-validating DOM parser configuration, builds a DOM tree,
  		  and then walks the tree and outputs the contents of the nodes
  		  in a 'canonical' format. To run DOMPrint, enter the following:</p>
  <source>DOMPrint &lt;XML file&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>Usage:
      DOMPrint [options] &lt;XML file&gt;
  
  This program invokes the DOM parser, and builds the DOM tree.
  It then traverses the DOM tree and prints the contents of the
  tree for the specified XML file.
  
  Options:
      -e          create entity reference nodes. 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.
      -s          Enable schema processing. Default is off.
      -f          Enable full schema constraint checking. Defaults to 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.
  
    * = 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.
  </source>
            <p><em>-u=fail</em> will fail when unrepresentable characters are encountered<br/>
               <em>-u=rep</em> will replace with the substitution character for that codepage<br/>
               <em>-u=ref</em> will report the character as a reference</p>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em>  will not use any validation<br/>
               <em>-v=auto</em>   will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from DOMPrint</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  DOMPrint -v=always personal.xml
  
  &lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
  
  &lt;!DOCTYPE personnel SYSTEM "personal.dtd"&gt;
  &lt;!-- @version: --&gt;
  &lt;personnel&gt;
  
  &lt;person id="Big.Boss"&gt;
    &lt;name&gt;&lt;family&gt;Boss&lt;/family&gt; &lt;given&gt;Big&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;chief@foo.com&lt;/email&gt;
    &lt;link subordinates="one.worker two.worker three.worker
                           four.worker five.worker"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="one.worker"&gt;
    &lt;name&gt;&lt;family>Worker&lt;/family&gt; &lt;given&gt;One&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;one@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="two.worker"&gt;
    &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Two&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;two@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="three.worker"&gt;
    &lt;name&gt;&lt;family>Worker&lt;/family&gt; &lt;given&gt;Three&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;three@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="four.worker"&gt;
    &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Four&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;four@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="five.worker"&gt;
    &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Five&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;five@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;/personnel&gt;</source>
            <p>Note that DOMPrint does not reproduce the original XML file. DOMPrint and
             SAXPrint produce different results because of the way the two APIs store data
             and capture events.</p>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/enumval.xml
  
  Index: enumval.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 9: EnumVal">
  
      <s2 title="EnumVal">
          <p>EnumVal shows how to enumerate the markup decls in a DTD Grammar.</p>
  
          <s3 title="Running EnumVal">
            <p>This program parses the specified XML file, then shows how to
              enumerate the contents of the DTD Grammar.</p>
  <source>
  Usage:
      EnumVal &lt;XML file&gt;
  
  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.
  </source>
            <p>Here is a sample output from EnumVal</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  EnumVal personal.xml
  
  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:subordinates, Type: IDREF(S)
      Name:manager, Type: IDREF(S)
  
    Name: family
    Content Model: (#PCDATA)*
  
    Name: given
    Content Model: (#PCDATA)*</source>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/idomcount.xml
  
  Index: idomcount.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 13: IDOMCount">
  
      <s2 title="IDOMCount">
          <p>IDOMCount uses the provided IDOM API to parse an XML file,
  		constructs the DOM tree and walks through the tree counting
  		the elements (using just one API call).</p>
  
          <s3 title="Running IDOMCount">
  
            <p>The IDOMCount sample parses an XML file and prints out a count of the number of
            elements in the file. To run IDOMCount, enter the following </p>
  <source>IDOMCount &lt;XML file&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      IDOMCount [options] &lt;XML file | List file&gt;
  
  This program invokes the IDOM 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.
  </source>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em>  will not use any validation<br/>
               <em>-v=auto</em>   will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from IDOMCount</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  IDOMCount -v=always personal.xml
  personal.xml: 20 ms (37 elems)</source>
  
            <note>The time reported by the system may be different, depending on your
            processor type.</note>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/idomprint.xml
  
  Index: idomprint.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 14: IDOMPrint">
  
      <s2 title="IDOMPrint">
          <p>IDOMPrint parses an XML file, constructs the DOM tree, and walks
  		through the tree printing each element. It thus dumps the XML back
  		(output same as SAXPrint).</p>
  
          <s3 title="Running IDOMPrint">
  
            <p>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:</p>
  <source>IDOMPrint &lt;XML file&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      IDOMPrint [options] &lt;XML file&gt;
  
  This program invokes the IDOM parser, and builds the DOM tree.
  It then traverses the DOM tree and prints the contents of the
  tree for the specified XML file.
  
  Options:
      -e          create entity reference nodes. 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.
      -s          Enable schema processing. Default is off.
      -f          Enable full schema constraint checking. Defaults 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.
  
    * = 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.
  </source>
            <p><em>-u=fail</em> will fail when unrepresentable characters are encountered<br/>
               <em>-u=rep</em> will replace with the substitution character for that codepage<br/>
               <em>-u=ref</em> will report the character as a reference</p>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em>  will not use any validation<br/>
               <em>-v=auto</em>   will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from IDOMPrint</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  IDOMPrint -v=always personal.xml
  
  &lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
  
  &lt;!DOCTYPE personnel SYSTEM "personal.dtd"&gt;
  &lt;!-- @version: --&gt;
  &lt;personnel&gt;
  
  &lt;person id="Big.Boss"&gt;
    &lt;name&gt;&lt;family&gt;Boss&lt;/family&gt; &lt;given&gt;Big&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;chief@foo.com&lt;/email&gt;
    &lt;link subordinates="one.worker two.worker three.worker
                           four.worker five.worker"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="one.worker"&gt;
    &lt;name&gt;&lt;family>Worker&lt;/family&gt; &lt;given&gt;One&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;one@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="two.worker"&gt;
    &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Two&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;two@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="three.worker"&gt;
    &lt;name&gt;&lt;family>Worker&lt;/family&gt; &lt;given&gt;Three&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;three@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="four.worker"&gt;
    &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Four&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;four@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;person id="five.worker"&gt;
    &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Five&lt;/given&gt;&lt;/name&gt;
    &lt;email&gt;five@foo.com&lt;/email&gt;
    &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
  &lt;/person&gt;
  
  &lt;/personnel&gt;</source>
            <p>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.</p>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/memparse.xml
  
  Index: memparse.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 5: MemParse">
  
      <s2 title="MemParse">
          <p>MemParse uses the Validating SAX Parser to parse a memory buffer containing
                    XML statements, and reports the number of elements and attributes found.</p>
  
          <s3 title="Running MemParse">
  
            <p>This program uses the SAX Parser to parse a memory buffer
               containing XML statements, and reports the number of elements and attributes
               found. </p>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      MemParse [options]
  
  This program uses the SAX Parser to parse a memory buffer
  containing XML statements, and reports the number of
  elements and attributes found.
  
  Options:
      -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.
  </source>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em>  will not use any validation<br/>
               <em>-v=auto</em>   will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from MemParse</p>
  
  <source>cd &XercesCInstallDir;-linux/samples/data
  MemParse -v=always</source>
            <p>The output is the following:</p>
  <source>Finished parsing the memory buffer containing the following XML statements:
  
  &lt;?xml version='1.0' encoding='ascii'?&gt;
  &lt;!DOCTYPE company [
  &lt;!ELEMENT company     (product,category,developedAt)&gt;
  &lt;!ELEMENT product     (#PCDATA)&gt;
  &lt;!ELEMENT category    (#PCDATA)&gt;
  &lt;!ATTLIST category idea CDATA #IMPLIED&gt;
  &lt;!ELEMENT developedAt (#PCDATA)&gt;
  ]&gt;
  
  &lt;company&gt;
    &lt;product&gt;XML4C&lt;/product&gt;
    &lt;category idea='great'&gt;XML Parsing Tools&lt;/category&gt;
    &lt;developedAt&gt;
      IBM Center for Java Technology, Silicon Valley, Cupertino, CA
    &lt;/developedAt&gt;
  &lt;/company&gt;
  
  Parsing took 10 ms (4 elements, 1 attributes, 16 spaces, 95 characters).</source>
            <p>Running MemParse with the validating parser gives a different result because
            ignorable white-space is counted separately from regular characters.</p>
  <source>
  MemParse -v=never</source>
            <p>The output is the following:</p>
  <source>Finished parsing the memory buffer containing the following XML statements:
  
  &lt;?xml version='1.0' encoding='ascii'?&gt;
  &lt;!DOCTYPE company [
  &lt;!ELEMENT company     (product,category,developedAt)&gt;
  &lt;!ELEMENT product     (#PCDATA)&gt;
  &lt;!ELEMENT category    (#PCDATA)&gt;
  &lt;!ATTLIST category idea CDATA #IMPLIED&gt;
  &lt;!ELEMENT developedAt (#PCDATA)&gt;
  ]&gt;
  
  &lt;company&gt;
    &lt;product&gt;XML4C&lt;/product&gt;
    &lt;category idea='great'&gt;XML Parsing Tools&lt;/category&gt;
    &lt;developedAt&gt;
      IBM Center for Java Technology, Silicon Valley, Cupertino, CA
    &lt;/developedAt&gt;
  &lt;/company&gt;
  
  Parsing took 10 ms (4 elements, 1 attributes, 0 spaces, 111 characters).</source>
            <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  
            <note>The time reported by the system may be different, depending on your
            processor type.</note>
  
          </s3>
      </s2>
  
  
  
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/migration_archive.xml
  
  Index: migration_archive.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Migration Archive">
      <s2 title="Migrating from &XercesCName; &XercesCVersion140; to &XercesCName; &XercesCVersion152;">
        <p>The following section is a discussion of the technical differences between
        &XercesCName; &XercesCVersion140; code base and the &XercesCName; &XercesCVersion152; code base.</p>
  
        <p>Topics discussed are:</p>
        <ul>
          <li><link anchor="GenImprovements2">General Improvements</link></li>
          <ul>
              <li><link anchor="Compliance2">Compliance</link></li>
              <li><link anchor="BugFixes2">Bug Fixes</link></li>
              <li><link anchor="Speed2">Speed</link></li>
          </ul>
          <li><link anchor="Changes2">Changes required to migrate to &XercesCName; &XercesCVersion152;</link></li>
          <ul>
              <li><link anchor="Reorganization2">Validator directory Reorganization</link></li>
              <li><link anchor="DTDValidator2">DTDValidator</link></li>
          </ul>
          <li><link anchor="NewFeatures2">New features in &XercesCName; &XercesCVersion152;</link></li>
          <ul>
              <li><link anchor="Schema2">Schema Subset Support</link></li>
              <li><link anchor="IDOM2">Experiemental IDOM</link></li>
          </ul>
        </ul>
      </s2>
  
      <anchor name="GenImprovements2"/>
      <s2 title="General Improvements">
  
          <p>The new version is improved in many ways. Some general improvements
          are: significantly better conformance to the XML spec, cleaner
          internal architecture, many bug fixes, and faster speed.</p>
  
          <anchor name="Compliance2"/>
          <s3 title="Compliance">
              <p>Except for a couple of the very obscure (mostly related to
              the 'standalone' mode), this version should be quite compliant
              to <jump href="http://www.w3.org/TR/REC-xml">XML 1.0</jump>. It also
              tracks the latest changes to DOM, SAX and Namespace Specification.
              We have more than a thousand tests, some collected from various
              public sources and some IBM generated, which are used to do
              regression testing. The C++ parser is now passing all but a
              handful of them.</p>
          </s3>
  
          <anchor name="BugFixes2"/>
          <s3 title="Bug Fixes">
              <p>This version has many bug fixes since last release.
              Some of these were reported by users and some were brought up by
              way of the conformance testing.</p>
          </s3>
  
          <anchor name="Speed2"/>
          <s3 title="Speed">
              <p>Much work was done to speed up this version. Some of the
              new features, such as experiemental IDOM ended
              up eating up some of these gains, but overall the new version
              is significantly faster than previous versions, even while doing
              more.</p>
          </s3>
      </s2>
  
  
      <anchor name="Changes2"/>
      <s2 title="Changes required to migrate to &XercesCName; &XercesCVersion152;">
  
          <p>There are some architectural changes between the &XercesCName;
             &XercesCVersion140; and the &XercesCName; &XercesCVersion152; releases
             of the parser, and as a result, some code has undergone restructuring
             as shown below. </p>
  
          <anchor name="Reorganization2"/>
          <s3 title="Validator directory Reorganization">
              <ul>
                <li>common content model files such as DFAContentModel ...
                    are moved to a new directory called src/validators/common</li>
                <li>DTD related files are moved to a new directory called src/validators/DTD</li>
                <li>new directory src/validators/Datatype is created to store all datatype validators</li>
                <li>new directory src/validators/schema is created to store Schema related files</li>
              </ul>
          </s3>
  
          <anchor name="DTDValidator2"/>
          <s3 title="DTDValidator">
              <p> DTDValidator was design to scan, validate and store the DTD in &XercesCName; &XercesCVersion140;
                  or earlier. In &XercesCName; &XercesCVersion152;, this process is broken down into three components:
              </p>
              <ul>
                <li>new class DTDScanner - to scan the DTD</li>
                <li>new class DTDGrammar - to store the DTD Grammar</li>
                <li>DTDValidator - to validate the DTD only</li>
              </ul>
          </s3>
  
      </s2>
  
      <anchor name="NewFeatures2"/>
      <s2 title="New features in &XercesCName; &XercesCVersion152;">
          <p>Schema subset support and an experimental IDOM are available
             in this release.
          </p>
          <anchor name="Schema2"/>
          <s3 title="Schema Subset Support">
              <ul>
                <li>New function "setDoSchema" is added to DOM/SAX parser.</li>
                <li>New feature "http://apache.org/xml/features/validation/schema" is recognized by SAX2XMLReader.</li>
                <li>New classes such as SchemaValidator, TraverseSchema ... are added.</li>
                <li>The Scanner is enhanced to process schema.</li>
                <li>New sample data files personal-schema.xml and personal.xsd.</li>
                <li>New command line option "-s" for samples.</li>
              </ul>
              <p>
                 See <jump href="schema.html">the Schema page</jump> for details.
              </p>
          </s3>
  
          <anchor name="IDOM2"/>
          <s3 title="Experiemental IDOM">
             <p>The experimental IDOM API is a new design of the C++ DOM API. If you would like
                to migrate from DOM to the experimental IDOM, please refer to
                <jump href="program.html#IDOMProgGuide">
                IDOM programming guide.</jump> Please note that this experimental IDOM API is only
                a prototype and is subject to change.
             </p>
          </s3>
  
      </s2>
  
      <s2 title="Migrating from XML4C 2.x to &XercesCName; &XercesCVersion140;">
         <p>The following section is a discussion of the technical differences between
         XML4C 2.x code base and the new &XercesCName; &XercesCVersion140; code base.</p>
  
         <p>Topics discussed are:</p>
         <ul>
          <li><link anchor="GenImprovements">General Improvements</link></li>
          <ul>
              <li><link anchor="Compliance">Compliance</link></li>
              <li><link anchor="BugFixes">Bug Fixes</link></li>
              <li><link anchor="Speed">Speed</link></li>
          </ul>
          <li><link anchor="Summary">Summary of changes required to migrate from XML4C 2.x to &XercesCName; &XercesCVersion140;</link></li>
          <li><link anchor="Samples">The Samples</link></li>
          <li><link anchor="ParserClasses">Parser Classes</link></li>
          <li><link anchor="DOMLevel2">DOM Level 2 support</link></li>
          <li><link anchor="Progressive">Progressive Parsing</link></li>
          <li><link anchor="Namespace">Namespace support</link></li>
          <li><link anchor="MovedToSrcFramework">Moved Classes to src/framework</link></li>
          <li><link anchor="LoadableMessageText">Loadable Message Text</link></li>
          <li><link anchor="PluggableValidators">Pluggable Validators</link></li>
          <li><link anchor="PluggableTranscoders">Pluggable Transcoders</link></li>
          <li><link anchor="UtilReorg">Util directory Reorganization</link></li>
          <ul>
              <li><link anchor="UtilPlatform">util - The platform independent utility stuff</link></li>
          </ul>
         </ul>
      </s2>
  
  
      <anchor name="GenImprovements"/>
      <s2 title="General Improvements">
  
          <p>The new version is improved in many ways. Some general improvements
          are: significantly better conformance to the XML spec, cleaner
          internal architecture, many bug fixes, and faster speed.</p>
  
          <anchor name="Compliance"/>
          <s3 title="Compliance">
              <p>Except for a couple of the very obscure (mostly related to
              the 'standalone' mode), this version should be quite compliant.
              We have more than a thousand tests, some collected from various
              public sources and some IBM generated, which are used to do
              regression testing. The C++ parser is now passing all but a
              handful of them.</p>
          </s3>
  
          <anchor name="BugFixes"/>
          <s3 title="Bug Fixes">
              <p>This version has many bug fixes with regard to XML4C version 2.x.
              Some of these were reported by users and some were brought up by
              way of the conformance testing.</p>
          </s3>
  
          <anchor name="Speed"/>
          <s3 title="Speed">
              <p>Much work was done to speed up this version. Some of the
              new features, such as namespaces, and conformance checks ended
              up eating up some of these gains, but overall the new version
              is significantly faster than previous versions, even while doing
              more.</p>
          </s3>
      </s2>
  
  
      <anchor name="Summary"/>
      <s2 title="Summary of changes required to migrate from XML4C 2.x to &XercesCName; &XercesCVersion140;">
  
          <p>As mentioned, there are some major architectural changes
          between the 2.3.x and &XercesCName; &XercesCVersion140; releases
          of the parser, and as a result the code has undergone
          significant restructuring. The list below mentions the public
          api's which existed in 2.3.x and no longer exist in
          &XercesCName; &XercesCVersion140;. It also mentions the
          &XercesCName; &XercesCVersion140; api which will give you the
          same functionality.  Note: This list is not exhaustive. The
          API docs (and ultimately the header files) supplement this
          information.</p>
  
          <ul>
  
              <li><code>parsers/[Non]Validating[DOM/SAX]parser.hpp</code><br/>
              These files/classes have all been consolidated in the new
              version to just two files/classes:
              <code>[DOM/SAX]Parser.hpp</code>.  Validation is now a
              property which may be set before invoking the
              <code>parse</code>. Now, the
              <code>setDoValidation()</code> method controls the
              validation processing.</li>
  
              <li>The <code>framework/XMLDocumentTypeHandler.hpp</code>
              been replaced with
              <code>validators/DTD/DocTypeHandler.hpp</code>.</li>
  
              <li>The following methods now have different set of
              parameters because the underlying base class methods have
              changed in the 3.x release. These methods belong to one of
              <code>XMLDocumentHandler</code>,
              <code>XMLErrorReporter</code> or
              <code>DocTypeHandler</code> interfaces.</li>
              <ul>
                  <li><code>[Non]Validating[DOM/SAX]Parser::docComment</code></li>
                  <li><code>[Non]Validating[DOM/SAX]Parser::doctypePI</code></li>
                  <li><code>[Non]ValidatingSAXParser::elementDecl</code></li>
                  <li><code>[Non]ValidatingSAXParser::endAttList</code></li>
                  <li><code>[Non]ValidatingSAXParser::entityDecl</code></li>
                  <li><code>[Non]ValidatingSAXParser::notationDecl</code></li>
                  <li><code>[Non]ValidatingSAXParser::startAttList</code></li>
                  <li><code>[Non]ValidatingSAXParser::TextDecl</code></li>
                  <li><code>[Non]ValidatingSAXParser::docComment</code></li>
                  <li><code>[Non]ValidatingSAXParser::docPI</code></li>
                  <li><code>[Non]Validating[DOM/SAX]Parser::endElement</code></li>
                  <li><code>[Non]Validating[DOM/SAX]Parser::startElement</code></li>
                  <li><code>[Non]Validating[DOM/SAX]Parser::XMLDecl</code></li>
                  <li><code>[Non]Validating[DOM/SAX]Parser::error</code></li>
              </ul>
  
              <li>The following methods/data members changed visibility
              from <code>protected</code> in 2.3.x to
              <code>private</code> (with public setters and getters, as
              appropriate).</li>
  
              <ul>
                  <li><code>[Non]ValidatingDOMParser::fDocument</code></li>
                  <li><code>[Non]ValidatingDOMParser::fCurrentParent</code></li>
                  <li><code>[Non]ValidatingDOMParser::fCurrentNode</code></li>
                  <li><code>[Non]ValidatingDOMParser::fNodeStack</code></li>
              </ul>
  
  
              <li>The following files have moved, possibly requiring
              changes in the <code>#include</code> statements.</li>
  
              <ul>
                  <li><code>MemBufInputSource.hpp</code></li>
                  <li><code>StdInInputSource.hpp</code></li>
                  <li><code>URLInputSource.hpp</code></li>
              </ul>
  
  
              <li>All the DTD validator code was moved from
              <code>internal</code> to separate
              <code>validators/DTD</code> directory.</li>
  
              <li>The error code definitions which were earlier in
              <code>internal/ErrorCodes.hpp</code> are now splitup into
              the following files:</li>
  
              <ul>
                  <li><code>framework/XMLErrorCodes.hpp   </code> - Core XML errors</li>
                  <li><code>framework/XMLValidityCodes.hpp</code> - DTD validity errors</li>
                  <li><code>util/XMLExceptMsgs.hpp        </code> - C++ specific exception codes.</li>
              </ul>
          </ul>
  
      </s2>
  
  
  
      <anchor name="Samples"/>
      <s2 title="The Samples">
  
          <p>The sample programs no longer use any of the unsupported
          util/xxx classes. They only existed to allow us to write
          portable samples. But, since we feel that the wide character
          APIs are supported on a lot of platforms these days, it was
          decided to go ahead and just write the samples in terms of
          these. If your system does not support these APIs, you will
          not be able to build and run the samples. On some platforms,
          these APIs might perhaps be optional packages or require
          runtime updates or some such action.</p>
  
          <p>More samples have been added as well. These highlight some
          of the new functionality introduced in the new code base. And
          the existing ones have been cleaned up as well.</p>
  
          <p>The new samples are:</p>
          <ol>
             <li>PParse - Demonstrates 'progressive parse' (see below)</li>
             <li>StdInParse - Demonstrates use of the standard in input source</li>
             <li>EnumVal - Shows how to enumerate the markup decls in a DTD Validator</li>
          </ol>
      </s2>
  
  
      <anchor name="ParserClasses"/>
      <s2 title="Parser Classes">
  
          <p>In the XML4C 2.x code base, there were the following parser
          classes (in the src/parsers/ source directory):
          NonValidatingSAXParser, ValidatingSAXParser,
          NonValidatingDOMParser, ValidatingDOMParser.  The
          non-validating ones were the base classes and the validating
          ones just derived from them and turned on the validation.
          This was deemed a little bit overblown, considering the tiny
          amount of code required to turn on validation and the fact
          that it makes people use a pointer to the parser in most cases
          (if they needed to support either validating or non-validating
          versions.)</p>
  
          <p>The new code base just has SAXParer and DOMParser
          classes. These are capable of handling both validating and
          non-validating modes, according to the state of a flag that
          you can set on them. For instance, here is a code snippet that
          shows this in action.</p>
  
  <source>void ParseThis(const  XMLCh* const fileToParse,
                 const bool validate)
  {
    //
    // Create a SAXParser. It can now just be
    // created by value on the stack if we want
    // to parse something within this scope.
    //
    SAXParser myParser;
  
    // Tell it whether to validate or not
    myParser.setDoValidation(validate);
  
    // Parse and catch exceptions...
    try
    {
      myParser.parse(fileToParse);
    }
      ...
  };</source>
  
          <p>We feel that this is a simpler architecture, and that it makes things
          easier for you. In the above example, for instance, the parser will be
          cleaned up for you automatically upon exit since you don't have to
          allocate it anymore.</p>
  
      </s2>
  
  
      <anchor name="DOMLevel2"/>
      <s2 title="DOM Level 2 support">
  
          <p>Experimental early support for some parts of the DOM level
          2 specification have been added. These address some of the
          shortcomings in our DOM implementation,
          such as a simple, standard mechanism for tree traversal.</p>
  
      </s2>
  
  
      <anchor name="Progressive"/>
      <s2 title="Progressive Parsing">
  
          <p>The new parser classes support, in addition to the
          <ref>parse()</ref> method, two new parsing methods,
          <ref>parseFirst()</ref> and <ref>parseNext()</ref>.  These are
          designed to support 'progressive parsing', so that you don't
          have to depend upon throwing an exception to terminate the
          parsing operation. Calling parseFirst() will cause the DTD (or
          in the future, Schema) to be parsed (both internal and
          external subsets) and any pre-content, i.e. everything up to
          but not including the root element. Subsequent calls to
          parseNext() will cause one more pieces of markup to be parsed,
          and spit out from the core scanning code to the parser (and
          hence either on to you if using SAX or into the DOM tree if
          using DOM.) You can quit the parse any time by just not
          calling parseNext() anymore and breaking out of the loop. When
          you call parseNext() and the end of the root element is the
          next piece of markup, the parser will continue on to the end
          of the file and return false, to let you know that the parse
          is done. So a typical progressive parse loop will look like
          this:</p>
  
  <source>// Create a progressive scan token
  XMLPScanToken token;
  
  if (!parser.parseFirst(xmlFile, token))
  {
    cerr &lt;&lt; "scanFirst() failed\n" &lt;&lt; endl;
    return 1;
  }
  
  //
  // We started ok, so lets call scanNext()
  // until we find what we want or hit the end.
  //
  bool gotMore = true;
  while (gotMore &amp;&amp; !handler.getDone())
    gotMore = parser.parseNext(token);</source>
  
          <p>In this case, our event handler object (named 'handler'
          surprisingly enough) is watching form some criteria and will
          return a status from its getDone() method. Since the handler
          sees the SAX events coming out of the SAXParser, it can tell
          when it finds what it wants. So we loop until we get no more
          data or our handler indicates that it saw what it wanted to
          see.</p>
  
          <p>When doing non-progressive parses, the parser can easily
          know when the parse is complete and insure that any used
          resources are cleaned up. Even in the case of a fatal parsing
          error, it can clean up all per-parse resources. However, when
          progressive parsing is done, the client code doing the parse
          loop might choose to stop the parse before the end of the
          primary file is reached. In such cases, the parser will not
          know that the parse has ended, so any resources will not be
          reclaimed until the parser is destroyed or another parse is started.</p>
  
          <p>This might not seem like such a bad thing; however, in this case,
          the files and sockets which were opened in order to parse the
          referenced XML entities will remain open. This could cause
          serious problems. Therefore, you should destroy the parser instance
          in such cases, or restart another parse immediately. In a future
          release, a reset method will be provided to do this more cleanly.</p>
  
          <p>Also note that you must create a scan token and pass it
          back in on each call. This insures that things don't get done
          out of sequence. When you call parseFirst() or parse(), any
          previous scan tokens are invalidated and will cause an error
          if used again. This prevents incorrect mixed use of the two
          different parsing schemes or incorrect calls to
          parseNext().</p>
  
      </s2>
  
  
      <anchor name="Namespace"/>
      <s2 title="Namespace support">
  
          <p>The C++ parser now supports namespaces. With current XML
          interfaces (SAX/DOM) this doesn't mean very much because these
          APIs are incapable of passing on the namespace information.
          However, if you are using our internal APIs to write your own
          parsers, you can make use of this new information. Since the
          internal event APIs must be able to now support both namespace
          and non-namespace information, they have more
          parameters. These allow namespace information to be passed
          along.</p>
  
          <p>Most of the samples now have a new command line parameter
          to turn on namespace support. You turn on namespaces like
          this:</p>
  
  <source>SAXParser myParser;
  // Tell it whether to do namespace
  myParser.setDoNamespaces(true);</source>
      </s2>
  
  
  
      <anchor name="MovedToSrcFramework"/>
      <s2 title="Moved Classes to src/framework">
  
          <p>Some of the classes previously in the src/internal/
          directory have been moved to their more correct location in
          the src/framework/ directory. These are classes used by the
          outside world and should have been framework classes to begin
          with. Also, to avoid name classes in the absense of C++ namespace
          support, some of these clashes have been renamed to make them
          more XML specific and less likely to clash. More
          classes might end up being moved to framework as well.</p>
  
          <p>So you might have to change a few include statements to
          find these classes in their new locations. And you might have
          to rename some of the names of the classes, if you used any of
          the ones whose names were changed.</p>
  
      </s2>
  
  
      <anchor name="LoadableMessageText"/>
      <s2 title="Loadable Message Text">
  
          <p>The system now supoprts loadable message text, instead of
          having it hard coded into the program. The current drop still
          just supports English, but it can now support other
          languages. Anyone interested in contributing any translations
          should contact us. This would be an extremely useful
          service.</p>
  
          <p>In order to support the local message loading services, we
          have created a pretty flexible framework for supporting
          loadable text. Firstly, there is now an XML file, in the
          src/NLS/ directory, which contains all of the error messages.
          There is a simple program, in the Tools/NLSXlat/ directory,
          which can spit out that text in various formats. It currently
          supports a simple 'in memory' format (i.e. an array of
          strings), the Win32 resource format, and the message catalog
          format.  The 'in memory' format is intended for very simple
          installations or for use when porting to a new platform (since
          you can use it until you can get your own local message
          loading support done.)</p>
  
          <p>In the src/util/ directory, there is now an XMLMsgLoader
          class.  This is an abstraction from which any number of
          message loading services can be derived. Your platform driver
          file can create whichever type of message loader it wants to
          use on that platform.  We currently have versions for the in
          memory format, the Win32 resource format, and the message
          catalog format. An ICU one is present but not implemented
          yet. Some of the platforms can support multiple message
          loaders, in which case a #define token is used to control
          which one is used. You can set this in your build projects to
          control the message loader type used.</p>
  
          <p>Both the Java and C++ parsers emit the same messages for an XML error
          since they are being taken from the same message file.</p>
  
      </s2>
  
  
      <anchor name="PluggableValidators"/>
      <s2 title="Pluggable Validators">
  
          <p>In a preliminary move to support Schemas, and to make them
          first class citizens just like DTDs, the system has been
          reworked internally to make validators completely pluggable.
          So now the DTD validator code is under the src/validators/DTD/
          directory, with a future Schema validator probably going into
          the src/validators. The core scanner architecture now works
          completely in terms of the framework/XMLValidator abstract
          interface and knows almost nothing about DTDs or Schemas. For
          now, if you don't pass in a validator to the parsers, they
          will just create a DTDValidator. This means that,
          theoretically, you could write your own validator. But we
          would not encourage this for a while, until the semantics of
          the XMLValidator interface are completely worked out and
          proven to handle DTD and Schema cleanly.</p>
  
      </s2>
  
  
      <anchor name="PluggableTranscoders"/>
      <s2 title="Pluggable Transcoders">
  
          <p>Another abstract framework added in the src/util/ directory
          is to support pluggable transcoding services. The
          XMLTransService class is an abtract API that can be derived
          from, to support any desired transcoding
          service. XMLTranscoder is the abstract API for a particular
          instance of a transcoder for a particular encoding. The
          platform driver file decides what specific type of transcoder
          to use, which allows each platform to use its native
          transcoding services, or the ICU service if desired.</p>
  
          <p>Implementations are provided for Win32 native services, ICU
          services, and the <ref>iconv</ref> services available on many
          Unix platforms. The Win32 version only provides native code
          page services, so it can only handle XML code in the intrinsic
          encodings ASCII, UTF-8, UTF-16 (Big/Small Endian), UCS4
          (Big/Small Endian), EBCDIC code pages IBM037 and
          IBM1140 encodings, ISO-8859-1 (aka Latin1) and Windows-1252. The ICU version
          provides all of the encodings that ICU supports. The
          <ref>iconv</ref> version will support the encodings supported
          by the local system. You can use transcoders we provide or
          create your own if you feel ours are insufficient in some way,
          or if your platform requires an implementation that we do not
          provide.</p>
  
      </s2>
  
  
      <anchor name="UtilReorg"/>
      <s2 title="Util directory Reorganization">
  
          <p>The src/util directory was becoming somewhat of a dumping
          ground of platform and compiler stuff. So we reworked that
          directory to better spread things out. The new scheme is:
          </p>
  
          <anchor name="UtilPlatform"/>
          <s3 title="util - The platform independent utility stuff">
              <ul>
                  <li>MsgLoaders - Holds the msg loader implementations</li>
                  <ol>
                      <li>ICU</li>
                      <li>InMemory</li>
                      <li>MsgCatalog</li>
                      <li>Win32</li>
                  </ol>
                  <li>Compilers - All the compiler specific files</li>
                  <li>Transcoders - Holds the transcoder implementations</li>
                  <ol>
                      <li>Iconv</li>
                      <li>ICU</li>
                      <li>Win32</li>
                  </ol>
                  <li>Platforms</li>
                  <ol>
                      <li>AIX</li>
                      <li>HP-UX</li>
                      <li>Linux</li>
                      <li>Solaris</li>
                      <li>....</li>
                      <li>Win32</li>
                  </ol>
              </ul>
          </s3>
  
          <p>This organization makes things much easier to understand.
          And it makes it easier to find which files you need and which
          are optional. Note that only per-platform files have any hard
          coded references to specific message loaders or
          transcoders. So if you don't include the ICU implementations
          of these services, you don't need to link in ICU or use any
          ICU headers. The rest of the system works only in terms of the
          abstraction APIs.</p>
  
      </s2>
  
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/pdf-c.xml
  
  Index: pdf-c.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="PDF Documentation">
  	<s2 title="PDF Documentation">
  	<p>You can get the entire &XercesCName; documentation in PDF format,
  	<jump href="http://xml.apache.org/xerces-c/pdf/xerces-c.pdf">xerces-c.pdf</jump> (or in zipped format
         <jump href="http://xml.apache.org/xerces-c/pdf/xerces-c.pdf.tar.gz">xerces-c.pdf.tar.gz</jump>), for
  	printing and offline reference.</p>
  	<note>A word of caution! The tools to create the PDF documentation are still experimental.
  	So the resulting PDF document is not perfect. We would be glad to receive your comments on
  	the <jump href="mailto:&XercesCEmailAddress;">Xerces-C mailing list</jump>.</note>
  	</s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/pparse.xml
  
  Index: pparse.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 7: PParse">
  
      <s2 title="PParse">
          <p>PParse demonstrates progressive parsing.</p>
          <p>In this example, the programmer doesn't have to depend upon throwing
              an exception to terminate the parsing operation. Calling parseFirst() will
              cause the DTD to be parsed (both internal and external subsets) and any
              pre-content, i.e. everything up to but not including the root element.
              Subsequent calls to parseNext() will cause one more piece of markup to
              be parsed, and spit out from the core scanning code to the parser. You
              can quit the parse any time by just not calling parseNext() anymore
              and breaking out of the loop. When you call parseNext() and the end
              of the root element is the next piece of markup, the parser will
              continue on to the end of the file and return false, to let you
  			know that the parse is done.</p>
  
          <s3 title="Running PParse">
          	<p>PParse parses an XML file and prints out a count of the number of
            elements in the file</p>
  <source>Usage:
      PParse [options] &lt;XML file&gt;
  
  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.
  </source>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em> will not use any validation<br/>
               <em>-v=auto</em> will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from PParse</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  PParse -v=always personal.xml
  personal.xml: 60 ms (37 elems, 12 attrs, 134 spaces, 134 chars)</source>
            <p>Running PParse with the validating parser gives a different result because
            ignorable white-space is counted separately from regular characters.</p>
  <source>PParse -v=never personal.xml
  personal.xml: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)</source>
            <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  
            <note>The time reported by the program may be different depending on your
            machine processor.</note>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/redirect.xml
  
  Index: redirect.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 6: Redirect">
  
      <s2 title="Redirect">
          <p>Redirect uses the SAX EntityResolver handler to redirect the
  		input stream for external entities. It installs an entity
  		resolver, traps the call to the external DTD file and redirects
  		it to another specific file which contains the actual DTD.</p>
  
          <s3 title="Running Redirect">
  
            <p>This program illustrates how a XML application can use the SAX EntityResolver
                     handler to redirect the input stream for external entities. It installs an entity
                     resolver, traps the call to the external DTD file and redirects it to another specific
                     file which contains the actual DTD.</p>
  
                      <p>The program then counts and reports the number of elements and attributes in
                     the given XML file.</p>
  <source>Redirect &lt;XML file&gt;</source>
  
                     <p>Redirect is invoked as follows:</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  Redirect personal.xml</source>
            <p>The output is the following:</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  Redirect personal.xml
  personal.xml: 30 ms (37 elems, 12 attrs, 0 spaces, 268 chars)</source>
  
            <p>External files required to run this sample are 'personal.xml', 'personal.dtd' and
               'redirect.dtd', which are all present in the 'samples/data' directory. Make sure
               that you run redirect in the samples/data directory.</p>
  
               <p>The 'resolveEntity' callback in this sample looks for an external entity with
               system id as 'personal.dtd'. When it is asked to resolve this particular external
               entity, it creates and returns a new InputSource for the file 'redirect.dtd'.</p>
  
               <p>A real-world XML application can similarly do application specific processing
               when encountering external entities. For example, an application might want to
               redirect all references to entities outside of its domain to local cached copies.</p>
  
            <note>The time reported by the program may be different depending on your
            machine processor.</note>
  
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/releases_archive.xml
  
  Index: releases_archive.xml
  ===================================================================
  <?xml version="1.0"  encoding="iso-8859-1" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Releases Archive">
  
  <s2 title="&XercesCName; Version 1.4.0: January 31, 2001">
  
  <table>
      <tr>
          <td >Date</td>
          <td >Contributor</td>
          <td >Description</td>
      </tr>
  
      <tr>
          <td >2001-01-26</td>
          <td >Walker Curtis</td>
          <td >Undefined symbol error when building a single threaded version of the xerces lib on irix.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-25</td>
          <td >Arnaud LeHors</td>
          <td >Added a flag to turn off error checking in the DOM, this is primarily
               used while building the DOM from the parser to get better performance.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-25</td>
          <td >Khaled Noaman</td>
          <td >Let users add their encoding to the intrinsic mapping table.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-25</td>
          <td >Khaled Noaman</td>
          <td >const should be used instead of static const.  And other clean up bug fixes.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-24</td>
          <td >Arnaud LeHors</td>
          <td >Fixed replaceChild to handle the case where a node is replaced
               by itself. Cleaned up insertBefore.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-24</td>
          <td >Tinny Ng</td>
          <td >Guard the use of '-ptr${OUTDIR}' in EnumVal/Makefile.in
          </td>
      </tr>
  
      <tr>
          <td >2001-01-22</td>
          <td >Curt Arnold.</td>
          <td >Loads winsock dynamically.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-19</td>
          <td >Curt Arnold.</td>
          <td >COM various updates: updated the GUID's so both can coexist,
               better error reporting and fixed a new minor bugs.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-18</td>
          <td >Bill Schindler</td>
          <td >FAQ spell check, fix typos, fix grammar, readability editing, clean up formatting,
               re-organize so related topics appear together.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-18</td>
          <td >Bill Schindler</td>
          <td >Project file updated due to removal of ChildAndParentNode.cpp.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-17</td>
          <td >Arnaud LeHors</td>
          <td >DOM Implementation Optimization.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-17</td>
          <td >Volker Krause</td>
          <td >ElementImpl::getAttributeNS should check null pointer.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-17</td>
          <td >Arnaud LeHors</td>
          <td >Have a single counter global to the document.  Removed node basis change counter.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-17</td>
          <td >Arnaud LeHors</td>
          <td >Removed unused field in NodeImpl that was left over.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-17</td>
          <td >Tinny Ng</td>
          <td >Access violations and stack overflows in insertBefore.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-15</td>
          <td >David Bertoni</td>
          <td >Performance Patches.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-12</td>
          <td >Tinny Ng</td>
          <td >Fix style-ibm.zip for documentation generation.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-12</td>
          <td >Tinny Ng</td>
          <td >Remove the two obsolete file: stylesheets\Copy of book2project.xsl and
               stylesheets\Copy of document2html.xsl in style-apachexml.jar
          </td>
      </tr>
  
      <tr>
          <td >2001-01-12</td>
          <td >Tinny Ng</td>
          <td >Documentation Enhancement: explain values of Val_Scheme.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-12</td>
          <td >Tinny Ng</td>
          <td >Documentation Enhancement: Add list of SAX2 feature strings that are supported.
          </td>
      </tr>
  
      <tr>
          <td >2001-01-04</td>
          <td >Khaled Noaman</td>
          <td >Assertion `size > 0' failure when cloning a node if the last attributes
               has been removed.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-28</td>
          <td >James Berry</td>
          <td >Omit include carbon.h in favor of specific include files.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-28</td>
          <td >James Berry</td>
          <td >Add or modify cvs header in various files.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-28</td>
          <td >James Berry</td>
          <td >Eliminate compiler warning in RangeImpl.cpp.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-28</td>
          <td >James Berry</td>
          <td >Replace include of Carbon.h with specific include files.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-28</td>
          <td >James Berry</td>
          <td >Move away from include of Carbon.h; include only needed files instead.
               Fix bug in parsing of upwardly relative paths under classic (thanks to Lawrence You).
          </td>
      </tr>
  
      <tr>
          <td >2000-12-22</td>
          <td >Tinny Ng</td>
          <td >XMLUni::fgEmptyString which is defined as "EMPTY" is incorrectly used as
               an empty string; in fact XMLUni::fgZeroLenString should be used instead.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-22</td>
          <td >Tinny Ng</td>
          <td >Add the new header LexicalHandler.hpp to Makefile.in.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-22</td>
          <td >Murray Cumming</td>
          <td >removes '-instances=static' from the Linux link sections.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-22</td>
          <td >David Bertoni</td>
          <td >SAX2-ext's LexicalHandler support.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-14</td>
          <td >Tinny Ng</td>
          <td >Better instruction for using packageBinaries.pl.  Use symbol XercesCInstallDir
               and XercesCSrcInstallDir instead of hardcoding the Xerces version number in the file.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-14</td>
          <td >Tinny Ng</td>
          <td >Fix API document generation warning: "Warning: end of member group without matching begin".
          </td>
      </tr>
  
      <tr>
          <td >2000-12-14</td>
          <td >Tinny Ng</td>
          <td >Add RangeTest as part of the xerces-all MSVC++ workspace.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-12</td>
          <td >Gareth Reakes</td>
          <td >null pointer bug.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-08</td>
          <td >Tinny Ng</td>
          <td >Entity Reference cleanup dumping core if the last entity reference is deleted.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-06</td>
          <td >Tinny Ng</td>
          <td >fix the link to FAQ.
          </td>
      </tr>
  
      <tr>
          <td >2000-12-06</td>
          <td >Tinny Ng</td>
          <td >further fixes to Range, and update RangeTest.cpp with more test coverage.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-30</td>
          <td >Bill Schindler</td>
          <td >Spell check, fix typos, fix grammar, readability editing, clean up formatting.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-30</td>
          <td >Bill Schindler</td>
          <td >Remove dead code (old StdOut and StdErr functions); minor clean-up.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-30</td>
          <td >Tinny Ng</td>
          <td >patch to fix a number of Range problems.  See mail of 11/21/2000.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-30</td>
          <td >Tinny Ng</td>
          <td >DOM_Text::splitText(), fix off by one error in the test for index too big error.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-30</td>
          <td >Tinny Ng</td>
          <td >reuseValidator - fix bugs (spurious errors) that occured on reuse due to
               pools already containing some items.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-08</td>
          <td >Andrei Smirnov</td>
          <td >Build updates for Solaris 2.8 64 bit.
          </td>
      </tr>
  
      <tr>
          <td >2000/11/07</td>
          <td >Tinny Ng</td>
          <td >Bug fix for DTD entity reference problem reported by Tony Wuebben on 10/25.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-07</td>
          <td >Tinny Ng</td>
          <td >config.guess and config.sub updated to newer versions.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-07</td>
          <td >Pieter Van-Dyck</td>
          <td >Change InterlockedCompareExchange for compatibility with Borland BCB5
          </td>
      </tr>
  
      <tr>
          <td >2000-11-07</td>
          <td >Pieter Van-Dyck</td>
          <td >Fix incorrect version number in gXercesMinVersion.
          </td>
      </tr>
  
      <tr>
          <td >2000-11-01</td>
          <td >Tinny Ng</td>
          <td >SAX bug fix:  Attribute lists were throwing exceptions rather than returning
               null when an attribute could not be found by name.
          </td>
      </tr>
  
     <tr>
          <td >2000-11-01</td>
          <td >Tinny Ng</td>
          <td >Scanner bug fix:  with progessive parsing, namesapce and validation
               options were not being set correctly.  Symptoms included failure to detect
               ignorable white space.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-31</td>
          <td >Tinny Ng</td>
          <td >DOM NodeIterator bug fix: iterators would sometimes continue beyond their
               starting (root) node.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-20</td>
          <td >Andy Heninger</td>
          <td >DOMParser bug fix - erroneous attempt to look up name space URIs
               while scanning default attribute values in DTD removed.  Was a
               crashing bug when namespaces were enabled.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-20</td>
          <td >Andy Heninger</td>
          <td >DOM NodeFilter - define values for FilterAction enum to match those in the
               DOM spec.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-19</td>
          <td >Andy Heninger</td>
          <td >SAXCount sample, allow multiple files on command line.  DOMCount sample, rename
               error handler class to say that it is an error handler.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-18</td>
          <td >James Berry</td>
          <td >MacOS project file updates.  Small code optimization.  Add comments to clarify and
               to reflect new fixed XMLCh size.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-17</td>
          <td >Andy Heninger</td>
          <td >Bug Fix - problems with multi-byte characters on input buffer boundaries.
          </td>
      </tr>
  
     <tr>
          <td >2000-10-17</td>
          <td >Andy Heninger</td>
          <td >DOMPRintFormatTarget, bad override of writeChars fixed (missing const).
               XMLFormatTarget, removed version of writeChars with no length.  Can not be
               safely used, and obscured other errors.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-16</td>
          <td >Andy Heninger</td>
          <td >Change XMLCh back to unsigned short on all platforms
          </td>
      </tr>
  
      <tr>
          <td >2000-10-13</td>
          <td >Devin Barnhart</td>
          <td >COM: interpret BSTR as UTF-16 in documents
          </td>
      </tr>
  
      <tr>
          <td >2000-10-13</td>
          <td >Edward Bortner</td>
          <td >Solaris: change detection for native support for type bool to defined(_BOOL).
          </td>
      </tr>
  
      <tr>
          <td >2000-10-13</td>
          <td >Nadav Aharoni</td>
          <td >MXLString::trim() bug fix: failure to null terminate result.
          </td>
      </tr>
  
       <tr>
          <td >2000-10-10</td>
          <td >Bill Schindler</td>
          <td >XMLFormatter:  Fix problems with output to multi-byte encodings.
          </td>
      </tr>
  
       <tr>
          <td >2000-10-10</td>
          <td >Andy Heninger</td>
          <td >From Janitor, remove the addition that is having compile problems in MSVC.
          </td>
      </tr>
  
        <tr>
          <td >2000-10-10</td>
          <td >James Berry</td>
          <td >Fix a bug in returned length of transcoded string.
               Add a few comments.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-09</td>
          <td >James Berry</td>
          <td >ProjectBuilder project to build Xerces.
          </td>
      </tr>
  
     <tr>
          <td >2000-10-09</td>
          <td >James Berry</td>
          <td >  Numerous Changes:
                - Increase environmental sensitivity with hope of supporting pre OS 9
                  OS versions.
                - Enhanced path creation/interpretation to support proper unix style
                  paths under Mac OS X instead of the volume rooted paths we previously
                  used. Paths under Classic remain the same.
                - Better timer resolution.
                - Detect functionality via unresolved symbols rather than Gestalt
                  where possible.
                - Softly back away from URLAccess...if it's not installed, we just
                  don't support a net accessor.
                - Additional support for XMLCh/UniChar size differences under
                  GCC on Mac OS X.
                    - Fix Mac OS X support. GCC in this environment sets wchar_t to a 32 bit
                      value which requires an additional transcoding stage (bleh...)
                    - Improve sensitivity to environment in order to support a broader
                      range of system versions.
                    - Fix a few compiler sensitivities.
                - Carbon.h header support
          </td>
      </tr>
  
      <tr>
          <td >2000-10-09</td>
          <td >James Berry</td>
          <td >Add some auto_ptr functionality to allow modification of monitored
               pointer value. This eases use of Janitor in some situations.
          </td>
      </tr>
  
      <tr>
          <td >2000-10-09</td>
          <td >James Berry</td>
          <td >Autosense.hpp: modify sensing of Mac OS X.
          </td>
      </tr>
  
      <tr>
          <td >2000-09-28</td>
          <td >Andy Heninger</td>
          <td >DOM_Document::putIdentifier() removed.  There never was an implementation
               for this function.
          </td>
      </tr>
  
      <tr>
          <td >2000-09-28</td>
          <td >Curt Arnold</td>
          <td >COM wrappers updated.
          </td>
      </tr>
  
      <tr>
          <td >2000-09-28</td>
          <td >Linda Swan</td>
          <td >AS400 related changes.
          </td>
      </tr>
  
     <tr>
          <td >2000-09-28</td>
          <td >Andy Heninger</td>
          <td >DOM_Document - remove the un-implemented function putIdentifier()
               from the header.
          </td>
      </tr>
  
      <tr>
          <td >2000-09-28</td>
          <td >Andy Heninger</td>
          <td >DOMParser MemoryLeak fixed.  Occured when a document redefined the
                a builtin entity, e.g. &lt;.
          </td>
      </tr>
  
      <tr>
          <td >2000-09-28</td>
          <td >Andy Heninger</td>
          <td >DOMPrint sample: add deletes before exit so boundschecker runs cleanly.
          </td>
      </tr>
  
  
      <tr>
          <td >2000-09-22</td>
          <td >James Berry</td>
          <td >  Change file access permissions to fsRdPerm. Since we never write, there's
                no reason to request write access. Thanks to John Mostrom @ Adobe.
                Also nuke a few spaces and the entire defunct support for reading
                directly from MacOS resources.
          </td>
      </tr>
  
      <tr>
          <td >2000-09-22</td>
          <td >Arundhari Bhowmick</td>
          <td >DOM Parser:  internal subset entity printing update.
          </td>
      </tr>
  
  
  </table>
  </s2>
  
  <s2 title="&XercesCName; Version 1.3.0: Sept 21, 2000">
  
  <table >
      <tr>
          <td >Date</td>
          <td >Contributor</td>
          <td >Description</td>
      </tr>
      <tr>
          <td >2000-09-21</td>
          <td >Torbj�rn B�ckstr�m</td>
          <td >HPUX - Incorrect use of Array Janitor in Platform Utils removed.</td>
      </tr>
      <tr>
          <td >2000-09-21</td>
          <td >Arundhati Bhowmick</td>
          <td >DOMPrint - DTD internal subset, printing of attribute value enumerations was broken.</td>
      </tr>
      <tr>
          <td >2000/09/19</td>
          <td >Arundhati Bhowmick</td>
          <td >DOMPrint - output entity reference nodes as XML entity references, instead of just printing their children.</td>
      </tr>
      <tr>
          <td >2000-09-19</td>
          <td >Bill Schindler</td>
          <td >OS/2 - port update</td>
      </tr>
      <tr>
          <td >2000-09-18</td>
          <td >Arundhati Bhowmick</td>
          <td >DOM EntityReferences, fixed bugs with length() and hasChildNodes() methods.</td>
      </tr>
      <tr>
          <td >2000-09-12</td>
          <td >Arundhati Bhowmick</td>
          <td >DOM: changed name of expandEntityReferences option to createEntityReferenceNodes.  More accurately describes what
              it does.  Fixed bugs that caused creation of Entity Reference nodes to fail.</td>
      </tr>
      <tr>
          <td >2000-09-12</td>
          <td >IBM</td>
          <td >AS400 - transcoder updates.</td>
      </tr>
      <tr>
          <td >2000-09-11</td>
          <td >Shengkai Qu</td>
          <td >OS390 - makefile updates</td>
      </tr>
      <tr>
          <td >2000-09-11</td>
          <td >Kirk Wylie</td>
          <td >Alpha processor support update in config.sub.</td>
      </tr>
      <tr>
          <td >2000-09-08</td>
          <td >Kirk Wylie</td>
          <td >Reordered member variables in ThrowEOEJanitor.  </td>
      </tr>
      <tr>
          <td >2000-09-08</td>
          <td >Arnaud LeHors</td>
          <td >DOM NamedNodeMap - because in many cases we may have to deal with both nodes with a namespace and nodes without
              any, NS methods through findNamePoint must handle both types of nodes.</td>
      </tr>
      <tr>
          <td >2000-09-08</td>
          <td >Kirk Wylie</td>
          <td >Some destructors not virtual that should have been; some members of DOM_Entity virtual that should not have been.</td>
      </tr>
      <tr>
          <td >2000-09-08</td>
          <td >Andy Heninger</td>
          <td >Removed incorrect detection of nested CDATA sections.  Problem reported by Johannes Lipp.</td>
      </tr>
      <tr>
          <td >2000-09-08</td>
          <td >Andy Heninger</td>
          <td >DOMPrint incorrectly handled DOCTYPE declarations containing both a public and system id.  Problem reported by
              Jesse Pelton.</td>
      </tr>
      <tr>
          <td >2000-09-08</td>
          <td >Radovan Chytracek</td>
          <td >MSVC:  RangeTest project settings incorrect, build failed.</td>
      </tr>
      <tr>
          <td >2000-09-07</td>
          <td >Bob Kline</td>
          <td >XMLReader::skippedString(),  failed under certain rare circumstances.</td>
      </tr>
      <tr>
          <td >2000-09-07</td>
          <td >Andy Heninger</td>
          <td >Fix SAXException assignment operator.  Now non-virtual, and SAXParseException subclass invokes base class operator.</td>
      </tr>
      <tr>
          <td >2000-09-06</td>
          <td >William L. Hopper</td>
          <td >Borland  updates.  It had fallen way behind.</td>
      </tr>
      <tr>
          <td >2000-09-06</td>
          <td >Andy Heninger</td>
          <td >HPUX 11, packageBinaries build script, DCEThreads no longer default</td>
      </tr>
      <tr>
          <td >2000-09-06</td>
          <td >James Berry</td>
          <td >Macintosh:  Add support for new compile time options defined in prefix file.  These control the selection of the
              msgloader, transcoder, and netaccessor.  Add a tiny bit of robustness to the nasty panic method..</td>
      </tr>
      <tr>
          <td >2000-09-06</td>
          <td >Shengkai Qu</td>
          <td >S390: socket related changes</td>
      </tr>
      <tr>
          <td >2000-09-06</td>
          <td >James Berry</td>
          <td >Macintosh: Allow ShortenFiles to work even when destination directory already exists.</td>
      </tr>
      <tr>
          <td >2000-09-06</td>
          <td >Arundhati Bhowmick</td>
          <td >HP compile options modified for ICU compatibility</td>
      </tr>
      <tr>
          <td >2000-09-05</td>
          <td >Michael Crawford</td>
          <td >Macintosh: Fix atomic increment &amp; decrement to return value after operation rather than before.</td>
      </tr>
      <tr>
          <td >2000-09-05</td>
          <td >Andy Heninger</td>
          <td >Cleaned up various compiler warnings.</td>
      </tr>
      <tr>
          <td >2000-09-05</td>
          <td >Andy Heninger</td>
          <td >SAX parser: added advanced callback support for XMLDecl</td>
      </tr>
      <tr>
          <td >2000-09-01</td>
          <td >Andy Heninger</td>
          <td >Fix ICU transcoding service, crashing bug on Linux, Solaris</td>
      </tr>
      <tr>
          <td >2000-08-30</td>
          <td >Andy Heninger</td>
          <td >Builds - clean up a number of compiler warnings.</td>
      </tr>
      <tr>
          <td >2000-08-24</td>
          <td >Andy Heninger</td>
          <td >DOMPrint - fixed crash when input xml file was not found.</td>
      </tr>
      <tr>
          <td >2000-08-23</td>
          <td >Andy Heninger</td>
          <td >Build Script updates and cleanups</td>
      </tr>
      <tr>
          <td >2000-08-18</td>
          <td >Andy Heninger</td>
          <td >Version number bumped to 1.3 in preparation for the upcoming xerces 1.3 / xml4c 3.3 release</td>
      </tr>
      <tr>
          <td >2000-08-17</td>
          <td >Arnaud Lehors</td>
          <td >DOM: Rewrote code updating the linked list on node addition and  removal. I believe it is now easier to read and
              it uses fewer tests so it is also a little faster.</td>
      </tr>
      <tr>
          <td >2000-08-17</td>
          <td >Arnaud Lehors</td>
          <td >DOM: small cleanup: renamed a set of [] boolean flag methods.   yes, I know, I also wish I got them right
              in the first place...</td>
      </tr>
      <tr>
          <td >2000-08-17</td>
          <td >Sumit Chawla</td>
          <td >PTX port updates</td>
      </tr>
      <tr>
          <td >2000-08-16</td>
          <td >Andy Heninger</td>
          <td >Fixed crash when XML text content has very long lines. Bug pointed out by Simon Fell.</td>
      </tr>
      <tr>
          <td >2000-08-14</td>
          <td >Joe Polastre</td>
          <td >SAX2 DefaultHandler, inconsistency in const parameters fixed.</td>
      </tr>
      <tr>
          <td >2000-08-11</td>
          <td >Arundhati Bhowmick</td>
          <td >ICU Transcoding - updates to support ICU 1.6</td>
      </tr>
      <tr>
          <td >2000-08-09</td>
          <td >Arundhati Bhowmick</td>
          <td >DOM Range:  Add const to API where appropriate.</td>
      </tr>
      <tr>
          <td >2000-08-09</td>
          <td >Joe Polastre</td>
          <td >Many conformance and stability changes:<br/>
                 - ContentHandler::resetDocument() removed<br/>
                  - attrs param of ContentHandler::startDocument() made const<br/>
                  - SAXExceptions thrown now have msgs<br/>
                  - removed duplicate function signatures that had 'const'<br/>
                      [ eg: getContentHander() ]<br/>
                  - changed getFeature and getProperty to apply to const objs<br/>
                  - setProperty now takes a void* instead of const void*<br/>
                  - SAX2XMLReaderImpl does not inherit from SAXParser anymore<br/>
                  - Reuse Validator (http://apache.org/xml/features/reuse-validator) implemented<br/>
                  - Features &amp; Properties now read-only during parse</td>
      </tr>
      <tr>
          <td >2000-08-09</td>
          <td >Joe Polastre</td>
          <td >Namespaces bug - bogus default namespace removed.</td>
      </tr>
      <tr>
          <td >2000-08-09</td>
          <td >Joe Polastre</td>
          <td >SAXException enhanced, messages added.</td>
      </tr>
      <tr>
          <td >2000-08-08</td>
          <td >Joe Polastre</td>
          <td >SAX2Count - new sample program for SAX2.</td>
      </tr>
      <tr>
          <td >2000-08-07</td>
          <td >Arundhati Bhowmick</td>
          <td >Remove detach() method from TreeWalker. </td>
      </tr>
      <tr>
          <td >2000-08-03</td>
          <td >James Berry</td>
          <td >Add Mac Codewarrior projects.</td>
      </tr>
      <tr>
          <td >2000-08-01</td>
          <td >Joe Polastre</td>
          <td >SAX2 support added</td>
      </tr>
      <tr>
          <td >2000-08-01</td>
          <td >Gary Gale</td>
          <td >Compaq Tru64 port added.</td>
      </tr>
      <tr>
          <td >2000-07-31</td>
          <td >Joe Polastre</td>
          <td >bug fix in removeAll() to zero out all the pointers.</td>
      </tr>
      <tr>
          <td >2000-07-31</td>
          <td >Andy Heninger</td>
          <td >utf-8 byte order mark recognition</td>
      </tr>
      <tr>
          <td >2000-07-29</td>
          <td >James Berry</td>
          <td >Mac OS Port, general cleanups.</td>
      </tr>
      <tr>
          <td >2000-07-28</td>
          <td >James Berry</td>
          <td >Addition of NetAccessor functionality for MacOS, built on URLAccess library.</td>
      </tr>
      <tr>
          <td >2000-07-28</td>
          <td >Arundhati Bhowmick</td>
          <td >ICU Transcoding service: changes for move to ICU 1.6</td>
      </tr>
      <tr>
          <td >2000-07-27</td>
          <td >Arundhati Bhowmick</td>
          <td >DOM Range added. (Major new feature)</td>
      </tr>
      <tr>
          <td >2000-07-27</td>
          <td >Murray Cumming</td>
          <td >makefile fixes for SUNW_0.7</td>
      </tr>
      <tr>
          <td >2000-07-25</td>
          <td >Arundhati Bhowmick</td>
          <td >XMLCh character constants definitions moved to XMLUniDefs.h. Removes name clashes with application defined symbols.</td>
      </tr>
      <tr>
          <td >2000-07-25</td>
          <td >Joe Polastre</td>
          <td >allow nesting of PlatformUtils::Init() and Terminate()</td>
      </tr>
      <tr>
          <td >2000-07-25</td>
          <td >Gary Gale</td>
          <td >ICU transcoding: fix off by one error.</td>
      </tr>
      <tr>
          <td >2000-07-21</td>
          <td >&lt;check&gt;</td>
          <td >Change wcsupr to _wcsupr</td>
      </tr>
      <tr>
          <td >2000-07-21</td>
          <td >Eric Schroeder</td>
          <td >Win32TransService - fix error in use of hashtables</td>
      </tr>
      <tr>
          <td >2000-07-21</td>
          <td >Joe Polastre</td>
          <td >DOMPrint: fixed error in handling of null CDATA sections.</td>
      </tr>
      <tr>
          <td >2000-07-20</td>
          <td >Andy Heninger</td>
          <td >Improved net access (parse of URLs). Still weak, though.</td>
      </tr>
      <tr>
          <td >2000-07-20</td>
          <td >Erik Schroeder</td>
          <td >XMLScaner.cpp bugfix: call startDocument() at beginning of scan.</td>
      </tr>
      <tr>
          <td >2000-07-20</td>
          <td >Arundhati Bhowmick</td>
          <td >DOMCount exception handling cleaned up.</td>
      </tr>
      <tr>
          <td >2000-07-19</td>
          <td >Todd Collins</td>
          <td >runConfigure: modified to take &quot;configureoptions&quot;</td>
      </tr>
      <tr>
          <td >2000-07-19</td>
          <td >&lt;check&gt;</td>
          <td >Add 'make install' target to src/util/Platforms/Makefile.in</td>
      </tr>
      <tr>
          <td >2000-07-19</td>
          <td >&lt;check&gt;</td>
          <td >DOM: BugFix: DocumentType nodes can not have children.</td>
      </tr>
      <tr>
          <td >2000-07-19</td>
          <td >&lt;check&gt;</td>
          <td >DOM: Bug in NodeIDMap constructor.</td>
      </tr>
      <tr>
          <td >2000-07-18</td>
          <td >Anupam Bagchi</td>
          <td >Documentation generation tools updated.</td>
      </tr>
      <tr>
          <td >2000-07-17</td>
          <td >James Berry</td>
          <td >Mac OS port brought up to date (was very old)</td>
      </tr>
      <tr>
          <td >2000-07-17</td>
          <td >Andy Heninger</td>
          <td >Change windows project to link with ws2_32.lib instead of winsock32.lib</td>
      </tr>
      <tr>
          <td >2000-07-17</td>
          <td >Grace Yan, Joe Kesselman</td>
          <td >DOM NodeIterator: bug fix for SHOW_ELEMENT flag incorrectly being retrieved.</td>
      </tr>
      <tr>
          <td >2000-07-17</td>
          <td >Joe Polastre</td>
          <td >switched scanMisc() with endDoc() in scanNext. Pointed out by Dean Roddey.</td>
      </tr>
      <tr>
          <td >2000-07-17</td>
          <td >Jim Reitz</td>
          <td >fix for uninitialized variable gotData bug in XMLScanner.cpp.</td>
      </tr>
      <tr>
          <td >2000-07-12</td>
          <td >Arundhati Bhowmick</td>
          <td >DOM: fix bug in setting previous sibling pointer during insertNode</td>
      </tr>
      <tr>
          <td >2000-07-07</td>
          <td >Joe Polastre</td>
          <td >Update to use of hashtables.</td>
      </tr>
      <tr>
          <td >2000-07-07</td>
          <td >Joe Polastre</td>
          <td >DOM userdata: several bug fixes.</td>
      </tr>
      <tr>
          <td >2000-07-06</td>
          <td >Andy Heninger</td>
          <td >Speedups in XMLScanner, XMLReader</td>
      </tr>
      <tr>
          <td >2000-07-07</td>
          <td >&lt;check&gt;</td>
          <td >bug fixes in IXMLDOM*</td>
      </tr>
      <tr>
          <td >2000-07-06</td>
          <td >Joe Polastre</td>
          <td >Performance tweaks, added more inlines.</td>
      </tr>
      <tr>
          <td >2000-07-05</td>
          <td >Anupam Bagchi</td>
          <td >Documentation updates.</td>
      </tr>
      <tr>
          <td >2000-07-05</td>
          <td >Joe Polastre</td>
          <td >DOM: Attribute node default value handling implemented.</td>
      </tr>
      <tr>
          <td >2000-07-05</td>
          <td >Joe Polastre</td>
          <td >DOM Attr nodes - fixed setting of specified when cloning. (change may be in error)</td>
      </tr>
      <tr>
          <td >2000-07-04</td>
          <td >Dean Roddey</td>
          <td >Fixed a memory leak when namespaces are enabled.</td>
      </tr>
      <tr>
          <td >2000-06-28</td>
          <td >Curt Arnold</td>
          <td >COM object usage documentation update.</td>
      </tr>
      <tr>
          <td >2000-06-28</td>
          <td >Joe Polastre</td>
          <td >DOM Userdata - put pointers in a hash table rather than having one pre-allocated per node. Memory footprint reduction.</td>
      </tr>
      <tr>
          <td >2000-06-27</td>
          <td >Joe Polastre</td>
          <td >extended the (implementation) hash table classes.</td>
      </tr>
      <tr>
          <td >2000-06-26</td>
          <td >John Roper@iOra.com</td>
          <td >Bug fix: check if initialized in Terminate() to stop access violations.</td>
      </tr>
      <tr>
          <td >2000-06-26</td>
          <td >&lt;check&gt;</td>
          <td >Solaris build - template directory related changes.</td>
      </tr>
  
      </table>
      </s2>
  
      <s2 title="&XercesCName; Version 1.2.0: June 22, 2000">
  
      <table>
      <tr>
          <td >2000/06/22</td>
          <td >&lt;check&gt;</td>
          <td >OS/2 Port updated.</td>
      </tr>
      <tr>
          <td >2000-06-22</td>
          <td >Joe Polastre</td>
          <td >DOM Attr nodes, specified flag not set correctly by parser. Fixed.</td>
      </tr>
      <tr>
          <td >2000-06-20</td>
          <td >Rahul, Joe, Arundhati</td>
          <td >Many doc updates in preparation for release of version 1.2</td>
      </tr>
      <tr>
          <td >2000-06-19</td>
          <td >Rahul Jain</td>
          <td >Update Package Binaries script to build Xerces with ICU.</td>
      </tr>
      <tr>
          <td >2000-06-19</td>
          <td >Joe Polastre</td>
          <td >Added help messages to PParse and StdInParse samples.</td>
      </tr>
      <tr>
          <td >2000-06-19</td>
          <td >Joe Polastre</td>
          <td >Changed &quot;XML4C&quot; to &quot;Xerces-C&quot; in DOMPrint. (Missed in earlier mass name change.)</td>
      </tr>
      <tr>
          <td >2000-06-19</td>
          <td >Arundhati Bhowmick</td>
          <td >Moved version.incl up one directory level.</td>
      </tr>
      <tr>
          <td >2000-06-19</td>
          <td >Curt Arnold</td>
          <td >Improved Windows project file.</td>
      </tr>
      <tr>
          <td >2000-06-16</td>
          <td >John Smirl</td>
          <td >Bug Fix: Document Handler was not called for PIs occurring before the document element. Bug identified by John Smirl
              and Rich Taylor</td>
      </tr>
      <tr>
          <td >2000-06-16</td>
          <td >Rahul Jain</td>
          <td >DOMPrint, SAXPrint: remove extra space in printing PIs.</td>
      </tr>
      <tr>
          <td >2000-06-16</td>
          <td >Rahul Jain</td>
          <td >Windows Debug Build: add 'D' suffix to DLL name in VCPPDefs.hpp</td>
      </tr>
      <tr>
          <td >2000-06-16</td>
          <td >Rahul Jain</td>
          <td >Samples: added -v option (validate always). Needed for testing scripts.</td>
      </tr>
      <tr>
          <td >2000-06-14</td>
          <td >Joe Polastre</td>
          <td >Fixed null ptr failures in DOM NamedNodeMap</td>
      </tr>
      <tr>
          <td >2000-06-12</td>
          <td >Andy Heninger</td>
          <td >Fixed bug in XMLString::trim(), reported by Michele Laghi</td>
      </tr>
      <tr>
          <td >2000-06-07</td>
          <td >Joe Polastre</td>
          <td >DOM: reduced memory usage for elements with no attributes.</td>
      </tr>
      <tr>
          <td >2000-06-01</td>
          <td >Andy Heninger</td>
          <td >DOMString - add const to return type of const XMLCh *DOMString::rawBuffer()</td>
      </tr>
      <tr>
          <td >2000-06-01</td>
          <td >Arundhati Bhowmick</td>
          <td >Fix crash with Solaris optimized build. Modified XMLURL.cpp to dodge compiler code generation error.</td>
      </tr>
      <tr>
          <td >2000-06-01</td>
          <td >Joe Polastre</td>
          <td >Bug fix: DOM Attr Specified flag was incorrectly set when cloning or importing attributes.</td>
      </tr>
      <tr>
          <td >2000-05-31</td>
          <td >Andy Heninger</td>
          <td >MSVC projects modified to produce separate debug and release versions of Xerces lib and dll.</td>
      </tr>
      <tr>
          <td >2000-05-31</td>
          <td >Rahul Jain</td>
          <td >Bug fix: DOMPrint, SAXPrint produced garbage output on Solaris. Solaris library problem.</td>
      </tr>
      <tr>
          <td >2000-05-31</td>
          <td >Joe Polastre</td>
          <td >Fixed incorrect error check for end of file in Win32 platform utils.</td>
      </tr>
      <tr>
          <td >2000-05-31</td>
          <td >Rahul Jain</td>
          <td >DOMPrint enhancements. Add options for specifying character encoding of the output, better control over escaping
              of characters, better handling of CDATA sections. Default validation is now &quot;auto&quot;</td>
      </tr>
      <tr>
          <td >2000-05-22</td>
          <td >Dean Roddey</td>
          <td >XMLFormatter now escapes characters, as reqd., occurring midway in strings. Reported by Hugo Duncan.</td>
      </tr>
      <tr>
          <td >2000-05-22</td>
          <td >Andy Heninger</td>
          <td >Bug fix in implementation of DOM_Document::GetElementById()</td>
      </tr>
      <tr>
          <td >2000-05-18</td>
          <td >Anupam Bagchi</td>
          <td >Documentation, DTD for source xml files moved into xerces-c project, sbk: prefixes removed, xml can now be validated
              locally.</td>
      </tr>
      <tr>
          <td >2000-05-15</td>
          <td >Dean</td>
          <td >Fixed 'fatal error' when 'reusing the validator' problem reported<br/>
              by Rocky Raccoon (rrockey@bigfoot.com). Fix submitted by<br/>
              Dean Roddey (droddey@charmedquark.com).</td>
      </tr>
      <tr>
          <td >2000-05-15</td>
          <td >James Berry</td>
          <td >Changed #include &lt;memory.h&gt; to &lt;string.h&gt; everywhere. &lt;jberry@criticalpath.com&gt;</td>
      </tr>
      <tr>
          <td >2000-05-15</td>
          <td >Andy H.</td>
          <td >DOMTest: removed incorrectly failing entity tests</td>
      </tr>
      <tr>
          <td >2000-05-12</td>
          <td >Andy H.</td>
          <td >Revised implementation of DOMDocument::getElementsById(), removed memory leaks, new test program for it.</td>
      </tr>
      <tr>
          <td >2000-05-12</td>
          <td >Dean</td>
          <td >Bug fix - A PE ref appearing at the start of a skipped conditional section<br/>
              was incorrectly being processed rather than ignored. Fix from Dean Roddey.</td>
      </tr>
      <tr>
          <td >2000-05-11</td>
          <td >Rahul Jain</td>
          <td >Start using the socket based netaccessor by default on most Unix platforms.</td>
      </tr>
      <tr>
          <td >2000-05-11</td>
          <td >Rahul Jain</td>
          <td >Update ICUTransService to work with latest revision of ICU which provides a hard linked data DLL. i.e. icudata.dll
              will be loaded when xerces-c is loaded.</td>
      </tr>
      <tr>
          <td >2000-05-05</td>
          <td >Dean</td>
          <td >Problem with progressive parsing. parseNext() would through an exception when the document contains entities, either
              or external.</td>
      </tr>
      <tr>
          <td >2000-05-11</td>
          <td >Sean MacRoibeaird</td>
          <td >Add missing validity checks for stand-alone documents, character range<br/>
              and Well-formed parsed entities.</td>
      </tr>
      <tr>
          <td >2000-05-10</td>
          <td >Radovan Chytracek</td>
          <td >Fix compilation problems on MSVC 5. &lt;Radovan.Chytracek@cern.ch&gt;</td>
      </tr>
      <tr>
          <td >2000-05-10</td>
          <td >Dean</td>
          <td >Fix XMLReader defect reported by SHOGO SAWAKI</td>
      </tr>
      <tr>
          <td >2000-05-09</td>
          <td >Andy H</td>
          <td >Fix problem with Windows filenames containing '\' in Japanese and Korean encodings.</td>
      </tr>
      <tr>
          <td >2000-05-08</td>
          <td >Andy H</td>
          <td >Memory Cleanup. XMLPlatformUtils::Terminate() deletes all lazily allocated memory</td>
      </tr>
      <tr>
          <td >2000-05-05</td>
          <td >Dean</td>
          <td >Fixed defect in progressive parsing 'parseNext()' reported by Tim Johnston</td>
      </tr>
      <tr>
          <td >2000-05-03</td>
          <td >Tom Jordahl</td>
          <td >Fixed Solaris build problems with static character constants. Tom Jordahl &lt;tomj@allaire.com&gt;</td>
      </tr>
      <tr>
          <td >2000-04-28</td>
          <td >Arnaud LeHors</td>
          <td >Reduced memory usage for DOM Attributes.</td>
      </tr>
      <tr>
          <td >2000-04-28</td>
          <td >boercher@kidata.de</td>
          <td >New runConfigure options -P and -C</td>
      </tr>
      <tr>
          <td >2000-04-27</td>
          <td >Andy H</td>
          <td >Memory leaks in TransService. Joseph Chen &lt;JosephC@plumtree.com&gt;</td>
      </tr>
      <tr>
          <td >2000-04-27</td>
          <td >Arnaud LeHors</td>
          <td >DOM - storage requirements for nodes substantially reduced.</td>
      </tr>
      <tr>
          <td >2000-04-27</td>
          <td >Arundhati</td>
          <td >Added DOM XMLDecl node type; provides access to XML declaration.</td>
      </tr>
      <tr>
          <td >2000-04-20</td>
          <td >Arundhati</td>
          <td >Added DOM access to DTD subset (DOM Level 2 feature)</td>
      </tr>
      <tr>
          <td >2000-04-19</td>
          <td >Anupam Bagchi</td>
          <td >API document generation changed to DOxygen from Doc++</td>
      </tr>
      <tr>
          <td >2000-04-18</td>
          <td >Arundhati</td>
          <td >Full support for DOM_EntityReference, DOM_Entity and DOM_DocumentType introduced</td>
      </tr>
      <tr>
          <td >2000-04-18</td>
          <td >Dean Roddey</td>
          <td >Don't allow spaces before PI target. Bug #42</td>
      </tr>
      <tr>
          <td >2000-04-17</td>
          <td >Anupam Bagchi</td>
          <td >Follow the SMP/E procedures for the OS/390 BATCH install</td>
      </tr>
      <tr>
          <td >2000-04-12</td>
          <td >Dean Roddey</td>
          <td >Auto-validate mode. Validate only when a DTD is present.</td>
      </tr>
      <tr>
          <td >2000-04-11</td>
          <td >Dean Roddey</td>
          <td >If a SAX error handler is installed, then the resetErrors() event handler<br/>
              should call the one on the installed SAX error handler.</td>
      </tr>
      <tr>
          <td >2000-04-10</td>
          <td >Dean Roddey</td>
          <td >Allow an empty DOCTYPE declaration, with just the root name.</td>
      </tr>
      <tr>
          <td >2000-04-06</td>
          <td >Dean Roddey</td>
          <td >Add low level support for transcoding XML output to different character encodings.</td>
      </tr>
      <tr>
          <td >2000-04-06</td>
          <td >Arnaud Lehors</td>
          <td >DOM node memory footprint reduction.</td>
      </tr>
      <tr>
          <td >2000-04-06</td>
          <td >Dean Roddey</td>
          <td >Fixed hanging bug in character transcoding.</td>
      </tr>
      <tr>
          <td >2000-04-05</td>
          <td >Dean Roddey</td>
          <td >Enable installation of DTDHandler on SAX parser.</td>
      </tr>
      <tr>
          <td >2000-04-04</td>
          <td >Anupam Bagchi</td>
          <td >Support for PTX platform</td>
      </tr>
      <tr>
          <td >2000-04-03</td>
          <td >&nbsp;</td>
          <td >IRIX 6.5 port</td>
      </tr>
      <tr>
          <td >2000-03-30</td>
          <td >&nbsp;</td>
          <td >COM wrappers</td>
      </tr>
      <tr>
          <td >2000-03-24</td>
          <td >Jeff Lewis</td>
          <td >DOM_Document::GetElementsByTagId() added.</td>
      </tr>
      <tr>
          <td >2000-03-23</td>
          <td >Chih Hsiang Chou</td>
          <td >DOM: support for identifying &quot;ignorable white space&quot; text nodes.</td>
      </tr>
      <tr>
          <td >2000-03-23</td>
          <td >Rahul Jain</td>
          <td >URL Net Accessor added.</td>
      </tr>
      <tr>
          <td >2000-03-20</td>
          <td >Dean Roddey</td>
          <td >Fix null pointer exception with some bad documents.</td>
      </tr>
      <tr>
          <td >2000-03-17</td>
          <td >Dean Roddey</td>
          <td >Initial support for two-way transcoding.</td>
      </tr>
      <tr>
          <td >2000-03-17</td>
          <td >Dean Roddey</td>
          <td >Intrinsic transcoding table generation utility added.</td>
      </tr>
      <tr>
          <td >2000-03-17</td>
          <td >Anupam Bagchi</td>
          <td >UNIX build: Now generates object files in platform-specific directories</td>
      </tr>
      <tr>
          <td >2000-03-13</td>
          <td >Anupam Bagchi</td>
          <td >Fix GCC build problem: Changed XML_GNUG to XML_GCC</td>
      </tr>
      <tr>
          <td >2000-03-13</td>
          <td >Helmut Eiken</td>
          <td >Fixed #54. Changed self-assignment to now use the parameter value.<br/>
              Reported by Helmut Eiken &lt;H.Eiken@cli.de&gt;</td>
      </tr>
      <tr>
          <td >2000-03-10</td>
          <td >Chih Hsiang Chou</td>
          <td >Fix bug # 19, add const keyword to API. As a result, update test case.</td>
      </tr>
      <tr>
          <td >2000-03-10</td>
          <td >Chih Hsiang Chou</td>
          <td >DOM: &quot;specified&quot; flag of attributes now set correctly.</td>
      </tr>
      <tr>
          <td >2000-03-08</td>
          <td >Dean Roddey</td>
          <td >Some fixes for content models that have multiple, trailing, empty<br/>
              PE refs (for content model extension.)</td>
      </tr>
      <tr>
          <td >2000-03-07</td>
          <td >Dean Roddey</td>
          <td >First cut for additions to Win32 xcode. Based very loosely on a<br/>
              prototype from Eric Ulevik.</td>
      </tr>
      <tr>
          <td >2000-03-03</td>
          <td >Dean Roddey</td>
          <td >Fixed a bug in SimpleContentModel that allowed an &lt;a/&gt; to be taken<br/>
              as valid for a content model of (a,b).</td>
      </tr>
      <tr>
          <td >2000-03-02</td>
          <td >Dean Roddey</td>
          <td >Added a scanReset()/parseReset() method to the scanner and<br/>
              parsers, to allow for reset after early exit from a progressive parse.<br/>
              Added calls to new Terminate() call to all of the samples. Improved<br/>
              documentation in SAX and DOM parsers.</td>
      </tr>
      <tr>
          <td >2000-03-02</td>
          <td >Dean Roddey</td>
          <td >Change &quot;XML4C&quot; to &quot;Xerces&quot; in many places<br/>
              Add a cleanup method to XMLPlatformUtils.<br/>
              Implement the Locator scheme for SAX.<br/>
              Add a -n option to most of the samples, to enable namespaces<br/>
              Fix an error where XMLScanner::parseNext() was falling through on an<br/>
              exception instead of return a failure.<br/>
              Implement the specialized string loading for Win98, since LoadStringW()<br/>
              doesn't work on 98 and makes the loaded error text from the Win32<br/>
              message loader come out junk<br/>
              fix error when two trailing entity references in a content model, like so:<br/>
              &lt;!ELEMENT foo (a|b|c|d|e %one;%two;)*&gt;</td>
      </tr>
  
       </table>
       </s2>
  
       <s2 title="&XercesCName; Version 1.1.0: Feb 28, 2000">
  
       <table>
  
      <tr>
          <td >2000/02/18</td>
          <td >Dean Roddey</td>
          <td >XMLCh defaults to wchar_t on platforms where wchar_t uses Unicode.</td>
      </tr>
      <tr>
          <td >2000-02-18</td>
          <td >Dean Roddey</td>
          <td >Add Windows-1252 as a built in encoding</td>
      </tr>
      <tr>
          <td >2000-02-17</td>
          <td >Dean Roddey</td>
          <td >Fixed an infinite loop caused while trying to trim leading white space from the raw URL during parsing.</td>
      </tr>
      <tr>
          <td >2000-02-17</td>
          <td >Rahul Jain</td>
          <td >Add LibWWW based net accessor</td>
      </tr>
      <tr>
          <td >2000-02-17</td>
          <td >Chih Hsiang Chou</td>
          <td >DOM: NodeIterator, TreeWalker added.</td>
      </tr>
      <tr>
          <td >2000-02-16</td>
          <td >Dean Roddey</td>
          <td >Updates for EBCDIC code page issues.</td>
      </tr>
      <tr>
          <td >2000-02-15</td>
          <td >Chih Hsiang Chou</td>
          <td >DOM: several namespace bugfixes</td>
      </tr>
      <tr>
          <td >2000-02-14</td>
          <td >Dean Roddey</td>
          <td >Disallow EBCDIC documents without an encoding declaration</td>
      </tr>
      <tr>
          <td >2000-02-10</td>
          <td >Bill Schindler</td>
          <td >Fixed defect in compare[N]IString function. Defect and fix reported<br/>
              by Bill Schindler from developer@bitranch.com</td>
      </tr>
      <tr>
          <td >2000-02-10</td>
          <td >Anupam Bagchi</td>
          <td >Sample source code cleaned up.</td>
      </tr>
      <tr>
          <td >2000-02-08</td>
          <td >Dean Roddey</td>
          <td >Fixed bug: xmlns:xxx=&quot;&quot; should affect the mapping of the prefixes of sibling attributes</td>
      </tr>
      <tr>
          <td >2000-02-07</td>
          <td >Dean Roddey</td>
          <td >Don't weave base and relative paths unless relative part is really relative.</td>
      </tr>
      <tr>
          <td >2000-02-03</td>
          <td >Dietrich Wolf</td>
          <td >C++-Builder 4 support</td>
      </tr>
      <tr>
          <td >2000-02-03</td>
          <td >Robert Weir</td>
          <td >DOMString enhancements</td>
      </tr>
      <tr>
          <td >2000-01-31</td>
          <td >Dean Roddey</td>
          <td >Win32 mutex implementation was changed to use critical sections for speed.</td>
      </tr>
      <tr>
          <td >2000-01-28</td>
          <td >Dean Roddey</td>
          <td >The API is not in place to allow client code to make sense of start/end entity<br/>
              ref calls from attribute values. So suppress them for now.</td>
      </tr>
      <tr>
          <td >2000-01-28</td>
          <td >Andy Heninger</td>
          <td >Fix multi-threading problem in DOM.</td>
      </tr>
      <tr>
          <td >2000-01-27</td>
          <td >Dean Roddey</td>
          <td >Fixed bug: If an entity ends on the last &gt; of some markup, then the end of entity<br/>
              won't be sent because the end of entity is not sensed.</td>
      </tr>
      <tr>
          <td >2000-01-24</td>
          <td >Dean Roddey</td>
          <td >Fixes a bogus error about ]]&gt; in char data.</td>
      </tr>
      <tr>
          <td >2000-01-24</td>
          <td >Dean Roddey</td>
          <td >Exposed the APIs to get to the byte offset in the source XML buffer.</td>
      </tr>
      <tr>
          <td >2000-01-21</td>
          <td >Dean Roddey</td>
          <td >Added a check for a broken pipe error on file read.</td>
      </tr>
      <tr>
          <td >2000-01-18</td>
          <td >Dean Roddey</td>
          <td >Update to support new ICU 1.4 release</td>
      </tr>
      <tr>
          <td >2000-01-18</td>
          <td >Dean Roddey</td>
          <td >Remove dependence on old utils standard streams</td>
      </tr>
      <tr>
          <td >2000-01-18</td>
          <td >Rahul Jain</td>
          <td >Added CreateDOMDocument sample.</td>
      </tr>
      <tr>
          <td >2000-01-13</td>
          <td >Dean Roddey</td>
          <td >Added a NetAccessorException for use by implementations of the NetAccessor abstraction, if they need to report
              errors during processing</td>
      </tr>
      <tr>
          <td >2000-01-12</td>
          <td >Dean Roddey</td>
          <td >get the C++ and Java versions of error messages more into sync.</td>
      </tr>
      <tr>
          <td >2000-01-11</td>
          <td >Dean Roddey</td>
          <td >Moved the input source classes from / to framework/.</td>
      </tr>
      <tr>
          <td >2000-01-11</td>
          <td >Dean Roddey</td>
          <td >Changes to deal with multiply nested, relative paths, entities</td>
      </tr>
  </table>
  
  </s2>
  
  
  
      <s2 title="&XercesCName; Version 1.0.1: December 15, 1999">
          <ul>
              <li>Port to Solaris.</li>
              <li>Improved error recovery and clarified error messages.</li>
              <li>Added DOMTest program.</li>
          </ul>
      </s2>
  
      <s2 title="&XercesCFullName; Version 1.0.0: December 7, 1999">
          <ul>
              <li>Released &XercesCName; after incorporating ICU as a value-added plug-in.</li>
              <li>Has bug fixes, better conformance, better speed and cleaner internal architecture</li>
              <li>Three additional samples added: PParse, StdInParse and EnumVal</li>
              <li>Experimental DOM Level 2 support</li>
              <li>Support for namespaces</li>
              <li>Loadable message text enabling future translations to be easily plugged-in</li>
              <li>Pluggable validators</li>
              <li>Pluggable transcoders</li>
              <li>Reorganized the util directory to better manage different platforms and compilers</li>
          </ul>
      </s2>
  
      <s2 title="&XercesCName; BETA November 5, 1999">
          <ul>
              <li>Created initial code base derived from IBM's XML4C Version 2.0</li>
              <li>Modified documentation to reflect new name (Xerces-C)</li>
          </ul>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/sax2count.xml
  
  Index: sax2count.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 11: SAX2Count">
  
      <s2 title="SAX2Count">
          <p>SAX2Count is the simplest application that counts the elements and characters of
          a given XML file using the (event based) SAX2 API.</p>
  
          <s3 title="Running SAX2Count">
  
            <p>The SAX2Count sample parses an XML file and prints out a count of the number of
            elements in the file. To run SAX2Count, enter the following </p>
            <source>SAX2Count &lt;XML File&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      SAX2Count [options] &lt;XML file | List file&gt;
  
  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.
      -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.
      -?          Show this help.
  
    * = Default if not provided explicitly.
  </source>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em> will not use any validation<br/>
               <em>-v=auto</em> will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from SAX2Count</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  SAX2Count -v=always personal.xml
  personal.xml: 60 ms (37 elems, 12 attrs, 134 spaces, 134 chars)</source>
            <p>Running SAX2Count with the validating parser gives a different result because
            ignorable white-space is counted separately from regular characters.</p>
  <source>SAX2Count -v=never personal.xml
  personal.xml: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)</source>
            <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  
            <note>The time reported by the program may be different depending on your
            machine processor.</note>
          </s3>
  
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/sax2print.xml
  
  Index: sax2print.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 12: SAX2Print">
  
      <s2 title="SAX2Print">
          <p>SAX2Print uses the SAX2 APIs to parse an XML file and print
  		it back. Do note that the output of this sample is not
  		exactly the same as the input (in terms of whitespaces, first
  		line), but the output has the same information content as the
  		input.</p>
  
          <s3 title="Running SAX2Print">
  
            <p>The SAX2Print sample parses an XML file and prints out the
            contents again in XML (some loss occurs). To run SAX2Print,
            enter the following </p>
  
  <source>SAX2Print &lt;XML file&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      SAX2Print [options] &lt;XML file&gt;
  
  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.
      -x=XXX      Use a particular encoding for output (LATIN1*).
      -f          Enable full schema constraint checking processing. Defaults to off.
      -s          Disable schema processing. Defaults to on.
                  NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
      -?          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.
  </source>
  
            <p><em>-u=fail</em> will fail when unrepresentable characters are encountered<br/>
               <em>-u=rep</em> will replace with the substitution character for that codepage<br/>
               <em>-u=ref</em> will report the character as a reference</p>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em>  will not use any validation<br/>
               <em>-v=auto</em>   will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from SAX2Print</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  SAX2Print -v=always personal.xml
  
  &lt;?xml version="1.0" encoding="LATIN1"?&gt;
  &lt;personnel&gt;
  
    &lt;person id="Big.Boss"&gt;
      &lt;name&gt;&lt;family&gt;Boss&lt;/family&gt; &lt;given&gt;Big&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;chief@foo.com&lt;/email&gt;
      &lt;link subordinates="one.worker two.worker three.worker
  	                       four.worker five.worker"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="one.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;One&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;one@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="two.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Two&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;two@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="three.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Three&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;three@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="four.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Four&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;four@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="five.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Five&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;five@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
  &lt;/personnel&gt;</source>
            <note>SAX2Print does not reproduce the original XML file.
  		  SAX2Print and DOMPrint produce different results because of
  		  the way the two APIs store data and capture events.</note>
          </s3>
  
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/saxcount.xml
  
  Index: saxcount.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 1: SAXCount">
  
      <s2 title="SAXCount">
          <p>SAXCount is the simplest application that counts the elements and characters of
          a given XML file using the (event based) SAX API.</p>
  
          <s3 title="Running SAXCount">
  
            <p>The SAXCount sample parses an XML file and prints out a count of the number of
            elements in the file. To run SAXCount, enter the following </p>
  <source>SAXCount &lt;XML File&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      SAXCount [options] &lt;XML file | List file&gt;
  
  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.
      -?          Show this help.
  
    * = Default if not provided explicitly.
  </source>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em> will not use any validation<br/>
               <em>-v=auto</em> will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from SAXCount</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  SAXCount -v=always personal.xml
  personal.xml: 60 ms (37 elems, 12 attrs, 134 spaces, 134 chars)</source>
            <p>Running SAXCount with the validating parser gives a different result because
            ignorable white-space is counted separately from regular characters.</p>
  <source>SAXCount -v=never personal.xml
  personal.xml: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)</source>
            <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  
            <note>The time reported by the program may be different depending on your
            machine processor.</note>
          </s3>
  
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/saxprint.xml
  
  Index: saxprint.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 2: SAXPrint">
  
      <s2 title="SAXPrint">
          <p>SAXPrint uses the SAX APIs to parse an XML file and print
  		it back. Do note that the output of this sample is not
  		exactly the same as the input (in terms of whitespaces, first
  		line), but the output has the same information content as the
  		input.</p>
  
          <s3 title="Running SAXPrint">
  
            <p>The SAXPrint sample parses an XML file and prints out the
            contents again in XML (some loss occurs). To run SAXPrint,
            enter the following </p>
  
  <source>SAXPrint &lt;XML file&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      SAXPrint [options] &lt;XML file&gt;
  
  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.
  </source>
  
            <p><em>-u=fail</em> will fail when unrepresentable characters are encountered<br/>
               <em>-u=rep</em> will replace with the substitution character for that codepage<br/>
               <em>-u=ref</em> will report the character as a reference</p>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em>  will not use any validation<br/>
               <em>-v=auto</em>   will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Here is a sample output from SAXPrint</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  SAXPrint -v=always personal.xml
  
  &lt;?xml version="1.0" encoding="LATIN1"?&gt;
  &lt;personnel&gt;
  
    &lt;person id="Big.Boss"&gt;
      &lt;name&gt;&lt;family&gt;Boss&lt;/family&gt; &lt;given&gt;Big&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;chief@foo.com&lt;/email&gt;
      &lt;link subordinates="one.worker two.worker three.worker
  	                       four.worker five.worker"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="one.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;One&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;one@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="two.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Two&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;two@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="three.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Three&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;three@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="four.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Four&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;four@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
    &lt;person id="five.worker"&gt;
      &lt;name&gt;&lt;family&gt;Worker&lt;/family&gt; &lt;given&gt;Five&lt;/given&gt;&lt;/name&gt;
      &lt;email&gt;five@foo.com&lt;/email&gt;
      &lt;link manager="Big.Boss"&gt;&lt;/link&gt;
    &lt;/person&gt;
  
  &lt;/personnel&gt;</source>
            <note>SAXPrint does not reproduce the original XML file.
  		  SAXPrint and DOMPrint produce different results because of
  		  the way the two APIs store data and capture events.</note>
          </s3>
  
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/schema.xml
  
  Index: schema.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  <s1 title="Schema">
         <s2 title="Introduction">
                 <p>This package contains an implementation of the W3C XML Schema
                   Language, a recommendation of the Worldwide Web Consortium
                   available in three parts:
                   <jump href="http://www.w3.org/TR/xmlschema-0/">XML Schema: Primer</jump> and
                   <jump href="http://www.w3.org/TR/xmlschema-1/">XML Schema: Structures</jump> and
                   <jump href="http://www.w3.org/TR/xmlschema-2/">XML Schema: Datatypes</jump>.
                   We consider this implementation complete except for the limitations cited below.
                 </p>
  
                 <p>We would very much appreciate feedback on the package via the Xerces-C mailing list
                   <jump href="mailto:&XercesCEmailAddress;">&XercesCEmailAddress; </jump>, and we
                   encourage the submission of bugs as described in
                   <jump href="http://xml.apache.org/xerces-c/bug-report.html">Bug-Reporting</jump> page.
                   Please read this document before using this package.
                 </p>
         </s2>
         <anchor name="limitation"/>
         <s2 title="Limitations">
           <ul>
              <li>No interface is provided for exposing the post-schema
              validation infoset , beyond
              that provided by DOM or SAX;</li>
              <li> The parser permits situations in which there is
              circular or multiple importing.  However, the parser only permits forward
              references--that is, references directed from the
              direction of the schema cited in the instance
              document to other schemas.  For instance, if schema A
              imports both schema B and schema C, then
              any reference in schema B to an information item from
              schema C will produce an error. Circular or multiple
              &lt;include&gt;s have similar limitations.</li>
              <li>Due to the way in which the parser constructs content
              models for elements with complex content, specifying large
              values for the <code>minOccurs</code> or <code>maxOccurs</code>
              attributes may cause a stack overflow or very poor performance
              in the parser.  Large values for <code>minOccurs</code> should be
              avoided, and <code>unbounded</code> should be used instead of
              a large value for <code>maxOccurs</code>.</li>
           </ul>
         </s2>
  
         <anchor name="interpretation"/>
         <s2 title="Interpretation of Areas that are Unclear or Implementation-Dependent">
           <ul>
              <li>We have interpreted the specs as requiring &lt;keyref&gt; Identity Constraints to refer to
                  &lt;key&gt; or &lt;unique&gt; identity constraints within the scope of the elements to which
                  the &lt;keyref&gt; is attached. This interpretation is at variance with the Schema Primer, which
                  contains an example with a &lt;keyref&gt; declared on an element used inside the element of its
                  corresponding &lt;key&gt;.
              </li>
           </ul>
         </s2>
  
         <anchor name="usage"/>
         <s2 title="Usage">
  
                 <p>Here is an example how to turn on schema processing in DOMParser
                 (default is off).  Note that you must also turn on namespace support
                 (default is off) for schema processing.
                 </p>
  <source>// Instantiate the DOM parser.
  DOMParser parser;
  parser.setDoNamespaces(true);
  parser.setDoSchema(true);
  parser.parse(xmlFile);
  </source>
                 <p>Usage in SAXParser is similar, please refer to the
                 sample program 'samples/SAXCount/SAXCount.cpp' for further reference.
                 </p>
                 <p>Here is an example how to turn on schema processing in SAX2XMLReader
                 (default is on).  Note that namespace must be on (default is on) as well.
                 </p>
  <source>SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
  parser->setFeature(XMLString::transcode("http://xml.org/sax/features/namespaces"), true);
  parser->setFeature(XMLString::transcode("http://apache.org/xml/features/validation/schema"), true);
  parser->parse(xmlFile);
  </source>
                 <p>Review the sample file, 'samples/data/personal-schema.xml' and
                 'samples/data/personal.xsd' for an example of an XML Schema grammar.
                 </p>
         </s2>
  
         <anchor name="associate"/>
         <s2 title="Assocating Schema Grammar with instance document">
                 <p>Schema grammars can be associated with instance documents in two ways.
                 </p>
  
                 <s3 title="Specifying Schema Grammar through method calls:">
                 <p>An application developer may use the methods <code>setExternalSchemaLocation</code>
                  if they use namespaces, and <code>setExternalNoNamespaceSchemaLocation</code> otherwise
                  to associate schemas with instance documents.
                  (For SAX2XMLReader, use the properites:
                  "http://apache.org/xml/properties/schema/external-schemaLocation" and
                  "http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation")
                 </p>
                 <p>Here is an example with no target namspace:
                 </p>
  <source>
  // Instantiate the DOM parser.
  DOMParser parser;
  parser.setDoNamespaces(true);
  parser.setDoSchema(true);
  parser.setExternalNoNamespaceSchemaLocation("personal.xsd");
  parser.parse("test.xml");
  
  // Instantiate the SAX2 XMLReader.
  SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
  parser->setProperty(
         XMLString::transcode("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"),
         XMLString transcode("personal.xsd"));
  parser.parse("test.xml");
  </source>
  
                 <p>Here is an example with a target namespace. Note that it is an error to specify a
                  different namespace than the target namespace defined in the Schema.
                 </p>
  <source>
  // Instantiate the DOM parser.
  DOMParser parser;
  parser.setDoNamespaces(true);
  parser.setDoSchema(true);
  parser.setExternalSchemaLocation("http://my.com personal.xsd http://my2.com test2.xsd");
  parser.parse("test.xml");
  
  // Instantiate the SAX2 XMLReader.
  SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
  parser->setProperty(
         XMLString::transcode("http://apache.org/xml/properties/schema/external-SchemaLocation"),
         XMLString transcode("http://my.com personal.xsd http://my2.com test2.xsd"));
  parser.parse("test");
  </source>
                 </s3>
                 <s3 title="Specifying Schema Grammar through attributes in the instance document:">
                 <p>If schema grammar was not specified externally through methods,
                  then each instance document that uses XML Schema grammars must specify the location of
                  the grammars it uses by using an xsi:schemaLocation attribute if they use
                  namespaces, and xsi:noNamespaceSchemaLocation attribute otherwise.
                 </p>
                 <p>Here is an example with no target namspace:
                 </p>
  <source>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  	   xsi:noNamespaceSchemaLocation='personal.xsd'&gt;
  ...
  &lt;/personnel&gt;
  </source>
                 <p>Here is an example with a target namespace. Note that it is an error to specify a
                  different namespace than the target namespace defined in the Schema.
                 </p>
  <source>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;personnel xmlns="http://my.com"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  	   xsi:schemaLocation="http://my.com personal.xsd"&gt;
  ...
  &lt;/personnel&gt;
  </source>
                 </s3>
         </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/senumval.xml
  
  Index: senumval.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 9: SEnumVal">
  
      <s2 title="SEnumVal">
          <p>SEnumVal shows how to enumerate the markup decls in a Schema Grammar.</p>
  
          <s3 title="Running SEnumVal">
            <p>This program parses the specified XML file, then shows how to
              enumerate the contents of the Schema Grammar. </p>
  <source>
  Usage:
      SEnumVal &lt;XML file&gt;
  
  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.
  </source>
            <p>Here is a sample output from SEnumVal</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  SEnumVal personal-schema.xml
  
   Name:			personnel
   Model Type:		Children
   Create Reason:	Declared
   ContentType:	OneOrMore
   Content Model:	(person)+
   ComplexType:
   	TypeName:	,C0
   	ContentType:	OneOrMore
   --------------------------------------------
   Name:			person
   Model Type:		Children
   Create Reason:	Declared
   ContentType:	Sequence
   Content Model:	(name,email*,url*,link?)
   ComplexType:
   	TypeName:	,C1
   	ContentType:	Sequence
   Attributes:
   	Name:			salary
   	Type:			CDATA
   	Default Type:	#IMPLIED
   	Base Datatype:		Decimal
   Facets:		
   	fractionDigits=0
  
   	Name:			id
   	Type:			ID
   	Default Type:	#REQUIRED
   	Base Datatype:		ID
  
   	Name:			contr
   	Type:			CDATA
   	Default Type:	#DEFAULT
   	Value:			false
   	Base Datatype:		string
  
   	Name:			note
   	Type:			CDATA
   	Default Type:	#IMPLIED
   	Base Datatype:		string
  
   --------------------------------------------
   Name:			name
   Model Type:		Children
   Create Reason:	Declared
   ContentType:	Sequence
   Content Model:	(family,given)
   ComplexType:
   	TypeName:	,C3
   	ContentType:	Sequence
   --------------------------------------------
   Name:			family
   Model Type:		Simple
   Create Reason:	Declared
   Base Datatype:		string
   --------------------------------------------
   Name:			given
   Model Type:		Simple
   Create Reason:	Declared
   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:	,C4
   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:	,C5
   Attributes:
   	Name:			subordinates
   	Type:			IDREFS
   	Default Type:	#IMPLIED
   	Base Datatype:		List
  
   	Name:			manager
   	Type:			IDREF
   	Default Type:	#IMPLIED
   	Base Datatype:		IDREF
  
   --------------------------------------------
                </source>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/stdinparse.xml
  
  Index: stdinparse.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&XercesCName; Sample 8: StdInParse">
  
      <s2 title="StdInParse">
          <p>StdInParse demonstrates streaming XML data from standard input.</p>
  
          <s3 title="Running StdInParse">
            <p>The StdInParse sample parses an XML file from standard input and prints out a
  		  count of the number of
            elements in the file. To run StdInParse, enter the following: </p>
  <source>StdInParse &lt; &lt;XML file&gt;</source>
            <p>The following parameters may be set from the command line </p>
  <source>
  Usage:
      StdInParse [options] &lt; &lt;XML file&gt;
  
  This program demonstrates streaming XML data from standard
  input.  It then uses the SAX Parser, and prints the
  number of elements, attributes, spaces and characters found
  in the input, using SAX API.
  
  Options:
      -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.
  </source>
            <p><em>-v=always</em> will force validation<br/>
               <em>-v=never</em> will not use any validation<br/>
               <em>-v=auto</em> will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p>
            <p>Make sure that you run StdInParse in the samples/data directory.</p>
            <p>Here is a sample output from StdInParse:</p>
  <source>cd &XercesCInstallDir;-linux/samples/data
  StdInParse -v=always &lt; personal.xml
  stdin: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)</source>
            <p>Running StdInParse with the validating parser gives a different result because
            ignorable white-space is counted separately from regular characters.</p>
  <source>StdInParse -v=never &lt; personal.xml
  stdin: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)</source>
            <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  
            <note>The time reported by the program may be different depending on your
            machine processor.</note>
          </s3>
      </s2>
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/y2k.xml
  
  Index: y2k.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Y2K Compliance">
  	<s2 title="Apache Xerces Parser Year-2000 Readiness">
  		<p>Q: Are the Xerces parsers Year-2000-compliant? </p>
  		<p>Yes, Xerces-J and Xerces-C are Year 2000 compliant.
  		They do not currently use any dates at all (at least until the XML
  		Schema date datatypes are fully supported).  However, you may still
  		have Y2K problems if the underlying OS or Java implementation has
  		problems with dates past year 2000 (e.g. OS calls which accept or
  		return year numbers).</p>
  		<p>Most (UNIX) systems store dates internally as signed 32-bit
  		integers which contain the number of seconds since 1st January 1970,
  		so the magic boundary to worry about is the year 2038 and not 2000.
  		But modern operating systems shouldn't cause any trouble at all.</p>
  		
  		<p>The Apache Xerces project is an open-source software product
  		of the Apache Software Foundation. The project and the Foundation
  		cannot and does not offer legal assurances regarding any suitability
  		of the software for your application. There are several commercial
  		support organizations and derivative products available that may be
  		able to certify the software and provide you with any assurances you
  		may require (IBM's Websphere product is one of them).</p>
  		<p>The Apache HTTP server software is distributed with the following
  		disclaimer, found in the software license: 	</p>
  <source>THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  SUCH DAMAGE.</source>
  	</s2>
  </s1>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: general-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: general-cvs-help@xml.apache.org