xml-general-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From t..@apache.org
Subject cvs commit: xml-site/sources/xerces-c faq-build.xml program-dom.xml program-idom.xml program-sax.xml program-sax2.xml releases_plan.xml apidocs.xml bug-report.xml build-misc.xml build-other.xml build-winunix.xml build.xml faq-distrib.xml faq-other.xml faq-parse.xml feedback.xml install.xml memparse.xml migration.xml migration_archive.xml pdf-c.xml pparse.xml program.xml readme.xml releases.xml releases_archive.xml samples.xml sax2count.xml saxcount.xml schema.xml senumval.xml stdinparse.xml
Date Fri, 08 Mar 2002 20:40:53 GMT
tng         02/03/08 12:40:53

  Modified:    sources/xerces-c apidocs.xml bug-report.xml build-misc.xml
                        build-other.xml build-winunix.xml build.xml
                        faq-distrib.xml faq-other.xml faq-parse.xml
                        feedback.xml install.xml memparse.xml migration.xml
                        migration_archive.xml pdf-c.xml pparse.xml
                        program.xml readme.xml releases.xml
                        releases_archive.xml samples.xml sax2count.xml
                        saxcount.xml schema.xml senumval.xml stdinparse.xml
  Added:       sources/xerces-c faq-build.xml program-dom.xml
                        program-idom.xml program-sax.xml program-sax2.xml
                        releases_plan.xml
  Log:
  updated docs for Xerces-C++ 1.7.
  
  Revision  Changes    Path
  1.5       +1 -1      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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- apidocs.xml	14 Feb 2002 16:44:20 -0000	1.4
  +++ apidocs.xml	8 Mar 2002 20:40:51 -0000	1.5
  @@ -24,7 +24,7 @@
   	    <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.stack.nl/~dimitri/doxygen/">Doxygen</jump> and
   		<jump href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</jump>.</note>
   
       </s2>
  
  
  
  1.2       +2 -2      xml-site/sources/xerces-c/bug-report.xml
  
  Index: bug-report.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/bug-report.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- bug-report.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ bug-report.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -22,11 +22,11 @@
               <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>.
  +           <jump href="mailto:&XercesCEmailAddress;">&XercesCName; mailing list</jump>.
           </p>
       </s2>
   			
  -    <s2 title="Search frist">
  +    <s2 title="Search first">
           <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
  
  
  
  1.2       +37 -49    xml-site/sources/xerces-c/build-misc.xml
  
  Index: build-misc.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/build-misc.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- build-misc.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ build-misc.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -1,10 +1,9 @@
   <?xml version="1.0" standalone="no"?>
  -<!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  +<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.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>
  +<s1 title="Other Build Instructions">
  +    <anchor name="ICUPerl"/>
  +    <s2 title="Building &XercesCName; with ICU using bundled Perl scripts on Windows">
           <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
  @@ -67,19 +66,17 @@
   
           <p>For a description of options available, you can enter:</p>
   <source>perl packageBinaries.pl</source>
  -    </a>
  -    </faq>
  +    </s2>
   
  -    <faq title="Building &XercesCName; COM Wrapper on Windows">
  -    <q>Building &XercesCName; COM Wrapper on Windows</q>
  -    <a>
  +    <anchor name="WinCOM"/>
  +    <s2 title="Building &XercesCName; COM Wrapper on Windows">
           <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>
  +        <s3 title="Setting up your machine for COM">
           <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>
  @@ -105,17 +102,17 @@
           <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>
  +        </s3>
   
  -
  -        <p><em>Building COM module for &XercesCName;</em></p>
  +        <s3 title="Building COM module for &XercesCName;">
           <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>
  +        </s3>
   
  -
  -        <p><em>Testing the COM module</em></p>
  +        <s3 title="Testing the COM module">
           <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
  @@ -125,14 +122,12 @@
           <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>
  +        </s3>
  +    </s2>
   
   
  -    <faq title="Building User Documentation">
  -    <q>Building User Documentation</q>
  -    <a>
  +    <anchor name="UserDoc"/>
  +    <s2 title="Building User Documentation">
           <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
  @@ -167,13 +162,11 @@
   
           <p>This should generate the .html files in the 'doc/html'
           directory.</p>
  -    </a>
  -    </faq>
  +    </s2>
   
   
  -    <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>
  +    <anchor name="PortInfo"/>
  +    <s2 title="I wish to port &XercesCProjectName; to my favourite platform. Do you have any suggestions?">
         <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
  @@ -181,8 +174,8 @@
   
         <ol>
   
  -        <li>The directory <code>src/util/Platforms</code> contains the
  -        platform sensitive files while <code>src/util/Compilers</code> contains
  +        <li>The directory <code>src/xercesc/util/Platforms</code> contains the
  +        platform sensitive files while <code>src/xercesc/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.
  @@ -229,7 +222,7 @@
               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
  +            should not be a lot of work. The Win32 version 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
  @@ -239,7 +232,7 @@
               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
  +            implementing your own platform utilities 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
  @@ -261,13 +254,11 @@
         </ul>
   
         <p>That is the work required in a nutshell!</p>
  -    </a>
  -    </faq>
  +    </s2>
   
   
  -    <faq title="What should I define XMLCh to be?">
  -    <q>What should I define XMLCh to be?</q>
  -    <a>
  +    <anchor name="XMLChInfo"/>
  +    <s2 title="What should I define XMLCh to be?">
           <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>
   
  @@ -284,11 +275,11 @@
                  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
  +        <p>Some earlier releases of &XercesCName; 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>
  +           that were expecting wchar_t parameters.  This approach has
  +           been abandoned because of</p>
   
              <ul>
                 <li>
  @@ -304,28 +295,25 @@
                     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
  +                  a single 32 bit quantity.  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>
  +    </s2>
   
  -    <faq title="Where can I look for more help?">
  -    <q>Where can I look for more help?</q>
  -    <a>
  +    <anchor name="HelpInfo"/>
  +    <s2 title="Where can I look for more help?">
           <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
  +        mailing list archives at <jump href="http://marc.theaimsgroup.com/?l=xerces-c-dev">
  +        http://marc.theaimsgroup.com/?l=xerces-c-dev</jump> and the
   		<jump href="http://nagoya.apache.org/bugzilla/">Bugzilla</jump>
   		Apache bug database.</p>
  -    </a>
  -    </faq>
  +    </s2>
   
  -</faqs>
  +</s1>
  
  
  
  1.2       +330 -238  xml-site/sources/xerces-c/build-other.xml
  
  Index: build-other.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/build-other.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- build-other.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ build-other.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -1,16 +1,310 @@
   <?xml version="1.0" standalone="no"?>
  -<!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  +<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.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>
  +<s1 title="Building on Other Platforms">
  +    <anchor name="iSeries"/>
  +    <s2 title="Building &XercesCName; on iSeries (AS/400)">
  +            <p>The following addresses the requirements and build of
  +           &XercesCName; natively on the iSeries.
  +            </p>
  +            <s3 title="Building &XercesCName; library">
  +                <p><em>Requirements:</em></p>
  +
  +                <ul>
  +                    <li>OS/400 <code>QSHELL</code> interpreter installed (install base option 30, operating system)</li>
  +                    <li>OS/400 - Portable App Solutions Environment (PASE) installed (install base option 33, operating system)</li>
  +                    <li>QShell Utilities, PRPQ 5799-XEH</li>
  +                    <li>iSeries Tools for Developers, PRPQ 5799-PTL (these are the gnu utilities)</li>
  +                </ul>
  +
  +                <p>Compiler:</p>
  +                <ul>
  +                    <li>For v4r5m0: ILE C++ for AS/400, PRPQ 5799-GDW</li>
  +                    <li>For v5: WebSphere Development ToolsSet, 5722-WDS ( installed  option 52, Compiler - ILE C++)</li>
  +                </ul>
  +
  +                <p><em>Recommendations:</em></p>
  +
  +                <ul>
  +                <li>There is one option when building the XML4C parser on iSeries.
  +                For code page translation, you can use the iSeries
  +                native <code>Iconv400</code> support or ICU as the transcoder plug in. 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>We recommend the use of <code>Iconv400</code>.
  +                The binary posted on Alphaworks uses Iconv400.</li>
  +                </ul>
  +
  +                <p><em>Setup Instructions:</em></p>
  +
  +                <ul>
  +                <li>Make sure that you have the requirements installed on your iSeries.
  +                We highly recommend that you read the write up that accompanies the
  +                iSeries Tools for Developers PRPQ. 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 iSeries <code>*module</code>,
  +                <code>*pgm</code> and <code>*srvpgm</code> objects in libraries.</li>
  +
  +                <li>Download the source zip file (NT version) directly to an iSeries IFS directory
  +                    after creating a directory  (eg. /XML4Cxxx) and then extract	
  +                    the source using a mapped drive. To do this, from Windows Explorer,
  +                    select Tools -> Map Network Drive.  Then select an available drive (e.g. F:) and
  +                    specify an iSeries system you want to extract the zip file to
  +                    (e.g. \\&lt;your iSeries name&gt;\root).  Click on Finish.   Then find the .zip file
  +                    and right click on it and select Extract To ...
  +                    Then select the files you want to extract to the iSeries system.</li>
  +
  +                 <li>Create iSeries target library. This library will be the target
  +                     for the resulting modules and &XercesCName; service program. You will
  +                     specify this library on the OUTPUTDIR 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 up to the &XercesCName; src directory, but not including 'src'&gt;
  +MAKE   - '/usr/bin/gmake'
  +OUTPUTDIR  - &lt;identifies target iSeries library for *module, *pgm and *srvpgm objects&gt;
  +ICUROOT - (optional if using ICU)  &lt;the path of your ICU includes&gt;
  +</source>
  +
  +                <ul>
  +                <li>For v4r5m0 systems, add QCXXN, to your build process library list.
  +                    This results in the resolution of CRTCPPMOD used by the icc compiler.</li>
  +                 </ul>
  +
  +         <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 iSeries build do the following under Qsh:</p>
  +<source>qsh:
  +cd &lt;full path to &XercesCName;&gt;/src/xercesc
  +runConfigure -p os400 -x icc -c icc -m inmem -t Iconv400</source>
  +
  +         <p>Troubleshooting:</p>
  +<source>error: configure: error: installation or configuration problem:
  +C compiler cannot create executables.</source>
  +
  +         <p>If during runConfigure you see the above error message, it
  +         can mean one of a few things. Either QCXXN 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 or <code>PASE</code> is not installed. 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>CL:
  +DLTMOD &lt;OUTPUTDIR library&gt;/CONFT* and
  +DLTPGM &lt;OUTPUTDIR library&gt;/CONFT*</source>
  +
  +        <p><em>Build</em></p>
  +
  +<source>qsh:
  +cd &lt;full path to &XercesCName;&gt;/src/xercesc
  +gmake</source>
  +
  +         <p>The above gmake should 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;. It is highly possible that the
  +         service program will not create however due to number of modules and path names,
  +         see trouble shooting for the workaround.</p>
  +
  +         <p>After the service program has successfully been created and a link established,
  +         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 iSeries is a binding directory.  To create an archive file, use
  +         <code>qar</code> command.  (see the iSeries Tools for Developers write up).
  +         </p>
  +
  +         <p>After building the Xerces-C service program, create a binding directory
  +         by doing the following (note, this binding directory is used when building
  +         the samples.  Also, note that the .a file below can have a different
  +         name based on the parser version (using apache xerces versioning)):</p>
  +<source>qsh:
  +cd &lt;full path to &XercesCName;&gt;/lib
  +qar -cuv &XercesCUnixLib;.a *.o
  +will results in
  +command = CRTBNDDIR BNDDIR(yourlib/libxercesc) TEXT('/yourlib/&XercesCName;/lib/&XercesCUnixLib;.a')
  +command = ADDBNDDIRE BNDDIR(yourlib/libxercesc) OBJ((yourlib/LIBXERCESC *SRVPGM) )</source>
  +
  +
  +         <p><em>Troubleshooting gmake problem:</em></p>
  +         <p>Due to the  number of modules (the .o symbolic links)  that make up the
  +         service program and the path to get to those modules, the qshell ld request
  +         to create the service program will likely fail because the request is too large,
  +         you may get a message like the following at the end of the gmake request:</p>
  +<source>
  +FAILURE: spawnp()  with errno = 3491
  +GMAKE: vfork: Argument list too long.
  +</source>
  +
  +         <p>If this is the case, you can manually create the service program by doing the following:</p>
  +
  +<source>CL:
  +CRTSRVPGM  (&lt;OUTPUTDIR-library&gt;/libxercesc)  MODULE(&lt;OUTPUTDIR-library&gt;/*ALL) EXPORT(*ALL) TEXT('XML4C parser version xxx')
  +OPTION(*DUPPROC *DUPVAR)
  +</source>
  +
  +         <p>Note that if you manually create the service program you want to make sure that
  +         you do not include any CONFT* modules or samples modules in the OUTPUTDIR library.
  +         After the service program is manually created you can add a symbolic link to the
  +         service program  into the appropriate /lib directory by qsh:</p>
  +
  +<source>
  +qsh:
  +cd &lt;full path to &XercesCName;&gt;/lib
  +ln -s /qsys.lib/&lt;outputdir&gt;.lib/libxercesc.srvpgm   &XercesCUnixLib;.o
  +qar -cuv &XercesCUnixLib;.a *.o
  +</source>
  +
  +         <p>If you are on a v4 system using the ILE C++ PRPQ compiler (which is referred
  +         to as the 'old' compiler) you will get compiler errors requiring a few manual changes
  +         to the source:</p>
  +
  +         <ul>
  +         <li>src/xercesc/dom/DocumentImpl.cpp</li>
  +         <li>src/xercesc/dom/DocumentImpl.hpp</li>
  +         <li>src/xercesc/idom/IDDocumentImpl.cpp</li>
  +         <li>src/xercesc/idom/IDDocumentImpl.hpp</li>
  +         <li>src/xercesc/validators/common/ContentSpecNode.hpp</li>
  +         </ul>
  +
  +         <p>Update  the following routines in src/xercesc/dom/DocumentImpl.cpp as follows:</p>
  +<source>
  + void DocumentImpl::setUserData(NodeImpl* n, void* data)
  + {
  +	if (!userData &amp;&amp; data)
  +  #ifdef __OS400__
  +		userData = new RefHashTableOf&lt;char&gt;(29, false, new HashPtr());
  +  #else
  +		userData = new RefHashTableOf&lt;void&gt;(29, false, new HashPtr());
  +  #endif
  +	if (!data &amp;&amp; userData)
  +		userData-&gt;removeKey((void*)n);
  +	else
  +  #ifdef __OS400__
  +		userData-&gt;put((void*)n,(char*)data);
  +  #else
  +		userData-&gt;put((void*)n,data);
  +  #endif
  + }
  +
  + void* DocumentImpl::getUserData(NodeImpl* n)
  + {
  +	if (userData)
  +  #ifdef __OS400__
  +		return (void*)userData-&gt;get((void*)n);
  +  #else
  +		return userData-&gt;get((void*)n);
  +  #endif
  +	else
  +		return null;
  + }
  +</source>
  +
  +         <p>To update src/xercesc/dom/DoumentImpl.hpp as follows:</p>
  +
  +<source>
  + #ifdef __OS400__
  +	RefHashTableOf&lt;char&gt;		*userData;
  + #else
  +
  +	RefHashTableOf&lt;void&gt;		*userData;
  + #endif
  +</source>
  +
  +          <p>Update  the following routines in src/xercesc/idom/IDDocumentImpl.cpp as follows:</p>
  +<source>
  + void IDDocumentImpl::setUserData(IDOM_Node* n, void* data)
  + {
  +	if (!fUserData &amp;&amp; data)
  + #ifdef __OS400__
  +		fUserData = new (this) RefHashTableOf&lt;char&gt;(29, false, new (this) HashPtr());
  + #else
  +		fUserData = new (this) RefHashTableOf&lt;void&gt;(29, false, new (this) HashPtr());
  + #endif
  +
  +	if (!data &amp;&amp; fUserData)
  +		fUserData-&gt;removeKey((void*)n);
  +	else
  + #ifdef __OS400__
  +		fUserData-&gt;put((void*)n,(char*)data);
  + #else
  +		fUserData-&gt;put((void*)n,data);
  + #endif
  + }
  +
  + void* IDDocumentImpl::getUserData(const IDOM_Node* n) const
  + {
  +	if (fUserData)
  + #ifdef __OS400__
  +		return (void*) fUserData-&gt;get((void*)n);
  + #else
  +		return fUserData-&gt;get((void*)n);
  + #endif
  +
  +	else
  +		return 0;
  + }
  +</source>
  +
  +          <p>To update src/xercesc/idom/IDDocumentImpl.hpp:</p>
  +<source>
  + #ifdef __OS400__
  +    RefHashTableOf&lt;char&gt;        *fUserData;
  + #else
  +    RefHashTableOf&lt;void&gt;        *fUserData;
  + #endif
  +</source>
  +          <p>Update validators/common/ContentSpecNode.hpp removing the following:</p>
  +<source>
  + #ifndef __OS400__
  + inline
  + #endif
  + ContentSpecNode::~ContentSpecNode()
  +</source>
  +
  +         <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/xercesc/Makefile.incl</code> (usually the default is a link
  +          in <code>/usr/local/lib</code>).</li>
  +         </ol>
  +
  +        </s3>
  +
  +        <s3 title="Building Samples on iSeries">
  +
  +          <p>Note that the samples will create programs bind to the BND directory object
  +             created by qar referenced above.</p>
  +<source>qsh
  +cd &lt;full path to &XercesCName;&gt;/samples
  +runConfigure -p os400 -x icc -c icc
  +gmake </source>
  +
  +        </s3>
  +    </s2>
  +
  +    <anchor name="OS2VisualAge"/>
  +    <s2 title="Building &XercesCName; on OS/2 using Visual Age C++">
             <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>
  +          <s3 title="Building &XercesCName; library">
                <p><em>Requirements:</em></p>
                   <ul>
                       <li>VisualAge C++ Version 4.0 with Fixpak 1:
  @@ -99,9 +393,9 @@
             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>
  +          </s3>
   
  -
  -        <p><em>Building Samples</em></p>
  +        <s3 title="Building Samples">
            <p>Building the &XercesCName; samples using IBM Visual Age C++ Professional 4.0
             for OS/2 (VAC++).</p>
   
  @@ -156,222 +450,14 @@
               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>
  +          <li>Go to the first step above in the "Building samples for OS/2" section.</li>
           </ul>
  +        </s3>
   
  +    </s2>
   
  -    </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>
  +    <anchor name="Mac"/>
  +    <s2 title="Building &XercesCName; on Macintosh">
   		<p>The &XercesCName; Mac port has the key following attributes:
   		</p>
   		
  @@ -384,8 +470,13 @@
   			converter [MacOSUnicodeConverter].
   			</li>
   			
  -			<li>Has a Mac OS native netaccessor that utilizes the built-in Mac OS URLAccess
  -			routines [MacOSURLAccess].
  +			<li>Has two Mac OS native netaccessor classes. The first is based on Carbon and
  +			and classic supported URLAccess and may be used in the broadest variety of
  +			configurations [MacOSURLAccess]. The second [MacOSURLAccessCF] is based on
  +			CFURLAccess, which requires either Carbon or Mac OS X CoreServices.framework.
  +			This second NetAccessor is useful in Mac OS X configurations where reliance on
  +			the full Carbon.framework would prohibit execution of the Xerces code in a
  +			remote context that has no access to the GUI.
   			</li>
   			
   			<li>Supports builds from Metroworks CodeWarrior, Apple Project Builder,
  @@ -393,7 +484,7 @@
   			</li>
   		</ol>
   		
  -		<p><em>Using &XercesCName; with CodeWarrior</em></p>
  +		<s3 title="Using &XercesCName; with CodeWarrior">
   
   			<p><em>&XercesCName; and CodeWarrior:</em>
   			</p>
  @@ -443,7 +534,7 @@
   			</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>
  +-name "*.xml" -or -name "*.r" \) -print0 | xargs -0 /Developer/Tools/SetFile -c CWIE -t TEXT</source>
   
   			<ul>
   				<li>Move the entire directory structure to your Mac OS machine.
  @@ -488,9 +579,9 @@
   				</li>
   			</ul>
   		
  +		</s3>
   		
  -		
  -		<p><em>Building &XercesCName; with Project Builder</em></p>
  +		<s3 title="Building &XercesCName; with Project Builder">
   		
   			<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:
  @@ -511,9 +602,9 @@
   				<li>The DOMPrint project illustrates one such usage of the Xerces.framework.
   				</li>
   			</ul>
  +		</s3>
   		
  -		
  -		<p><em>Building &XercesCName; from the Mac OS X command line</em></p>
  +		<s3 title="Building &XercesCName; from the Mac OS X command line">
   		
   			<p>Support for Mac OS X command line builds is now included in the standard
   			"unix" &XercesCName; build infrastructure.
  @@ -526,8 +617,8 @@
   				</li>
   			</ul>
   		
  -<source>setenv XERCESCROOT "&lt;directory&gt;"
  -cd src
  +<source>setenv XERCESCROOT "&lt;xerces-c-directory&gt;"
  +cd src/xercesc
   ./runConfigure -p macosx -n native
   make</source>
   			
  @@ -541,9 +632,9 @@
   ./runConfigure -p macosx
   make</source>
   
  +		</s3>
   		
  -		
  -		<p><em>Special usage information for &XercesCName; on the Macintosh</em></p>
  +		<s3 title="Special usage information for &XercesCName; on the Macintosh">
   		
   			<p><em>File Path Specification</em></p>
   			
  @@ -583,7 +674,9 @@
   				<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.
  +				in itself prevent &XercesCName; from running. If &XercesCName; is
  +				configured to use MacOSURLAccessCF, then URLAccess (and thus Carbon)
  +				is not required, but CoreServices.framework is required for Mac OS X.
   				</li>
   				
   				<li>Multiprocessing library. Provides mutual exclusion support. Once again,
  @@ -597,7 +690,6 @@
   				HFS APIs are used instead.
   				</li>
   			</ul>	
  -		
  -    </a>
  -    </faq>
  -</faqs>
  +		</s3>
  +    </s2>
  +</s1>
  
  
  
  1.2       +42 -52    xml-site/sources/xerces-c/build-winunix.xml
  
  Index: build-winunix.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/build-winunix.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- build-winunix.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ build-winunix.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -1,15 +1,14 @@
   <?xml version="1.0" standalone="no"?>
  -<!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  +<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.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>
  +<s1 title="Building on Windows and UNIX">
  +    <anchor name="WinNT"/>
  +    <s2 title="Building &XercesCName; on Windows NT/2000">
           <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>
  +        <s3 title="Building &XercesCName; library">
               <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;
  @@ -30,8 +29,8 @@
               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>
  +        </s3>
  +        <s3 title="Building samples">
               <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
  @@ -41,20 +40,18 @@
                 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>
  +        </s3>
  +    </s2>
   
  -    </a>
  -    </faq>
  -
  -    <faq title="Building &XercesCName; on Windows using Visual Age C++">
  -    <q>Building &XercesCName; on Windows using Visual Age C++</q>
  -    <a>
  +    <anchor name="WinVisualAge"/>
  +    <s2 title="Building &XercesCName; on Windows using Visual Age C++">
           <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>
  +        <s3 title="Building &XercesCName; library">
               <p><em>Requirements:</em></p>
   
               <ul>
  @@ -87,31 +84,29 @@
               </ol>
               <note>These instructions assume that you install in drive d:\.
               Replace d with the appropriate drive letter.</note>
  +        </s3>
  +    </s2>
   
  -    </a>
  -    </faq>
  -
  -    <faq title="Building &XercesCName; on Windows using Borland C++Builder">
  -    <q>Building &XercesCName; on Windows using Borland C++Builder</q>
  -    <a>
  +    <anchor name="WinBorland"/>
  +    <s2 title="Building &XercesCName; on Windows using Borland C++Builder">
           <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>
  +        <s3 title="Building &XercesCName; library">
   		   <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>
  +		       <li> &XercesCSrcInstallDir;\Projects\Win32\BCB6\Xerces-all\Xerces-all.bpg </li>
       	   </ul>
   
  -		   <p> Each project in the group refers a directory belog \Xerces-all.
  +		   <p> Each project in the group refers a directory below \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>
  +    	       <li> &XercesCSrcInstallDir;\Projects\Win32\BCB6\Xerces-all\XercesLib </li>
   		   </ul>
   
              <p> To build any project, open the project manager.  Double click on the project
  @@ -123,13 +118,11 @@
               project and place XercesLib.dll somewhere in your path.
              </p>
   
  +        </s3>
  +    </s2>
   
  -    </a>
  -    </faq>
  -
  -    <faq title="Building &XercesCName; on UNIX platforms">
  -    <q>Building &XercesCName; on UNIX platforms</q>
  -    <a>
  +    <anchor name="UNIX"/>
  +    <s2 title="Building &XercesCName; on UNIX platforms">
           <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
  @@ -137,7 +130,7 @@
           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
  +        to get them for you. These tools are free under the GNU Public License
           and may be obtained from the
           <jump href="http://www.gnu.org">Free Software Foundation</jump>.</p>
   
  @@ -161,7 +154,7 @@
   
           <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>Redhat Linux 7.2</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>
  @@ -170,7 +163,7 @@
           <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>.
  +        on the <jump href="mailto:&XercesCEmailAddress;">&XercesCName; mailing list</jump>.
           </p>
   
           <p><em>Differences between the UNIX platforms:</em> The description below is
  @@ -188,7 +181,7 @@
           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>
  +        <s3 title="Setting build environment variables">
               <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.
  @@ -200,9 +193,9 @@
   <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>
  +            </s3>
   
  -
  -        <p><em>Building &XercesCName; library</em></p>
  +        <s3 title="Building &XercesCName; library">
               <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>
  @@ -212,10 +205,10 @@
               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>
  +            (called <code>configure</code>) is already in your <code>src/xercesc</code>
               directory. If not, type:</p>
   
  -<source>cd $XERCESCROOT/src
  +<source>cd $XERCESCROOT/src/xercesc
   autoconf</source>
   
               <p>This generates a shell-script called <code>configure</code>. It is tempting to run
  @@ -356,7 +349,7 @@
   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>
  +$HOME/&XercesCSrcInstallDir;/src/xercesc 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
  @@ -374,9 +367,9 @@
   <source>gmake</source>
   
               <p>Is that it? Yes, that's all you need to build &XercesCName;.</p>
  +        </s3>
   
  -
  -        <p><em>Building samples</em></p>
  +        <s3 title="Building samples">
           <p>The installation process for the samples is same on all UNIX
            platforms.
           </p>
  @@ -403,19 +396,17 @@
          -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.
  +         <note><em>NOTE:</em>The code samples in this section assume that you 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>
  +        </s3>
  +    </s2>
   
  -    </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>
  +    <anchor name="UNIX_SingleThread"/>
  +    <s2 title="Building &XercesCName; as a single-threaded library on Unix platforms">
            <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>
  @@ -458,7 +449,6 @@
        <li>Remove threading defines like <code>-D_PTHREADS_DRAFT4 ,
           -DXML_USE_DCE</code></li>
       </ul>
  -   </a>
  -   </faq>
  +   </s2>
   
  -</faqs>
  +</s1>
  
  
  
  1.3       +36 -509   xml-site/sources/xerces-c/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/build.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- build.xml	12 Jan 2000 20:08:56 -0000	1.2
  +++ build.xml	8 Mar 2002 20:40:51 -0000	1.3
  @@ -1,514 +1,41 @@
   <?xml version="1.0" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
  -<s1 title="Building &XercesCName;">
  -    <s2 title="Building on Windows NT/98">
  -				&XercesCName; comes with Microsoft Visual C++ projects and workspaces to
  -				help you build &XercesCName;. The following describes the steps you need
  -				to build &XercesCName;
  -    		<s3 title="Building &XercesCName; library">
  -        <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> 
  +<s1 title="Build Instructions">
   
  -        <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 
  -				either have the environment variable ICU_DATA set, or keep the
  -        international converter files relative to the &XercesCProjectName; DLL
  -				(as it came with  the original binary drop) for the program to find it.
  -				For finding out where you can get ICU from and build it, look at the last
  -				section of this page.
  -				</note>
  -				</s3>				
  -    		<s3 title="Building samples">
  -				<p>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>
  -				</s3>				
  -    </s2>
  +  <s2 title="Building on Windows and UNIX">
  +    <p>Read the <jump href="build-winunix.html">Building on Windows and UNIX</jump> document
  +      or jump directly to:</p>
  +    <ul>
  +       <li><jump href="build-winunix.html#WinNT">Building &XercesCName; on Windows NT/2000</jump></li>
  +       <li><jump href="build-winunix.html#WinVisualAge">Building &XercesCName; on Windows using Visual Age C++</jump></li>
  +       <li><jump href="build-winunix.html#WinBorland">Building &XercesCName; on Windows using Borland C++Builder</jump></li>
  +       <li><jump href="build-winunix.html#UNIX">Building &XercesCName; on UNIX platforms</jump></li>
  +       <li><jump href="build-winunix.html#UNIX_SingleThread">Building &XercesCName; as a single-threaded library on Unix platforms</jump></li>
  +    </ul>
  +  </s2>
  +
  +  <s2 title="Building on Other Platforms">
  +    <p>Read the <jump href="build-other.html">Building on Other Platforms</jump> document
  +      or jump directly to:</p>
  +    <ul>
  +       <li><jump href="build-other.html#iSeries">Building &XercesCName; on iSeries (AS/400)</jump></li>
  +       <li><jump href="build-other.html#OS2VisualAge">Building &XercesCName; on OS/2 using Visual Age C++</jump></li>
  +       <li><jump href="build-other.html#Mac">Building &XercesCName; on Macintosh</jump></li>
  +    </ul>
  +  </s2>
  +
  +  <s2 title="Other Build Instructions">
  +    <p>Read the <jump href="build-misc.html">Other Build Instructions</jump> document
  +      or jump directly to:</p>
  +    <ul>
  +       <li><jump href="build-misc.html#ICUPerl">Building &XercesCName; with ICU using bundled Perl scripts on Windows</jump></li>
  +       <li><jump href="build-misc.html#WinCOM">Building &XercesCName; COM Wrapper on Windows</jump></li>
  +       <li><jump href="build-misc.html#UserDoc">Building User Documentation</jump></li>
  +       <li><jump href="build-misc.html#PortInfo">I wish to port &XercesCProjectName; to my favourite platform. Do you have any suggestions?</jump></li>
  +       <li><jump href="build-misc.html#XMLChInfo">What should I define XMLCh to be?</jump></li>
  +       <li><jump href="build-misc.html#HelpInfo">Where can I look for more help?</jump></li>
  +    </ul>
  +  </s2>
   
  -    <s2 title="Building on UNIX platforms">
  -        <p>
  -        &XercesCName; uses GNU tools like <em>autoconf</em> and <em>gmake</em>
  -				to build the system. You must first make sure you have these tools installed
  -				on your system before proceeding. If you don't have all required tools,
  -				ask your system administrator to get it for you. These tools are free
  -				under the GNU Public Licence and may be obtained from <jump href="http://www.gnu.org">
  -				http://www.gnu.org</jump>.
  -        </p>
  -				<p><em>Also, do not jump into the build directly before reading this</em>. Spending
  -				some time reading the following instructions will save you a lot of wasted
  -				time and support-related Email 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 <em>autoconf</em> and
  -				<em>gmake</em> directly (like other products), 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>Compiler</em></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>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 &XercesCName; <jump href="mailto:&XercesCEmailAddress;">mailing list</jump>.
  -			</p>
  -			
  -			<p><em>Differences between the UNIX platforms:</em> The description below is 
  -			generic for all UNIX platforms, 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 <em>LD_LIBRARY_PATH</em>, on <em>AIX</em> it is <em>LIBPATH</em>, while on 
  -			<em>HP-UX</em> it is <em>SHLIB_PATH</em>. 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 last
  -			section of this page. It tells you where you can find ICU and how you
  -			can build it.</note>
  -				
  -    	<s3 title="Setting build environment variables">
  -			<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>
  -			</s3>
  -				
  -    	<s3 title="Building &XercesCName; library">
  -			<p>As mentioned earlier, you must be ready with the GNU tools like <em>autoconf</em>
  -			and <em>gmake</em> 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 
  -			<em>configure</em>) 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 configure. 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 gcc and g++ 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 allow 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
  -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', 'irix', 'unixware')
  -       -c &lt;C compiler name&gt; (e.g. gcc, cc, xlc)
  -       -x &lt;C++ compiler name&gt; (e.g. g++, CC, xlC)
  -       -d (specifies that you want to build debug version)
  -       -m &lt;message loader&gt; can be 'inmem', 'icu', 'iconv'
  -       -n &lt;net accessor&gt; can be 'fileonly', '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)
  -       -l &lt;extra linker options&gt;
  -       -z &lt;extra compiler options&gt;
  -       -h (to get help on the above commands)
  -</source>
  -
  -			<note>&XercesCName; builds as a standalone library and also as a library
  -			dependent on IBM's International Classes for Unicode (ICU). For simplicity,
  -			the following discussion only targets standalone builds.</note>
  -			
  -			<p>One of the common ways to build &XercesCName; is as follows:</p>
  -			
  -			<source>
  -runConfigure -plinux -cgcc -xg++ -minmem -nfileonly -tnative
  -</source>
  -
  -			<p>The response will be something like this:</p>
  -			<source>
  -Platform: linux
  -C Compiler: gcc
  -C++ Compiler: g++
  -Extra compile options: 
  -Extra link options: 
  -Message Loader: inmem
  -Net Accessor: fileonly
  -Transcoder: native
  -Thread option: 
  -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   ) works... yes
  -checking whether the C compiler (gcc -O -DXML_USE_NATIVE_TRANSCODER 
  -                   -DXML_USE_INMEM_MESSAGELOADER   ) 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   ) works... yes
  -checking whether the C++ compiler (g++ -O -DXML_USE_NATIVE_TRANSCODER 
  -                   -DXML_USE_INMEM_MESSAGELOADER   ) 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 for floor in -lm... yes
  -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/Iconv400/Makefile
  -creating util/Platforms/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 validators/DTD/Makefile
  -creating framework/Makefile
  -creating dom/Makefile
  -creating parsers/Makefile
  -creating internal/Makefile
  -creating sax/Makefile
  -creating ../obj/Makefile
  -creating conf.h
  -conf.h is unchanged
  -
  -In future, you may also directly type the following commands to create the Makefiles.
  -
  -export TRANSCODER=NATIVE
  -export MESSAGELOADER=INMEM
  -export USELIBWWW=0
  -export CC=gcc
  -export CXX=g++
  -export CXXFLAGS=-O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER  
  -export CFLAGS=-O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER  
  -export LIBS= -lpthread 
  -configure
  -
  -If the result of the above commands look OK to you, go to the directory
  -$XERCESCROOT/src and type "gmake" to make the XERCES-C system.			
  -</source>
  -
  -			<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>
  -			</s3>
  -			
  -			<s3 title="Building samples">
  -			<p>Similarly, you can build the samples by giving the same commands in the
  -			<code>samples</code> directory.</p>
  -			
  -			<source>
  -cd $XERCESCROOT/samples
  -runConfigure -plinux -cgcc -xg++
  -gmake
  -</source>
  -
  -			<p>The samples get built in the <code>bin</code> directory. Before you run the
  -			samples, you must make sure that your library path is set to pick up
  -			libraries from <code>$XERCESCROOT/lib</code>. If not, type the following to
  -			set your library path properly.</p>
  -			
  -			<source>
  -export LD_LIBRARY_PATH=$XERCESCROOT/lib:$LD_LIBRARY_PATH
  -</source>		
  -				<p>You are now set to run the sample applications.</p>
  -
  -			</s3>
  -   </s2>
  -
  -
  -    <s2 title="Building on Windows using Visual Age C++">
  -				<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
  -				Visual Age C++ compiler on Windows. The following describes the steps you need
  -				to build &XercesCName; using Visual Age C++.</p>
  -    		<s3 title="Building &XercesCName; library">
  -        <p><em>Requirements</em></p> 
  -
  -        <ol><li>VisualAge C++ Version 4.0 with Fixpak 1:   Download the Fixpak from the IBM
  -                VisualAge C++ Professional home page at
  -								<jump href="http://www.software.ibm.com/ad/VisualAge_c++/service/csd.html">
  -								http://www.software.ibm.com/ad/VisualAge_c++/service/csd.html</jump></li> 
  -                <li>ICU Build: You should have the ICU Library in the same directory as the xml4c
  -                    library. For example if xml4c is at the top level of the d drive, put
  -                    the ICU library at the top level of d e.g. d:/xml4c, d:/icu.</li>
  -				</ol>
  -				<note>You need to heed item 2 only if you are using ICU in your builds.</note> 
  -
  -        <p><em>Instructions</em></p>
  -				<ol>
  -           <li>Change directory to  d:\xml4c\Projects\Win32</li> 
  -           <li>If a d:\xml4c\Project\Win32\VACPP40 directory does not exist, create it.</li> 
  -           <li>Copy the IBM VisualAge project file, XML4C2X.icc, 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> 
  -				</s3>				
  -    </s2>
  -
  -
  -    <s2 title="Building on OS/2 using Visual Age C++">
  -				<p>OS/2 is one of IBM's favourite PC platforms for old customers. The only 
  -				option in	this platform is to use Visual Age for C++. The following 
  -				describes the steps you need to build &XercesCName; using Visual Age C++ on OS/2.</p>
  -    		<s3 title="Building &XercesCName; library">
  -        <p><em>Requirements</em></p> 
  -
  -        <ol><li>VisualAge C++ Version 4.0 with Fixpak 1:   Download the Fixpak from the IBM
  -                VisualAge C++ Professional home page at
  -								<jump href="http://www.software.ibm.com/ad/VisualAge_c++/service/csd.html">
  -								http://www.software.ibm.com/ad/VisualAge_c++/service/csd.html</jump></li> 
  -                <li>ICU Build:You should have the ICU Library in the same directory as the xml4c
  -                    library. For example if xml4c is at the top level of the d drive, put
  -                    the ICU library at the top level of d e.g. d:/xml4c, d:/icu.</li>
  -				</ol>
  -				<note>You need to heed item 2 only if you are using ICU in your builds.</note> 
  -
  -        <p><em>Instructions</em></p>
  -				<ol>
  -           <li>Change directory to  d:\xml4c\Projects\OS2</li> 
  -           <li>If a d:\xml4c\Project\OS2\VACPP40 directory does not exist, create it.</li> 
  -           <li>Copy the IBM VisualAge project file, XML4C2X.icc, 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> 
  -				</s3>				
  -    </s2>
  -		
  -
  -    <s2 title="Building on Macintosh using CodeWarrior">
  -				<p>The directions in this file cover installing and building &XercesCName;
  -				 and ICU under the MacOS  using CodeWarrior.</p>
  -    		<s3 title="Building &XercesCName; library">
  -
  -        <ol>
  -				<li>Create a folder that will contain the &XercesCName; and ICU distributions. For future
  -            reference I will refer to this folder as "src drop". </li>
  -				<li>Download and uncompress the ICU source distribution and the &XercesCName; source
  -            distribution.  You might also want to download the binary distributions because
  -            they may contain documentation not present in the source distribution.  This will
  -            create two additional directories; &XercesCName; and icu124 Folder. Move these folders
  -            into the "src drop" folder.</li>
  -				<li>Drag the &XercesCName; folder and drop it on to the "rename file" application located in
  -            the same folder as this readme.  This is a MacPerl script that renames files with
  -            names too long to fit in a HFS/HFS+ filesystem.  It also searches through all of
  -            the source code and changes the #include statements to refer to the new file
  -            names.</li>
  -				<li>Move the MacOS folder (in the Projects folder) to "src drop:&XercesCName;:Projects".</li>
  -				<li>You should be able to open the CodeWarrior project file "src
  -            drop:&XercesCName;:Projects:MacOS:&XercesCName;:&XercesCName;" and build the &XercesCName; library.</li>
  -				<li>You should also be able to open the CodeWarrior project file "src
  -            drop:&XercesCName;:Projects:MacOS:icu:icu" and build the ICU library.</li>
  -				<li>If you wish you can create projects for and build the rest of the tools and test
  -            suites.  They are not needed if you just want to use &XercesCName;.  I suggest that you
  -            use the binary data files distributed with the binary distribution of ICU instead of
  -            creating your own from the text data files in the ICE source distribution.</li>
  -				</ol>
  -				<p>There are some things to be aware of when creating your own projects using &XercesCName;.</p>
  -				<ol>
  -				<li>You will need to link against both the ICU and &XercesCName; libraries.</li>
  -				<li>The options "Always search user paths" and "Interpret DOS and Unix Paths" are
  -            very useful.  Some of the code won't compile without them set.</li>
  -				<li>Most of the tools and test code will require slight modification to compile and run
  -            correctly (typecasts, command line parameters, etc), but it is possible to get
  -            them working correctly.</li>
  -				<li>You will most likely have to set up the Access Paths.  The access paths in the
  -            &XercesCName; projects should serve as a good example.</li>
  -				</ol>
  -				
  -				
  -				<note>These instructions were originally contributed by <jump href="mailto:jbellardo@alumni.calpoly.edu">
  -				jbellardo@alumni.calpoly.edu</jump>.  &XercesCName; has undergone a lot of changes after that.
  -				So, in all likelihood these instructions are not upto date. But it will give you a jump start
  -				if you are struggling to get it to work for the first time. We will be glad
  -				to get your changes in. Please respond to <jump href="mailto:&XercesCEmailAddress;">
  -				&XercesCEmailAddress;</jump> with your comments and corrections.</note> 
  -
  -				</s3>				
  -    </s2>
  -		
  -		<s2 title="How to Build ICU">
  -		<p>As mentioned earlier, &XercesCName; may be built in stand-alone mode using
  -		native encoding support and also using ICU where you get support for 100's 
  -		of encodings. ICU stands for International Classes for Unicode and is an
  -		open source distribution from IBM. You can get ICU libraries from 
  -		<jump href="http://www.ibm.com/developerWorks">IBM's developerWorks site</jump>.
  -		To go to the source download page of ICU directly, <jump href="http://www10.software.ibm.com/developerworks/opensource/cvs/icu/">
  -		click here</jump>.
  -		</p>
  -		<s3 title="Buiding ICU for &XercesCName;">
  -		<p>You can find generic instructions to build ICU in the ICU documentation.
  -		What we describe below are the minimal steps needed to build ICU for &XercesCName;.
  -		Not all ICU components need to be built to make it work with &XercesCName;.</p>
  -		
  -		<note><em>Important:</em> Please remember that <em>ICU and &XercesCName; must be build 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>
  -		</s3>
  -
  -		<s3 title="Building ICU on Windows">
  -		<p>To build ICU from its source, invoke the project 
  -		<code>\icu\source\allinone\allinone.dsw</code>
  -    and build the sub-project labeled <code>common</code>. You may also want to build
  -    <code>tools/makeconv</code> to make the converter tool. All others are not required for the &XercesCName;
  -    build to proceed.</p>
  -
  -    <p>To build &XercesCName; from it source, you will need to include a project file in your workspace
  -    to program your application. Otherwise, you can use the provided workspace and add
  -    your application to it as a separate project.</p>
  -
  -    <p>In the first case the project file is:
  -    <code>xml4c2\Projects\Win32\VC6\IXXML4C2\IXXML4C2\IXXML4C2.dsp</code></p>
  -
  -    <p>In the second case the workspace is:
  -    <code>xml4c2\Projects\Win32\VC6\IXXML4C2\IXXML4C2.dsw</code></p> 
  -
  -    <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. Note
  -    that you must either have the environment variable <code>ICU_DATA</code> set, or keep the
  -    international converter files relative to the &XercesCProjectName; DLL (as it came with
  -    the original binary drop) for the program to find it.</p>
  -									
  -		</s3>
  -		
  -		<s3 title="Building ICU on UNIX platforms">
  -
  -		<p>To build ICU on all UNIX platforms you at least need the <code>autoconf</code> tool and GNU's
  -    <code>gmake</code> utility.</p>
  -
  -    <p>First make sure that you have defined the following environment variables:</p>
  -
  -<source>
  -export ICUROOT = &lt;icu_installdir&gt;
  -export ICU_DATA = &lt;icu_installdir&gt;/data/</source>
  -
  -    <p>Next, go to the directory,</p>
  -
  -<source>
  -cd $ICUROOT
  -cd source 
  -autoconf (this will create the shell script called configure)</source>
  -
  -<p>Commands for specific UNIX platforms are different and are described separately below.</p>
  -
  -<p>You will get a more detailed description of the use of configure in the ICU
  -documentation. The differences lie in the arguments passed to the configure script,
  -which is a platform-independent generated shell-script (through <code>autoconf</code>) and is used to
  -generate platform-specific <code>Makefiles</code> from generic <code>Makefile.in</code>'s.</p>
  -
  -<p><em>For AIX:</em></p>
  -
  -<p>Type the following:</p>
  -<source>
  -env CC="xlc_r -L/usr/lpp/xlC/lib" CXX="xlC_r -L/usr/lpp/xlC/lib" C_FLAGS="-w -O" CXX_FLAGS="-w -O"
  -configure --prefix=$ICUROOT
  -cd common
  -gmake
  -gmake install
  -cd ../tools/makeconv
  -gmake</source>
  -
  -<p><em>For Solaris and Linux:</em></p>
  -
  -<source>
  -env CC="cc" CXX="CC" C_FLAGS="-w -O" CXX_FLAGS="-w -O" ./configure --prefix=$ICUROOT</source>
  -
  -<p><em>For HP-UX:</em></p>
  -
  -<source>
  -env CC="cc" CXX="aCC" C_FLAGS="+DAportable -w -O" CXX_FLAGS="+DAportable -w -O" ./configure --prefix=$ICUROOT</source>
  -
  -<p>or</p>
  -
  -<source>
  -env CC="cc" CXX="CC" C_FLAGS="+DAportable -w -O" CXX_FLAGS="+eh +DAportable -w -O" ./configure --prefix=$ICUROOT</source>
  -
  -<p>depending on whether you are using aCC or CC to compile your sources.</p>
  -
  -		</s3>
  -		
  -		</s2>
  -
  -		<s2 title="Where to look for more help">
  -		<p>If you have read through this whole page, followed all the instructions, and
  -		still cannot resolve your problem, you may want to find out if others had
  -		the same problem before.
  -		First go and check the <jump href="http://xml-archive.webweaving.org/xml-archive-xerces/">
  -		&XercesCProjectName; mailing list	archives</jump>.</p>
  -		
  -		<p>Finally ask for help by joining the <jump href="mailto:&XercesCEmailAddress;">&XercesCName;
  -		mailing list</jump>.
  -		</p> 
  -		</s2>
  -
  -</s1>
  \ No newline at end of file
  +</s1>
  
  
  
  1.8       +16 -16    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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- faq-distrib.xml	14 Feb 2002 16:44:20 -0000	1.7
  +++ faq-distrib.xml	8 Mar 2002 20:40:51 -0000	1.8
  @@ -18,12 +18,12 @@
             <td><em>Compiler</em></td>
           </tr>
           <tr>
  -          <td>Windows NT 4.0 SP5/98</td>
  +          <td>Windows NT 4.0 SP5/2000</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>
  +          <td>Redhat Linux 7.2</td>
  +          <td>g++ 2.96</td>
           </tr>
           <tr>
             <td>AIX 4.3</td>
  @@ -68,9 +68,9 @@
               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>
  +            <p>XML4C binaries are published for Solaris 2.6 using Forte C++ 6.2
  +            compiler, HPUX 11.0 using aCC, Redhat Linux 7.2 using g++ 2.96,
  +            Windows NT 4.0 using MSVC 6.0 SP3, AIX 4.3 using xlC_r v5.0.2.</p>
   
           </a>
       </faq>
  @@ -91,7 +91,7 @@
               site</jump> site, then you only need to distribute
               <em>one</em> file:<br></br>
   
  -            &XercesCWindowsDLL;.dll for Windows NT/95/98, or<br/>
  +            &XercesCWindowsDLL;.dll for Windows NT/2000, or<br/>
               &XercesCUnixLib;.a for AIX, or<br/>
               &XercesCUnixLib;.so for Solaris/Linux, or<br/>
               &XercesCUnixLib;.sl for HP-UX.</p>
  @@ -102,13 +102,13 @@
   
               <ol>
                   <li><em>ICU shared library file</em>:<br></br>
  -                    icuuc.dll for Windows NT/95/98, or<br></br>
  +                    icuuc.dll for Windows NT/2000, 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>
  +                    icudata.dll for Windows NT/2000, or<br></br>
                       libicudata.a for AIX, or<br></br>
                       libicudata.so for Solaris/Linux, or<br></br>
                       libicudata.sl for HP-UX.</li>
  @@ -131,7 +131,7 @@
               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,
  +            <p>You will get a message that somewhat looks like this (changes always happen,
               we are evolving you see!): </p>
   
   <source>Usage is: packageBinaries &lt;options&gt;
  @@ -144,8 +144,8 @@
                 -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
  +Example: perl packageBinaries.pl -s$HOME/&XercesCSrcInstallDir;
  +                                 -o$HOME/&XercesCInstallDir;
                                    -cgcc -xg++ -minmem
                                    -nfileonly -tnative</source>
   
  @@ -165,7 +165,7 @@
               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>.
  +            <jump href="mailto:&XercesCEmailAddress;">&XercesCName; mailing list</jump>.
               We can definitely use any extra help in this open source
               project</p>
           </a>
  @@ -190,7 +190,7 @@
               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>
  +            <jump href="mailto:&XercesCEmailAddress;">&XercesCName; mailing list</jump>
               .</p>
           </a>
       </faq>
  @@ -218,7 +218,7 @@
               <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.stack.nl/~dimitri/doxygen/">Doxygen</jump> and
   		<jump href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</jump>.</p>
   
           </a>
  @@ -230,7 +230,7 @@
           <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>
  +            <jump href="mailto:&XercesCEmailAddress;">&XercesCName; mailing list</jump>
               .</p>
   
           </a>
  
  
  
  1.6       +5 -6      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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- faq-other.xml	14 Feb 2002 16:44:20 -0000	1.5
  +++ faq-other.xml	8 Mar 2002 20:40:51 -0000	1.6
  @@ -7,11 +7,11 @@
           <a>
   
              <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
  +           inside the file <code>src/xercesc/util/XercesDefs.hpp</code> or, in the binary distribution, look in <code>include/xercesc/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>
   
              <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
  +           information from the shared library name. On Windows 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>
   
  @@ -69,7 +69,8 @@
           <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>
  +        <jump href="http://marc.theaimsgroup.com/?l=xerces-c-dev">
  +        http://marc.theaimsgroup.com/?l=xerces-c-dev</jump>
           </p>
   
       </a>
  @@ -94,9 +95,7 @@
       <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
  +        mailing list</jump>. 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>
  
  
  
  1.8       +233 -475  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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- faq-parse.xml	14 Feb 2002 16:44:20 -0000	1.7
  +++ faq-parse.xml	8 Mar 2002 20:40:51 -0000	1.8
  @@ -1,7 +1,7 @@
   <?xml version="1.0" encoding = "iso-8859-1" standalone="no"?>
   <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
   
  -<faqs title="Parsing with &XercesCName;">
  +<faqs title="Programming/Parsing FAQs">
   
     <faq title="Does &XercesCName; support Schema?">
   
  @@ -39,100 +39,177 @@
         <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.
  +         <jump href="bug-report.html">Bug-Reporting</jump> page.
          </p>
   
       </a>
     </faq>
   
  -  <faq title="Why does my application crash on AIX when I run it under a
  -         multi-threaded environment?">
  +  <faq title="Why does my application crash when instantiating the parser?">
   
  -    <q>Why does my application crash on AIX when I run it under a
  -      multi-threaded environment?</q>
  +    <q>Why does my application crash when instantiating the parser?</q>
   
       <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>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>
   
  -      <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>
  +try {
  +   XMLPlatformUtils::Initialize();
  +}
  +catch (const XMLException&amp; toCatch) {
  +   // Do your failure processing here
  +}</source>
   
  -<source>LIBPATH=$HOME/&lt;&XercesCProjectName;&gt;/lib</source>
  +      <p>This initializes the &XercesCProjectName; system and sets its internal
  +        variables. Note that you must the include <code>xercesc/util/PlatformUtils.hpp</code> file for this to work.</p>
   
  -      <p>Where &lt;&XercesCProjectName;&gt; points to the directory where the
  -        &XercesCProjectName; application resides.</p>
  +    </a>
  +  </faq>
   
  -      <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>
  +  <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>
   
  -<source>export LIBPATH=$HOME/&lt;&XercesCProjectName;&gt;/lib:/usr/lib/threads:/usr/lib</source>
  +      <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>Where /usr/lib is where your system libraries are.</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="I cannot run the sample applications. What is wrong?">
  +  <faq title="Why does my application crash or hang if XMLPlatformUtils::Initialize()/Terminate() pair is called more than once?">
   
  -    <q>I cannot run the sample applications. What is wrong?</q>
  +    <q>Why does my application crash or hang if XMLPlatformUtils::Initialize()/Terminate() pair is called more than once?</q>
   
       <a>
   
  -      <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>
  +      <p>Please make sure you are using &XercesCName; Version 1.5.2 or up.
  +      </p>
   
  -      <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>
  +      <p>&XercesCName; Version 1.5.1 or below does not allow XMLPlatformUtils::Initialize()/Terminate()
  +         pair to be called more than once.
  +      </p>
   
       </a>
     </faq>
   
  -  <faq title="I just built my own application using the &XercesCName; parser. Why does it crash?">
  +  <faq title="Why does my application crash after calling XMLPlatformUtils::Terminate()?">
   
  -    <q>I just built my own application using the &XercesCName; parser. Why does
  -      it crash?</q>
  +    <q>Why does my application crash after calling XMLPlatformUtils::Terminate()?></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>
  +      <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>
  +         For example consider the following code snippets which is incorrect
  +         (for illustration simplicity the following sample code is not coded in try/catch clause):
  +      </p>
   
   <source>
  -try {
  -   XMLPlatformUtils::Initialize();
  -}
  -catch (const XMLException&amp; toCatch) {
  -   // Do your failure processing here
  -}</source>
  +1: {
  +2:    XMLPlatformUtils::Initialize();
  +3:    DOMString c("hello");
  +4:    XMLPlatformUtils::Terminate();
  +5: }
  +</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>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>
   
  @@ -172,53 +249,6 @@
       </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>
  -
  -    <a>
  -
  -      <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>&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>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>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>
  -
  -    </a>
  -  </faq>
  -
     <faq title="I am seeing memory leaks in &XercesCName;. Are they real?">
   
       <q>I am seeing memory leaks in &XercesCName;. Are they real?</q>
  @@ -241,18 +271,24 @@
       </a>
     </faq>
   
  -  <faq title="Can I validate the data contained in a DOM tree?">
  +  <faq title="I find memory leaks in &XercesCName;. How do I eliminate it?">
   
  -    <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>I find memory leaks in &XercesCName;. How do I eliminate it?</q>
   
       <a>
   
  -      <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>
  +      <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>
   
  @@ -275,53 +311,71 @@
       </a>
     </faq>
   
  -  <faq title="Why does my multi-threaded application crash on Solaris?">
  +  <faq title="Can I validate the data contained in a DOM tree?">
   
  -    <q>Why does my multi-threaded application crash on Solaris?</q>
  +    <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>
   
       <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">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>
  +      <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="Why does my application gives unresolved linking errors on Solaris?">
  -
  -    <q>Why does my application gives unresolved linking errors on Solaris?</q>
  -
  -    <a>
  -
  -      <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>
  -
  -      <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>
  -
  +  <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 available 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="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>
  +  <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>This is a compiler problem.  Try turning off optimization to bypass the problem.</p>
  +      <p>There are several possible options for how cloneNode should handle userData:
  +      </p>
  +      <ul>
  +      <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 non-portable, 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>
   
  -
     <faq title="How are entity reference nodes handled in DOM?">
   
       <q>How are entity reference nodes handled in DOM?</q>
  @@ -375,7 +429,7 @@
           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
  +        using additional protocols, ftp for example, &XercesCName; provides the <code>NetAccessor</code> interface. The header file is <code>src/xercesc/util/XMLNetAccessor.hpp</code>. This interface allows you to plug in your own implementation of URL
           networking code into the &XercesCName; parser.</p>
   
       </a>
  @@ -434,83 +488,13 @@
           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 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>XML4C -- the version of Xerces-C available from IBM -- combines Xerces-C
  +         and <jump href="http://oss.software.ibm.com/icu/">
  +         International Components for Unicode (ICU)</jump> and
  +         extends the encoding support to over 100 different encodings that are allowed
  +         by ICU.  In particular, all the encodings registered with the
  +         <jump href="http://www.iana.org/assignments/character-sets">
  +         Internet Assigned Numbers Authority (IANA) </jump> are supported in XML4C.</p>
   
         <p>Some implementations or ports of Xerces-C provide support for
           additional encodings. The exact set will depend on the supplier of the parser
  @@ -519,8 +503,7 @@
       </a>
     </faq>
   
  -  <faq
  -  title="What character encoding should I use when creating XML documents?">
  +  <faq   title="What character encoding should I use when creating XML documents?">
   
       <q>What character encoding should I use when creating XML documents?</q>
   
  @@ -537,7 +520,7 @@
             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
  +          that are primarily composed 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>
  @@ -568,28 +551,6 @@
       </a>
     </faq>
   
  -  <faq
  -  title="I find memory leaks in &XercesCName;. How do I eliminate it?">
  -
  -    <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>
  @@ -618,94 +579,6 @@
       </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>
  @@ -726,7 +599,7 @@
            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,
  +         Unix 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>
  @@ -754,7 +627,7 @@
            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.
  +            representation used by that underlying transcoding system.
            </li>
   		 <li>
            4. The transcoder object has two primary APIs, transcodeFrom() and
  @@ -787,98 +660,6 @@
       </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>
  -          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>
  -
  -  <faq title="Why does my application crash or hang if XMLPlatformUtils::Initialize()/Terminate() pair is called more than once.">
  -
  -    <q>Why does my application crash or hang if XMLPlatformUtils::Initialize()/Terminate() pair more than once</q>
  -
  -    <a>
  -
  -      <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>
  @@ -887,7 +668,7 @@
   
         <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 a correct type.  See <jump href="program-sax2.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>
  @@ -897,70 +678,47 @@
   
     <faq title="Why does SAX2XMLReader::getProperty not work?">
   
  -    <q>Why does SAX2XMLReader::setProperty not work?</q>
  +    <q>Why does SAX2XMLReader::getProperty 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
  +         <jump href="program-sax2.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
  +      <p>The parser owns the returned pointer.  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
  +         To ensure accessibility 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
  +         somewhere else; otherwise 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.
  +         <jump href="program-sax2.html#SAX2Properties">SAX2 Programming Guide</jump> to learn
  +         exactly what type of property value 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?">
  +  <faq title="Why does the parser still try to locate the DTD even validation is turned off
  +       and how to ignore external DTD reference?">
   
  -    <q>Why do I get link error saying icudata library not found when building with ICU?</q>
  +    <q>Why does the parser still try to locate the DTD even validation is turned off
  +       and how to ignore external DTD reference?</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>
  +      <p>When DTD is referenced, the parser will try to read it, because DTDs can
  +         provide a lot more information than just validation. It defines entities and
  +         notations, external unparsed entities, default attributes, character
  +         entities, etc... So it will always try to read it if present, even if
  +         validation is turned off.
  +      </p>
   
  +      <p>To ignore the DTD, the only way to get around this is to install an EntityResolver
  +         (see the Redirect sample for an example of how this is done), and reset the
  +         DTD file to "".
  +      </p>
   
       </a>
     </faq>
  
  
  
  1.6       +2 -1      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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- feedback.xml	14 Feb 2002 16:44:20 -0000	1.5
  +++ feedback.xml	8 Mar 2002 20:40:51 -0000	1.6
  @@ -10,7 +10,7 @@
           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>
  +        to the <jump href="mailto:&XercesCEmailAddress;">&XercesCName; 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>
  @@ -33,6 +33,7 @@
               <li>Edward Avis</li>
               <li>Anupam Bagchi</li>
               <li>Torbjörn Bäckström</li>
  +            <li>Frank Balluffi</li>
               <li>Matthew Baker</li>
               <li>Devin Barnhart</li>
               <li>James Berry</li>
  
  
  
  1.5       +8 -4      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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- install.xml	14 Feb 2002 16:44:20 -0000	1.4
  +++ install.xml	8 Mar 2002 20:40:51 -0000	1.5
  @@ -4,7 +4,7 @@
   <s1 title="Installation">
   
   
  -    <s2 title="Window NT/98">
  +    <s2 title="Windows NT/2000">
           <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>
  @@ -20,7 +20,7 @@
   		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>
  +		To do this under Windows 2000 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>
  @@ -36,6 +36,10 @@
           which contains the &XercesCName; distribution. You will need to add the
           &XercesCInstallDir;-linux/bin directory to your PATH environment variable:</p>
   
  +        <note>On Solaris, you may need to use <code>gtar</code> instead of tar.  See
  +        <jump href="faq-distrib.html#faq-11">FAQ</jump> for more information.</note>
  +
  +
           <p>For Bourne Shell, K Shell or Bash, type: </p>
   <source>export PATH="$PATH:$HOME/&XercesCInstallDir;-linux/bin"</source>
   		<p>For C Shell, type:</p>
  @@ -67,8 +71,8 @@
   setenv SHLIB_PATH "$XERCESCROOT/lib:$SHLIB_PATH" (on HP-UX)</source>
   
           <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>
  +        make sure you read and follow the <jump href="build.html">
  +        Build Instructions</jump>.</note>
   
      </s2>
   </s1>
  
  
  
  1.2       +1 -1      xml-site/sources/xerces-c/memparse.xml
  
  Index: memparse.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/memparse.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- memparse.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ memparse.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -83,7 +83,7 @@
   &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>
  +          <p>Note that the sum of spaces and characters in both versions is the same.</p>
   
             <note>The time reported by the system may be different, depending on your
             processor type.</note>
  
  
  
  1.3       +89 -46    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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- migration.xml	14 Feb 2002 16:44:20 -0000	1.2
  +++ migration.xml	8 Mar 2002 20:40:51 -0000	1.3
  @@ -2,17 +2,18 @@
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
   <s1 title="Migration">
  -    <s2 title="Migrating from &XercesCName; &XercesCVersion152; to &XercesCName; &XercesCVersion;">
  +    <s2 title="Migrating from &XercesCName; &XercesCVersion160; 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>
  +      &XercesCName; &XercesCVersion160; code base and the &XercesCName; &XercesCVersion;.</p>
   
         <p>Topics discussed are:</p>
         <ul>
           <li><link anchor="NewFeatures">New features in &XercesCName; &XercesCVersion;</link></li>
  +        <li><link anchor="DirChange">Directory change 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="ModifiedAPI">Modified Public API</link></li>
               <li><link anchor="DeprecatedAPI">Deprecated Public API</link></li>
           </ul>
         </ul>
  @@ -21,74 +22,116 @@
       <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>
  +        <li>Support SAX2-ext's DeclHandler.</li>
  +        <li>Directory sane_include reorganization: add sub-directory 'xercesc' to src / include folder.
  +            See <link anchor="DirChange">"Directory change in &XercesCName; &XercesCVersion;"</link>
  +            below for detail.</li>
  +        <li>More IDOM test cases - port IDOMMemTest, and merge ThreadTest and IThreadTest.</li>
  +        <li>Support IconvFBSD in multi-threading environment.</li>
  +        <li>Use IDOM in schema processing for faster performance.</li>
  +        <li>Add Project files for BCB6.</li>
  +        <li>Port to Caldera (SCO) OpenServer.</li>
  +        <li>Support building with new MacOSURLAccessCF NetAccessor that doesn't require
  +            Carbon but can allow Xerces to live solely within CoreServices layer.</li>
         </ul>
       </s2>
   
  +    <anchor name="DirChange"/>
  +    <s2 title="Directory change in &XercesCName; &XercesCVersion;">
  +        <ul>
  +            <li>A new directory, <em>src/xercesc</em> is created to be the new parent directory of
  +                all src's direct subdirectories.</li>
  +            <li>And in the binary package, all the headers are distributed in <em>include/xercesc</em> directory.</li>
  +            <li>Migration considerations:</li>
  +            <ul>
  +              <li>Windows application, <br/>
  +                  either change the <em>include directories </em> setting to
  +                  "..\..\..\..\..\src\<em>xercesc</em>" (Projects->settings->C/C++->Preprocessor), <br/>
  +                  or <br/>
  +                  change the relevant #include instances in the source/header files, accordingly, eg <br/>
  +                  #include &lt;util/XMLString.hpp&gt; be changed to <br/>
  +                  #include &lt;<em>xercesc</em>/util/XMLString.hpp&gt; </li>
  +              <li>Unix application, <br/>
  +                  either change the <em>include search path </em> in the Makefile to
  +                  " -I &lt;installroot&gt;/include/<em>xercesc</em>", <br/>
  +                  or <br/>
  +                  change the relevant #include instances in the source/header files as shown above. </li>
  +            </ul>
  +        </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
  +           &XercesCVersion; 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>
  +              <li>Added SAX2-ext's DeclHandler class.
  +                  See <jump href="api.html">the API documentation page</jump> for details.</li>
  +              <li>To support SAX2-ext's DeclHandler, the following new methods are added
  +                  in classes DefaultHandler and SAX2XMLReader:</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>
  +                <li>void DefaultHandler::elementDecl(const XMLCh* const name, const XMLCh* const model)</li>
  +                <li>void DefaultHandler::attributeDecl(const XMLCh* const eName, const XMLCh* const aName,
  +                    const XMLCh* const type, const XMLCh* const mode, const XMLCh* const value)</li>
  +                <li>void DefaultHandler::internalEntityDecl(const XMLCh* const name, const XMLCh* const value)</li>
  +                <li>void DefaultHandler::externalEntityDecl(const XMLCh* const name, const XMLCh* const publicId,
  +                    const XMLCh* const systemId)</li>
  +                <li>DeclHandler* SAX2XMLReader::getDeclarationHandler() const</li>
  +                <li>void SAX2XMLReader::setDeclarationHandler(DeclHandler* const handler)</li>
                 </ul>
  -              <li>To support identity constraints, the following new method is added:</li>
  +              <li>To conform to DOM Level 2 specification, the following methods are added:</li>
                 <ul>
  -                <li>QName* XMLAttr::getAttName() const</li>
  +                <li>DOM_Node DOM_NodeIterator::getRoot()</li>
  +                <li>DOM_Node DOM_TreeWalker::getRoot()</li>
  +                <li>bool DOM_Node::hasAttributes() const</li>
  +                <li>bool DOM_Element::hasAttribute(const DOMString &amp;name) const</li>
  +                <li>bool DOM_Element::hasAttributeNS(const DOMString &amp;namespaceURI,
  +                                const DOMString &amp;localName) const</li>
  +                <li>IDOM_Node* IDOM_NodeIterator::getRoot()</li>
  +                <li>IDOM_Node* IDOM_TreeWalker::getRoot()</li>
  +                <li>bool IDOM_Node::hasAttributes() const</li>
  +                <li>bool IDOM_Element::hasAttribute(const XMLCh* name) const</li>
  +                <li>bool IDOM_Element::hasAttributeNS(const XMLCh* namespaceURI,
  +                                const XMLCh* localName) const</li>
                 </ul>
  +              <li>To fix [Bug 5570], a copy constructor is added to DOM_Range</li>
               </ul>
           </s3>
   
           <anchor name="ModifiedAPI"/>
  -        <s3 title="Pulic API Modified">
  +        <s3 title="Modified Public API">
               <ul>
  -              <li>To support attribute constraint checking, the constant values in XMLAttDef::DefAttTypes have been re-ordered.</li>
  +              <li>To conform to the SAX2 specification, the namespace-prefixes feature
  +                  in SAX2 is set to off as default.</li>
  +              <li>To fix [Bug 6330], the Base64::encode and Base64::decode have been modified
  +                  as follows</li>
  +                  <ul>
  +                  <li>static XMLByte* Base64::encode(const XMLByte* const inputData,
  +                      const unsigned int   inputLength,
  +                      unsigned int*        outputLength);</li>
  +                  <li>static XMLByte* Base64::decode(const XMLByte* const inputData,
  +                           unsigned int*        outputLength);</li>
  +                  <li>static XMLCh* decode(const XMLCh* const inputData,
  +                         unsigned int*      outputLength);</li>
  +                  </ul>
  +              <li>To conform to DOM Level 2 specification, the DOM_Node::supports and IDOM_Node::supports
  +                  are modified to</li>
  +              <ul>
  +                <li>bool DOM_Node::isSupported(const DOMString &amp;feature, const DOMString &amp;version) const</li>
  +                <li>bool IDOM_Node::isSupported(const XMLCh* feature, const XMLCh* version) const</li>
  +              </ul>
               </ul>
           </s3>
   
           <anchor name="DeprecatedAPI"/>
  -        <s3 title="Deprecated Pulic API">
  +        <s3 title="Deprecated Public API">
               <ul>
  -              <li>Root Element check is moved from XMLValidator to XMLScanner.  Thus XMLValidator::checkRootElement() is deprecated.</li>
  +              <li>No Deprecated Public API in this release.</li>
               </ul>
           </s3>
   
  @@ -96,7 +139,7 @@
   
       <s2 title="Migration Archive">
   
  -       <p>For migration information to &XercesCName; &XercesCVersion152; or earlier,
  +       <p>For migration information to &XercesCName; &XercesCVersion160; or earlier,
             please refer to <jump href="migrate_archive.html">Migration Archive. </jump></p>
   
       </s2>
  
  
  
  1.2       +100 -8    xml-site/sources/xerces-c/migration_archive.xml
  
  Index: migration_archive.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/migration_archive.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- migration_archive.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ migration_archive.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -2,6 +2,98 @@
   <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
   
   <s1 title="Migration Archive">
  +    <s2 title="Migrating from &XercesCName; &XercesCVersion152; to &XercesCName; &XercesCVersion160;">
  +      <p>The following section is a discussion of the technical differences between
  +      &XercesCName; &XercesCVersion152; code base and the &XercesCName; &XercesCVersion160; code base.</p>
  +
  +      <p>Topics discussed are:</p>
  +      <ul>
  +        <li><link anchor="NewFeatures">New features in &XercesCName; &XercesCVersion160;</link></li>
  +        <li><link anchor="API">Public API Changes in &XercesCName; &XercesCVersion160;</link></li>
  +        <ul>
  +            <li><link anchor="NewAPI">New Public API</link></li>
  +            <li><link anchor="ModifiedAPI">Modified Public API</link></li>
  +            <li><link anchor="DeprecatedAPI">Deprecated Public API</link></li>
  +        </ul>
  +      </ul>
  +    </s2>
  +
  +    <anchor name="NewFeatures"/>
  +    <s2 title="New features in &XercesCName; &XercesCVersion160;">
  +      <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; &XercesCVersion160;">
  +
  +        <p>The following lists the public API changes between the &XercesCName;
  +           &XercesCVersion152; and the &XercesCName; &XercesCVersion160; 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="Modified Public API">
  +            <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 Public API">
  +            <ul>
  +              <li>Root Element check is moved from XMLValidator to XMLScanner.  Thus XMLValidator::checkRootElement() is deprecated.</li>
  +            </ul>
  +        </s3>
  +
  +    </s2>
  +
       <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>
  @@ -22,7 +114,7 @@
           <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>
  +            <li><link anchor="IDOM2">Experimental IDOM</link></li>
           </ul>
         </ul>
       </s2>
  @@ -56,7 +148,7 @@
           <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
  +            new features, such as experimental 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>
  @@ -118,10 +210,10 @@
           </s3>
   
           <anchor name="IDOM2"/>
  -        <s3 title="Experiemental IDOM">
  +        <s3 title="Experimental 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">
  +              <jump href="program-idom.html">
                 IDOM programming guide.</jump> Please note that this experimental IDOM API is only
                 a prototype and is subject to change.
              </p>
  @@ -274,7 +366,7 @@
               <code>validators/DTD</code> directory.</li>
   
               <li>The error code definitions which were earlier in
  -            <code>internal/ErrorCodes.hpp</code> are now splitup into
  +            <code>internal/ErrorCodes.hpp</code> are now split up into
               the following files:</li>
   
               <ul>
  @@ -482,7 +574,7 @@
           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
  +        with. Also, to avoid name classes in the absence 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>
  @@ -498,7 +590,7 @@
       <anchor name="LoadableMessageText"/>
       <s2 title="Loadable Message Text">
   
  -        <p>The system now supoprts loadable message text, instead of
  +        <p>The system now supports 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
  @@ -562,7 +654,7 @@
   
           <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
  +        XMLTransService class is an abstract 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
  
  
  
  1.2       +1 -1      xml-site/sources/xerces-c/pdf-c.xml
  
  Index: pdf-c.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/pdf-c.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- pdf-c.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ pdf-c.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -9,6 +9,6 @@
   	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>
  +	the <jump href="mailto:&XercesCEmailAddress;">&XercesCName; mailing list</jump>.</note>
   	</s2>
   </s1>
  
  
  
  1.2       +1 -1      xml-site/sources/xerces-c/pparse.xml
  
  Index: pparse.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/pparse.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- pparse.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ pparse.xml	8 Mar 2002 20:40:51 -0000	1.2
  @@ -50,7 +50,7 @@
             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>
  +          <p>Note that the sum of spaces and characters in both versions is the same.</p>
   
             <note>The time reported by the program may be different depending on your
             machine processor.</note>
  
  
  
  1.6       +40 -1071  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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- program.xml	14 Feb 2002 16:44:20 -0000	1.5
  +++ program.xml	8 Mar 2002 20:40:51 -0000	1.6
  @@ -3,1093 +3,62 @@
   
   <s1 title="Programming Guide">
   
  -  <p>This page has sections on the following topics:</p>
  -  <ul>
  -    <li><link anchor="SAX1ProgGuide">SAX Programming Guide</link></li>
  +  <s2 title="SAX Programming Guide">
  +    <p>Read the <jump href="program-sax.html">SAX Programming Guide</jump> document
  +      or jump directly to:</p>
       <ul>
  -      <li><link anchor="ConstructParser">Constructing a parser</link></li>
  -      <li><link anchor="UsingSAX1API">Using the SAX API</link></li>
  +      <li><jump href="program-sax.html#ConstructParser">Constructing a parser</jump></li>
  +      <li><jump href="program-sax.html#UsingSAX1API">Using the SAX API</jump></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
  -        below shows the code you need in order to create an instance
  -        of SAXParser. The DocumentHandler and ErrorHandler instances
  -        required by the SAX API are provided using the HandlerBase
  -        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";
  -    SAXParser* parser = new SAXParser();
  -    parser->setDoValidation(true);    // optional.
  -	parser->setDoNamespaces(true);    // optional
  -
  -    DocumentHandler* docHandler = new HandlerBase();
  -    ErrorHandler* errHandler = (ErrorHandler*) docHandler;
  -    parser->setDocumentHandler(docHandler);
  -    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="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
  -        C++, and that use of the &XercesCName; SAX API does not
  -        guarantee client code compatibility with other C++ XML
  -        parsers.</p>
  -
  -      <p>The SAX API presents a callback based API to the parser. An
  -        application that uses SAX 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 DocumentHandler which is
  -        called when XML constructs are recognized, and ErrorHandler
  -        which is called when an error occurs. The header files for the
  -        various SAX handler classes are in
  -        '&lt;&XercesCInstallDir;>/include/sax'</p>
  -
  -      <p>As a convenience, &XercesCName; provides the class
  -        HandlerBase, which is a single class which is publicly derived
  -        from all the Handler classes. HandlerBase'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 HandlerBase 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 MySAXHandler.hpp:</p>
  -<source>#include &lt;sax/HandlerBase.hpp>
  -
  -class MySAXHandler : public HandlerBase {
  -public:
  -    void startElement(const XMLCh* const, AttributeList&amp;);
  -    void fatalError(const SAXParseException&amp;);
  -};</source>
  -
  -      <p>This is the implementation file MySAXHandler.cpp:</p>
  -
  -<source>#include "MySAXHandler.hpp"
  -#include &lt;iostream.h>
  -
  -MySAXHandler::MySAXHandler()
  -{
  -}
  -
  -MySAXHandler::startElement(const XMLCh* const name,
  -                           AttributeList&amp; attributes)
  -{
  -    // 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 &lt;&lt; "I saw element: " &lt;&lt; transcode(name) &lt;&lt; endl;
  -}
  -
  -MySAXHandler::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 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>
  +    <p>Read the <jump href="program-sax2.html">SAX2 Programming Guide</jump> document
  +      or jump directly to:</p>
  +    <ul>
  +      <li><jump href="program-sax2.html#ConstructParser2">Constructing an XML Reader</jump></li>
  +      <li><jump href="program-sax2.html#UsingSAX2API">Using the SAX2 API</jump></li>
  +      <li><jump href="program-sax2.html#SAX2Features">Supported Features</jump></li>
  +      <li><jump href="program-sax2.html#SAX2Properties">Supported Properties</jump></li>
  +    </ul>
     </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
  -        existing Java code that makes use of the DOM to C++ is a
  -        straight forward process.
  -      </p>
  -      <p>
  -        This section outlines the differences between Java and C++ bindings.
  -      </p>
  -    </s3>
  -
  -    <anchor name="AccessAPI"/>
  -    <s3 title="Accessing the API from application code">
  -
  -<source>
  -// C++
  -#include &lt;dom/DOM.hpp></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
  -        that may already be in use by an application or other
  -        libraries that a DOM based application must link with.</p>
  -
  -        <p>The use of C++ namespaces would also have solved this
  -        conflict problem, but for the fact that many compilers do not
  -        yet support them.</p>
  -
  -<source>DOM_Document   myDocument;   // C++
  -DOM_Node       aNode;
  -DOM_Text       someText;</source>
  -
  -<source>Document       myDocument;   // Java
  -Node           aNode;
  -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>typedef DOM_Document  Document;
  -typedef DOM_Node      Node;
  -
  -Document   myDocument;        // Now C++ usage is
  -                              // indistinguishable from Java
  -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++
  -        code for most DOM operations is very similar to the equivalent
  -        Java code, right down to the use of factory methods in the DOM
  -        document class for nearly all object creation, and the lack of
  -        any explicit object deletion.</p>
  -
  -      <p>Consider the following code snippets </p>
  -
  -<source>// This is C++
  -DOM_Node       aNode;
  -aNode = someDocument.createElement("ElementName");
  -DOM_Node docRootNode = someDoc.getDocumentElement();
  -docRootNode.AppendChild(aNode);</source>
  -
  -<source>// This is Java
  -Node       aNode;
  -aNode = someDocument.createElement("ElementName");
  -Node docRootNode = someDoc.getDocumentElement();
  -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
  -        code. </p>
  -
  -      <p>However, Java and C++ handle objects in somewhat different
  -        ways, making it important to understand a little bit of what
  -        is going on beneath the surface.</p>
  -
  -      <p>In Java, the variable <code>aNode</code> is an object reference ,
  -        essentially a pointer. It is initially == null, and references
  -        an object only after the assignment statement in the second
  -        line of the code.</p>
  -
  -      <p>In C++ the variable <code>aNode</code> is, from the C++ language's
  -        perspective, an actual live object. It is constructed when the
  -        first line of the code executes, and DOM_Node::operator = ()
  -        executes at the second line. The C++ class DOM_Node
  -        essentially a form of a smart-pointer; it implements much of
  -        the behavior of a Java Object Reference variable, and
  -        delegates the DOM behaviors to an implementation class that
  -        lives behind the scenes. </p>
  -
  -      <p>Key points to remember when using the C++ DOM classes:</p>
  -
  -      <ul>
  -        <li>Create them as local variables, or as member variables of
  -        some other class. Never "new" a DOM object into the heap or
  -        make an ordinary C pointer variable to one, as this will
  -        greatly confuse the automatic memory management. </li>
  -
  -        <li>The "real" DOM objects - nodes, attributes, CData
  -        sections, whatever, do live on the heap, are created with the
  -        create... methods on class DOM_Document. DOM_Node and the
  -        other DOM classes serve as reference variables to the
  -        underlying heap objects.</li>
  -
  -        <li>The visible DOM classes may be freely copied (assigned),
  -        passed as parameters to functions, or returned by value from
  -        functions.</li>
  -
  -        <li>Memory management of the underlying DOM heap objects is
  -        automatic, implemented by means of reference counting. So long
  -        as some part of a document can be reached, directly or
  -        indirectly, via reference variables that are still alive in
  -        the application program, the corresponding document data will
  -        stay alive in the heap. When all possible paths of access have
  -        been closed off (all of the application's DOM objects have
  -        gone out of scope) the heap data itself will be automatically
  -        deleted. </li>
  -
  -        <li>There are restrictions on the ability to subclass the DOM
  -        classes. </li>
  -
  -      </ul>
  -
  -    </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
  -        a completely general string class, but rather to meet the
  -        specific needs of the DOM API.</p>
  -
  -      <p>The design derives from two primary sources: from the DOM's
  -        CharacterData interface and from class <code>java.lang.string</code>.</p>
  -
  -      <p>Main features are:</p>
  -
  +    <p>Read the <jump href="program-dom.html">DOM Programming Guide</jump> document
  +      or jump directly to:</p>
  +    <ul>
  +      <li><jump href="program-dom.html#JAVAandCPP">Comparison of Java and C++ DOM's</jump></li>
         <ul>
  -        <li>It stores Unicode text.</li>
  -
  -        <li>Automatic memory management, using reference counting.</li>
  -
  -        <li>DOMStrings are mutable - characters can be inserted,
  -        deleted or appended.</li>
  -
  +        <li><jump href="program-dom.html#AccessAPI">Accessing the API from application code</jump></li>
  +        <li><jump href="program-dom.html#ClassNames">Class Names</jump></li>
  +        <li><jump href="program-dom.html#ObjMemMgmt">Objects and Memory Management</jump></li>
         </ul>
  -      <p></p>
  -
  -      <p>When a string is passed into a method of the DOM, when
  -        setting the value of a Node, for example, the string is cloned
  -        so that any subsequent alteration or reuse of the string by
  -        the application will not alter the document contents.
  -        Similarly, when strings from the document are returned to an
  -        application via the DOM API, the string is cloned so that the
  -        document can not be inadvertently altered by subsequent edits
  -        to the string.</p>
  -
  -      <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://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
  -        equivalents. The equals() method compares the content of the
  -        string, while the == operator checks whether the string
  -        reference variables (the application program variables) refer
  -        to the same underlying string in memory. This is also true of
  -        DOM_Node, DOM_Element, etc., in that operator == tells whether
  -        the variables in the application are referring to the same
  -        actual node or not. It's all very Java-like </p>
  -
  +      <li><jump href="program-dom.html#DOMString">DOMString</jump></li>
         <ul>
  -        <li>bool operator == () is true if the DOMString variables
  -        refer to the same underlying storage. </li>
  -
  -        <li>bool equals() is true if the strings contain the same
  -        characters. </li>
  -
  +        <li><jump href="program-dom.html#EqualityTesting">Equality Testing</jump></li>
         </ul>
  -      <p>Here is an example of how the equality operators work: </p>
  -<source>DOMString a = "Hello";
  -DOMString b = a;
  -DOMString c = a.clone();
  -if (b == a)           //  This is true
  -if (a == c)           //  This is false
  -if (a.equals(c))       //  This is true
  -b = b + " World";
  -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>
  -    </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>// This is C++
  -DOM_Node       aNode = someFunctionReturningNode();
  -DOM_Element    el = (DOM_Element &amp;) aNode;</source>
  -
  -<source>// This is Java
  -Node       aNode = someFunctionReturningNode();
  -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>// This is C++
  -
  -DOM_Node       aNode = someFunctionReturningNode();
  -DOM_Element    el;    // by default, el will == null.
  -
  -if (anode.getNodeType() == DOM_Node::ELEMENT_NODE)
  -   el = (DOM_Element &amp;) aNode;
  -else
  -   // aNode does not refer to an element.
  -   // 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
  -        program. </p>
  -
  -      <p>As an alternative, the DOM_Node class provides a User Data
  -        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>
  -
  +      <li><jump href="program-dom.html#Downcasting">Downcasting</jump></li>
  +      <li><jump href="program-dom.html#Subclassing">Subclassing</jump></li>
  +    </ul>
     </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>
  -
  +    <p>Read the <jump href="program-idom.html">Experimental IDOM Programming Guide</jump> document
  +      or jump directly to:</p>
  +    <ul>
  +      <li><jump href="program-idom.html#ConstructIDOMParser">Constructing a parser</jump></li>
  +      <li><jump href="program-idom.html#DOMandIDOM">Comparison of C++ DOM and IDOM</jump></li>
         <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>
  -
  +        <li><jump href="program-idom.html#Motivation">Motivation behind new design</jump></li>
  +        <li><jump href="program-idom.html#IDOMClassNames">Class Names</jump></li>
  +        <li><jump href="program-idom.html#IDOMObjMgmt">Objects Management</jump></li>
  +        <li><jump href="program-idom.html#IDOMMemMgmt">Memory Management</jump></li>
  +          <ul>
  +            <li><jump href="program-idom.html#IDOMMemImplicit">Implicit Object Deletion</jump></li>
  +            <li><jump href="program-idom.html#IDOMMemExplicit">Explicit Object Deletion</jump></li>
  +          </ul>
  +        <li><jump href="program-idom.html#DOMStringXMCh">DOMString vs. XMLCh</jump></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>
  -
  +    </ul>
     </s2>
  -
   </s1>
  
  
  
  1.6       +1 -1      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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- readme.xml	14 Feb 2002 16:44:20 -0000	1.5
  +++ readme.xml	8 Mar 2002 20:40:51 -0000	1.6
  @@ -63,7 +63,7 @@
       <s2 title="Platforms with Binaries">
           <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>Linux (RedHat 7.2) using g++ 2.96</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>
  
  
  
  1.7       +515 -1329 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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- releases.xml	14 Feb 2002 16:44:20 -0000	1.6
  +++ releases.xml	8 Mar 2002 20:40:52 -0000	1.7
  @@ -3,7 +3,7 @@
   
   <s1 title="Releases">
   
  -<s2 title="&XercesCName; Version 1.6.0: December 6, 2001">
  +<s2 title="&XercesCName; Version 1.7.0: March 8, 2002">
   <table>
       <tr>
           <td>Date</td>
  @@ -12,1997 +12,1183 @@
       </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>2002-03-07</td>
  +        <td>Tinny Ng</td>
  +        <td>Add a keys file to store public key of committers who sign and upload packages to Apache.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-06</td>
  +        <td>2002-03-07</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>Call Terminate() to avoid memory tools reporting memory leak in Traversal test cases.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-06</td>
  +        <td>2002-03-06</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Schema: Allow [+]? [0]* '.'? [0]* and normalize the input to positive zero string.
  +            And similarly input conforming to '-' [0]* '.'? [0]* is normalized to negative zero.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2002-03-04</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 1959] setNodeValue throws exception when spec specifies NOP.
  +        <td>[Bug 2869] AIX 4.3.3 mutex/atomic-operation changes for build.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-06</td>
  -        <td>Erik Rydgren</td>
  -        <td>[Bug 2174] Bug in NamedNodeMapImpl.
  +        <td>2002-03-04</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 6834] apparently correct schema/instance not validating.
           </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>2002-02-28</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 2717] Unterminated INCLUDE section causes infinite loop with setExitOnFirstFatalError(false)
           </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>2002-02-28</td>
  +        <td>Tinny Ng</td>
  +        <td>Fix: ReaderMgr Should check if XMLReader is created successfully.
           </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>2002-02-28</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 1368] improper DOMStringHandle locking.
           </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>2002-02-28</td>
  +        <td>Martin Kalen</td>
  +        <td>[Bug 6445] Caldera (SCO) OpenServer Port.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-06</td>
  +        <td>2002-02-27</td>
           <td>Tinny Ng</td>
  -        <td>Make the runConfigure and associated config*, Makefile* in folders tests,
  -            samples and src more consistent.
  +        <td>Fix: default attribute are not added when namespace is on and validation is off.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-05</td>
  -        <td>Khaled Noaman</td>
  -        <td>[Bug 1236] Incorrect NMTOKENS attribute normalization.
  +        <td>2002-02-27</td>
  +        <td>Tinny Ng</td>
  +        <td>Fix: SAX AttributeList::getName should attach prefix if present
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-05</td>
  -        <td>Khaled Noaman</td>
  -        <td>[Bug 2752] Surrogate support incomplete.
  +        <td>2002-02-26</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 6672] SAXValidator results in an access violation when validating against schema
  +            with empty element that has default value.
           </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>2002-02-26</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fix: Create ZeroOrOne node for PCDATA only if needed.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-05</td>
  +        <td>2002-02-25</td>
           <td>Tinny Ng</td>
  -        <td>Generate linker map for certain platforms
  +        <td>Schema Fix: Thread-safe the built-in datatype validator registry.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-03</td>
  +        <td>2002-02-25</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 5237] PATH_MAX undefined during build without threading support.
  +        <td>Merge IThreadTest and ThreadTest.  Modify ThreadTest to do schema processing, and
  +            add ThreadTest to sanityTest.pl
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-03</td>
  +        <td>2002-02-20</td>
  +        <td>Don Mastrovito</td>
  +        <td>Project files for BCB6.
  +        </td>
  +    </tr>
  +
  +    <tr>
  +        <td>2002-02-20</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 5179] Misprint in downcasting description.
  +        <td>[Bug 2845] HP-UX 10.20 with CC A.10.40 needs +Z instead of +z.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-12-03</td>
  -        <td>Max Gotlib</td>
  -        <td>Add FreeBSD native transcoder (IconvFBSD).
  +        <td>2002-02-20</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 5977] Warnings on generating apiDocs.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-30</td>
  +        <td>2002-02-18</td>
           <td>PeiYong Zhang</td>
  -        <td>Build all tests on HP-UX 11.
  +        <td>Fix: Add code for ContentSpecNode::All in formatNode.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-29</td>
  -        <td>Michael Huedepohl</td>
  -        <td>Add FreeBSD Support.
  +        <td>2002-02-18</td>
  +        <td>James Berry</td>
  +        <td>Add support for building with new MacOSURLAccessCF NetAccessor that doesn't
  +            require Carbon but can allow Xerces to live solely within CoreServices layer.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>PeiYong Zhang</td>
  -        <td>DOMMemTest: delete compiler generated temperary DOMString object "Hello Goodbye".
  +        <td>2002-02-17</td>
  +        <td>James Berry</td>
  +        <td>[Bug 6092] stricmp and strnicmp not present in FreeBSD.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>Tinny Ng</td>
  -        <td>Fix broken ParserTest.
  +        <td>2002-02-17</td>
  +        <td>James Berry</td>
  +        <td>Update Mac OS projects to reflect "sane includes" changes.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  +        <td>2002-02-15</td>
           <td>Tinny Ng</td>
  -        <td>Do not increment the error count if it is a warning.
  +        <td>Add IDOM to API documentation.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>Phil Brown</td>
  -        <td>[Bug 4019] XMLReader::getNextChar can over read (UTF-16).
  +        <td>2002-02-15</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Base64 interface redefined for conversion in XMLByte.
           </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>2002-02-14</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Add getEnumString to DatatypeValidator.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>Artur Klauser</td>
  -        <td>[Bug 2238]libWWW problems with broken proxys and range requests.
  +        <td>2002-02-13</td>
  +        <td>Khaled Noaman</td>
  +        <td>Add constraint checking for the extension of an 'all' content model.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>Artur Klauser</td>
  -        <td>[Bug 2237] libWWW redirect error.
  +        <td>2002-02-13</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 4581] erroneous static cast in programming examples.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>Matt Lovett</td>
  -        <td>[Bug 4422] BinMemInputStream::readBytes is inefficient.
  +        <td>2002-02-13</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 6336] Output of XMLString::transcode not freed?
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>Tinny Ng</td>
  -        <td>[Bug 3683] Access Violations when performing custom schema validation.
  +        <td>2002-02-13</td>
  +        <td>Khaled Noaman</td>
  +        <td>Update samples to use SAX2 features/properties constants from XMLUni.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-28</td>
  -        <td>Tinny Ng</td>
  -        <td>Check tohash pointer before accessing content in XMLString::hash.
  +        <td>2002-02-11</td>
  +        <td>PeiYong Zhang</td>
  +        <td>[Bug 6330] Base64::encode does not work.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-27</td>
  +        <td>2002-02-11</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>[Bug 2715] Build recursion suppresses make failures.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-26</td>
  -        <td>Don Mastrovito</td>
  -        <td>BCB4 can use wchar_t.
  +        <td>2002-02-11</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2496] libxerces-c1_5_0 fails to build correctly on Solaris.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-23</td>
  -        <td>Tinny Ng</td>
  -        <td>Support ICU 2.0.
  +        <td>2002-02-06</td>
  +        <td>Khaled Noaman</td>
  +        <td>Added a new flag '-p' to SAX2 samples to set the 'namespace-prefixes' feature.
           </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>2002-02-06</td>
  +        <td>Khaled Noaman</td>
  +        <td>Use IDOM for schema processing.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-23</td>
  +        <td>2002-02-05</td>
           <td>Tinny Ng</td>
  -        <td>Eliminate Warning from Solaris Forte C++:
  -            Warning: String literal converted to char* in initialization.
  +        <td>Remove 3rd party jar style-apachexmljar, expand into physical files.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-23</td>
  +        <td>2002-02-05</td>
           <td>Tinny Ng</td>
  -        <td>Eliminate Warning from AIX xlC 3.6:1540-399.
  +        <td>Add IDOMMemTest.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-23</td>
  +        <td>2002-02-05</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 4655] config.status be included in all future binary releases.
  +        <td>Modify InitTermTest to take option flag like -s, -f , and -n.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-23</td>
  +        <td>2002-02-05</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 4873] ICU 2.0 breaks Xerces 1.5.2 build.
  +        <td>[Bug 5716] Can't parse with Validation more than one file.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-22</td>
  -        <td>PeiYong Zhang</td>
  -        <td>Eliminate Visual C++ compiler warning C4273.
  +        <td>2002-02-05</td>
  +        <td>Tinny Ng</td>
  +        <td>Recognize IBM01140 (IANA encoding) as alias of intrinsic encoding IBM1140.
           </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>2002-02-04</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 6114] Memory leaks on IDOM getElementsByTagName().
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-21</td>
  -        <td>Peter A. Volchek and PeiYong Zhang</td>
  -        <td>Add sample SEnumVal.
  +        <td>2002-02-04</td>
  +        <td>Tinny Ng</td>
  +        <td>Add DOM Level2 missing functions: NodeIterator::getRoot, TreeWalker::getRoot
  +            Element::hasAttribute, Element::hasAttributeNS and Node::hasAttribute
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-21</td>
  +        <td>2002-02-04</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>Memory leak fix in samples / test cases.
           </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>2002-02-01</td>
  +        <td>PeiYong Zhang</td>
  +        <td>src and include folder reorganization for "sane_include".
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-19</td>
  -        <td>PeiYong Zhang</td>
  -        <td>XMLFloat and XMLDouble boundary Values updated.
  +        <td>2002-01-28</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fix: some SAX calls were not passed to the LexicalHandler.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-16</td>
  +        <td>2002-01-29</td>
           <td>Tinny Ng</td>
  -        <td>Add test case InitTermTest to test XMLPlatformUtils:Initialize/Terminate() pair.
  +        <td>Remove those jar files that are not clear in license issue.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-16</td>
  +        <td>2002-01-28</td>
           <td>Khaled Noaman</td>
  -        <td>Design change: GeneralAttributeCheck is not longer a singleton class.
  +        <td>Add a 'null' string constant in XMLUni.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-15</td>
  +        <td>2002-01-28</td>
           <td>Khaled Noaman</td>
  -        <td>Re-organize constant values in XMLAttDef.
  +        <td>Add SAX2-ext's DeclHandler support.
           </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>2002-01-28</td>
  +        <td>Khaled Noaman</td>
  +        <td>The namespace-prefixes feature in SAX2 should be off by default.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-13</td>
  +        <td>2002-01-24</td>
           <td>Tinny Ng</td>
  -        <td>Update documentation for SAX2XMLReader, DefaultHandler and DOMParser.
  +        <td>[Bug 3111] Problem with LexicalHandler::startDTD() and LexicalHandler::endDTD().
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-09</td>
  +        <td>2002-01-23</td>
           <td>Tinny Ng</td>
  -        <td>Regular Expression: Update the Block Names and Block Range to comply to the latest standard.
  +        <td>Progressive parse does not do post-validation and thus ID/IDREF are not checked.
           </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>2002-01-23</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 5545] Progressive Parse trashes when encountering "&lt;!  ... "
           </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>2002-01-23</td>
  +        <td>Tinny Ng</td>
  +        <td>Update DOM/IDOM hasFeature method to correctly reflect current status.
  +            And add more hasFeature test to DOMMemTest.
           </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>2002-01-21</td>
  +        <td>Tinny Ng</td>
  +        <td>Some intrinsic encodings support (e.g. UTF-16) only work as input encoding
  +            while reading in XML data; but do not work as output encoding in XMLformatter.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-07</td>
  +        <td>2002-01-21</td>
           <td>Tinny Ng</td>
  -        <td>Performance: Create QName in ContentSpecNode only if it is a leaf/Any/PCDataNode.
  +        <td>Document encoding alias for intrinsic encoding support.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-07</td>
  +        <td>2002-01-21</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>[Bug 5847] ICUMsgLoader can't be compiled with gcc 3.0.3 and ICU2.
  +            And also fix the memory leak introduced by Bug 2730 fix.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-06</td>
  -        <td>Khaled Noaman</td>
  -        <td>[Bug 4644] Memory leak in schema traverser.
  +        <td>2002-01-18</td>
  +        <td>Max Gotlib</td>
  +        <td>Adds the capability to compile the tests under FreeBSD and either ICU or
  +            IconvFBSD transservice (the transcoding service is automatically detected
  +            during configuration stage), with or without pthreads.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-02</td>
  -        <td>Jason Stewart</td>
  -        <td>[Bug 4133] --prefix not used properly in configure.
  +        <td>2002-01-18</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 5371] runConfigure extra linker options ignored in Makefiles for tests and samples.
           </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>2002-01-18</td>
  +        <td>Tinny Ng</td>
  +        <td>Break program.xml which takes too long to load, into program-sax.xml, program-sax2.xml
  +            program-dom.xml, program-idom.xml.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-01</td>
  -        <td>Jason Stewart</td>
  -        <td>[Bug 4578] No documentation for XMLTranscoder.
  +        <td>2002-01-18</td>
  +        <td>Tinny Ng</td>
  +        <td>Break faq-parse.xml which becomes longer and longer into faq-parse.xml and faq-build.xml
  +            to better categorize the FAQ, and update the FAQ
           </td>
       </tr>
   
       <tr>
  -        <td>2001-11-01</td>
  +        <td>2002-01-18</td>
           <td>Tinny Ng</td>
  -        <td>IDOM: Leak: should allocate the fNodeListPool with the overloaded new.
  +        <td>Create symbolic link to those duplicate ICU libraries, instead of physical duplicate copies.
           </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>2002-01-15</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 5807] Parser produces unexpected errors from 'Good' document.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-26</td>
  +        <td>2002-01-14</td>
           <td>PeiYong Zhang</td>
  -        <td>Thread safe XMLFloat and XMLDouble.
  +        <td>XMLURi bug fix: related to Authority and wellformedAddress
           </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>2002-01-14</td>
  +        <td>Max Gotlib</td>
  +        <td>[Bug 5570] DOM_Range lacks the copy constructor.
           </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>2002-01-14</td>
  +        <td>Max Gotlib</td>
  +        <td>Support IconvFBSD in multi-threading environment with all the possible
  +            combinations of threading and transcoding options.
           </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>2002-01-10</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 5786] Unexpected Schema errors.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-25</td>
  -        <td>PeiYong Zhang</td>
  -        <td>XMLDeleterFor related functions and data are removed.  Replace with XMLRegisterCleanup.
  +        <td>2002-01-03</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fix for identity constraints - union operation.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-25</td>
  -        <td>Henry Zongaro</td>
  -        <td>[Bug 2924] runConfigure script to accept multiple linker options.
  +        <td>2002-01-03</td>
  +        <td>Khaled Noaman</td>
  +        <td>Resolve namespace first before resolving the schema location in &lt;import&gt;.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-25</td>
  -        <td>John Warrier</td>
  -        <td>[Bug 2924] runConfigure script to accept multiple compiler options.
  +        <td>2002-01-03</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 5675] Use of setExternalSchemaLocation() yields inconsistent behavior.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-25</td>
  -        <td>Mark Weaver</td>
  -        <td>[Bug 4213] BinHTTPURLInputStream initialisation not thread safe.
  +        <td>2002-01-02</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fix for validity constraint check for standalone documents.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-25</td>
  -        <td>John Clayton</td>
  -        <td>[Bug 4121] BinHTTPUrlInputStream needs to read entire HTTP header.
  +        <td>2002-01-02</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fix for regular expression patterns that begin with ".".
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-25</td>
  -        <td>Tinny Ng</td>
  -        <td>[Bug 4318] Single threaded build fails due to obsolete #define.
  +        <td>2002-01-02</td>
  +        <td>Khaled Noaman</td>
  +        <td>Fix for error message when checking for attributes with a namespace prefix.
           </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>2002-01-02</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 5569] &lt;extension&gt; does not work -- ancestor elements not recognized.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-25</td>
  +        <td>2002-01-02</td>
           <td>Tinny Ng</td>
  -        <td>Comment outside root element should also be reported.
  +        <td>Schema Fix: should not store a temp value as the key in the element
  +            pool and the attribute pool.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-24</td>
  -        <td>PeiYong Zhang</td>
  -        <td>[Bug 4342] Validator mutex is not deleted.
  +        <td>2001-12-22</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 4953] Propagate existing CFLAGS and CXXFLAGS.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-24</td>
  -        <td>PeiYong Zhang</td>
  -        <td>[Bug 3975] XMLPlatformUtils::Initialize() leaks memory after thousands of calls.
  +        <td>2001-12-21</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 5514] XMLEnumerator needs virtual destructor.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-24</td>
  -        <td>Kevin Philips</td>
  -        <td>[Bug 3813] BinHTTPURLInputStream has weak HTTP request capabilities.
  +        <td>2001-12-21</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 2680] Remove '-instances=static' from the compile step.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-24</td>
  -        <td>Peter A. Volchek</td>
  -        <td>[Bug 2305] Include stdlib.h to BinHTTPURLInputStream.cpp.
  +        <td>2001-12-21</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 1833] LexicalHandler::startDTD not called correctly.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-24</td>
  -        <td>Sean Bright</td>
  -        <td>[Bug 2456] loadXML gives an exception.
  +        <td>2001-12-21</td>
  +        <td>Frank Balluffi</td>
  +        <td>[Bug 5466] Memory Leak: ElementImpl.cpp's ElementImpl::ElementImpl copy
  +            constructor does not cleanup attributes before assignment.
           </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>2001-12-21</td>
  +        <td>Frank Balluffi</td>
  +        <td>[Bug 5464] Memory Leak: DocumentImpl::importNode does not delete
  +            old attribute if its reference count equals zero.
           </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>2001-12-21</td>
  +        <td>Tinny Ng</td>
  +        <td>Schema fix: leading whitespace should be preserved for CData type.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-23</td>
  -        <td>Mark Weaver</td>
  -        <td>[Bug 880] XMLPlatformUtils::Terminate cannot be called more than once.
  +        <td>2001-12-14</td>
  +        <td>Khaled Noaman</td>
  +        <td>Add surrogate support to comments and processing instructions.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-22</td>
  +        <td>2001-12-14</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 3660] Off-by-one error in DOMString.cpp.
  +        <td>Performance: Do not transcode twice in DOMString constructor.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-22</td>
  +        <td>2001-12-14</td>
           <td>Tinny Ng</td>
  -        <td>Check that memory has been acquired successfully after memory acquisition requests in DOMString.
  +        <td>update BUILDINSTRUCTIONS.TXT to be in sync with build instruction in build*.xml.
           </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>2001-12-13</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Fix: Invalid Argument to FreeLibrary (Hint: 0x0000000).
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-22</td>
  +        <td>2001-12-13</td>
           <td>Linda Swan</td>
  -        <td>castToNodeImpl is inconsistent with other cast routinesin IDCasts.
  +        <td>iSeries (AS/400) documentation update and other iSeries related fixes.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-19</td>
  -        <td>James Berry</td>
  -        <td>Add new file name shortening hints; chmod +x.
  +        <td>2001-12-13</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 5410] non-schema &lt;attribute&gt; attributes cause error.
           </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>2001-12-12</td>
  +        <td>Tinny Ng</td>
  +        <td>Fix typos in messages.
           </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>2001-12-12</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Memory leak: fRedefineList.
           </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>2001-12-12</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 5367] Progressive parse does not throw error when file is empty.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-19</td>
  +        <td>2001-12-12</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 3909] return non-zero an exit code when error was encountered.
  +        <td>Performance: Remove obsolete code in ElemStack.
           </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>2001-12-11</td>
  +        <td>Max Gotlib</td>
  +        <td>More changes to IconvFBSDTransService.  Allow using "old" TransServece implementation
  +            (via '-t native' option to runConfigure) or to employ libiconv (it is a part of FreeBSD
  +            ports-collection) services.
           </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>2001-12-11</td>
  +        <td>Christopher Just</td>
  +        <td>[Bug 5320] 1.5.2 Build fails on IRIX.  The variable "atomicOpsMutex" has been defined twice.
           </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>2001/12/10</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Swap checking to avoid "dangling pointer" reported by BoundsChecker.
           </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>2001-12-10</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Memory Leak: fLeafNameTypeVector.
           </td>
       </tr>
   
  +</table>
  +</s2>
  +
  +<s2 title="&XercesCName; Version 1.6.0: December 6, 2001">
  +<table>
       <tr>
  -        <td>2001-10-18</td>
  -        <td>Jerry Carter</td>
  -        <td>[Bug 3666] Win32MsgLoader unable to retrieve error text if DLL is renamed.
  -        </td>
  +        <td>Date</td>
  +        <td>Contributor</td>
  +        <td>Description</td>
       </tr>
   
       <tr>
  -        <td>2001-10-18</td>
  -        <td>Tinny Ng</td>
  -        <td>Use opt2 on AIX platform.
  +        <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-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>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-10-18</td>
  +        <td>2001-12-06</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 4015] IDDOMImplementation::createDocumentType hopelessly broken.
  +        <td>[Bug 1959] setNodeValue throws exception when spec specifies NOP.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-16</td>
  -        <td>Khaled Noaman</td>
  -        <td>[Bug 3750] GeneralAttributeCheck threading bug.
  +        <td>2001-12-06</td>
  +        <td>Erik Rydgren</td>
  +        <td>[Bug 2174] Bug in NamedNodeMapImpl.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-15</td>
  -        <td>Khaled Noaman</td>
  -        <td>[Bug 4177] setupRange uses non-portable code.
  +        <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-10-13</td>
  -        <td>Jason Stewart</td>
  -        <td>[Bug 2409] undocumented XMLException in LocalFileInputSource::new().
  +        <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-10-13</td>
  -        <td>Jason Stewart</td>
  -        <td>[Bug 4133] --prefix not used properly in configure.
  +        <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-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>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-10-10</td>
  -        <td>Petr Gotthard</td>
  -        <td>Add "Base64::encode" for encoding binary data.
  +        <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-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>2001-12-05</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 1236] Incorrect NMTOKENS attribute normalization.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-05</td>
  -        <td>PeiYong Zhang</td>
  -        <td>[Bug 3831] -1 returned from getIndex() needs to be checked.
  +        <td>2001-12-05</td>
  +        <td>Khaled Noaman</td>
  +        <td>[Bug 2752] Surrogate support incomplete.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-10-03</td>
  -        <td>Tinny Ng</td>
  -        <td>[Bug 3867] IDOM_Element::getElementsByTagName() threading problem.
  +        <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-10-02</td>
  +        <td>2001-12-05</td>
           <td>Tinny Ng</td>
  -        <td>Memory leak in IDOM, need to delete the fDocument created.
  +        <td>Generate linker map for certain platforms
           </td>
       </tr>
   
       <tr>
  -        <td>2001-09-13</td>
  -        <td>Artur Klauser</td>
  -        <td>Patch: Xerces 1.5 w/ libWWW for Tru64.
  +        <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-09-13</td>
  -        <td>Artur Klauser</td>
  -        <td>Patch: Xerces 1.5 samples with g++ compiler.
  +        <td>2001-12-03</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 5179] Misprint in downcasting description.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-09-12</td>
  -        <td>PeiYong Zhang</td>
  -        <td>[Bug 3565] Stream leaked in ReaderMgr.
  +        <td>2001-12-03</td>
  +        <td>Max Gotlib</td>
  +        <td>Add FreeBSD native transcoder (IconvFBSD).
           </td>
       </tr>
   
       <tr>
  -        <td>2001-09-12</td>
  -        <td>Tinny Ng</td>
  -        <td>[Bug 3155] SAX2 does not offer progressive parse.
  +        <td>2001-11-30</td>
  +        <td>PeiYong Zhang</td>
  +        <td>Build all tests on HP-UX 11.
           </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>2001-11-29</td>
  +        <td>Michael Huedepohl</td>
  +        <td>Add FreeBSD Support.
           </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>2001-11-28</td>
  +        <td>PeiYong Zhang</td>
  +        <td>DOMMemTest: delete compiler generated temporary DOMString object "Hello Goodbye".
           </td>
       </tr>
   
       <tr>
  -        <td>2001-09-04</td>
  -        <td>Christopher Just</td>
  -        <td>Support IRIX's sproc().
  +        <td>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>Fix broken ParserTest.
           </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>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-08-29</td>
  -        <td>Henry Zongaro</td>
  -        <td>Allowing -p as argument to -z or -l in runConfigure.
  +        <td>2001-11-28</td>
  +        <td>Phil Brown</td>
  +        <td>[Bug 4019] XMLReader::getNextChar can over read (UTF-16).
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-29</td>
  +        <td>2001-11-28</td>
           <td>Tinny Ng</td>
  -        <td>Performance: Use XMLBufBid instead of XMLBuffer directly for better performance.
  +        <td>[Bug 4544] DOM_NodeList::getLength incorrect when called twice for empty list.
           </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>2001-11-28</td>
  +        <td>Artur Klauser</td>
  +        <td>[Bug 2238]libWWW problems with broken proxys and range requests.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-22</td>
  -        <td>Don Mastrovito</td>
  -        <td>Project files for BCB5.
  +        <td>2001-11-28</td>
  +        <td>Artur Klauser</td>
  +        <td>[Bug 2237] libWWW redirect error.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-21</td>
  -        <td>PeiYong Zhang</td>
  -        <td>[Bug 2816]Numerous datatype headers cause CC error 1144.
  +        <td>2001-11-28</td>
  +        <td>Matt Lovett</td>
  +        <td>[Bug 4422] BinMemInputStream::readBytes is inefficient.
           </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>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>[Bug 3683] Access Violations when performing custom schema validation.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-17</td>
  -        <td>Nick Chiang</td>
  -        <td>Fix to memory leak in buildDFA().
  +        <td>2001-11-28</td>
  +        <td>Tinny Ng</td>
  +        <td>Check tohash pointer before accessing content in XMLString::hash.
           </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>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-08-10</td>
  -        <td>PeiYong Zhang</td>
  -        <td>Add isHex(), isAlphaNum(), isAllWhiteSpace() and patternMatch() in XMLString.
  +        <td>2001-11-26</td>
  +        <td>Don Mastrovito</td>
  +        <td>BCB4 can use wchar_t.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-09</td>
  +        <td>2001-11-23</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 2947]IDOM segfault calling getElementsByTagName() using a DOM_Document().
  +        <td>Support ICU 2.0.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-09</td>
  +        <td>2001-11-23</td>
           <td>Tinny Ng</td>
  -        <td>Port test case DOMTest to  IDOMTest.
  +        <td>Eliminate Warning from Solaris Forte C++:
  +            Warning (Anachronism): Formal argument start_routine of type extern "C".
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-07</td>
  +        <td>2001-11-23</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 2676] IDOM: pure virtual called in IDDeepNodeListImpl::item().
  +        <td>Eliminate Warning from Solaris Forte C++:
  +            Warning: String literal converted to char* in initialization.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-07</td>
  -        <td>Kari Whitcomb</td>
  -        <td>IDOM: Unaligned Access warnings in IDOM samples.
  +        <td>2001-11-23</td>
  +        <td>Tinny Ng</td>
  +        <td>Eliminate Warning from AIX xlC 3.6:1540-399.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-02</td>
  +        <td>2001-11-23</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 1329] SAX2XMLReaderImpl leaks XMLBuffers.
  +        <td>[Bug 4655] config.status be included in all future binary releases.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-08-02</td>
  +        <td>2001-11-23</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>[Bug 4873] ICU 2.0 breaks Xerces 1.5.2 build.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-31</td>
  +        <td>2001-11-22</td>
           <td>PeiYong Zhang</td>
  -        <td>Fix: memory leak in DFAContentModel::postTreeBuildInit().
  +        <td>Eliminate Visual C++ compiler warning C4273.
           </td>
       </tr>
   
       <tr>
  -        <td>2001/07/27</td>
  -        <td>Tinny Ng</td>
  -        <td>Fix bug in 'transcode' functions reported by Evgeniy Gabrilovich.
  +        <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-07-27</td>
  -        <td>Tinny Ng</td>
  -        <td>put getScanner() back as they were there before, not to break existing apps.
  +        <td>2001-11-21</td>
  +        <td>Peter A. Volchek and PeiYong Zhang</td>
  +        <td>Add sample SEnumVal.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-26</td>
  +        <td>2001-11-21</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 2751] Several NameChar characters missing from internal tables.
  +        <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-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>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-07-24</td>
  +        <td>2001-11-19</td>
           <td>PeiYong Zhang</td>
  -        <td>[Bug 2707] DFAContentModel memory leaks.
  +        <td>XMLFloat and XMLDouble boundary Values updated.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-19</td>
  +        <td>2001-11-16</td>
           <td>Tinny Ng</td>
  -        <td>Add IDOMCount, IDOMPrint, SAX2Count, and SAX2Print to samples.dsw.
  +        <td>Add test case InitTermTest to test XMLPlatformUtils:Initialize/Terminate() pair.
           </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>2001-11-16</td>
           <td>Khaled Noaman</td>
  -        <td>Add &lt;any&gt; declaration.
  +        <td>Design change: GeneralAttributeCheck is not longer a singleton class.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-09</td>
  +        <td>2001-11-15</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>Re-organize constant values in XMLAttDef.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-06</td>
  +        <td>2001-11-13</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>Move root element check from XMLValidator to XMLScanner
  +            and deprecate XMLValidator::checkRootElement().
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-05</td>
  +        <td>2001-11-13</td>
           <td>Tinny Ng</td>
  -        <td>Encoding String must present for external entity text decl.
  +        <td>Update documentation for SAX2XMLReader, DefaultHandler and DOMParser.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-05</td>
  +        <td>2001-11-09</td>
           <td>Tinny Ng</td>
  -        <td>Standalone checking is validity constraint and thus should be just error, not fatal error.
  +        <td>Regular Expression: Update the Block Names and Block Range to comply to the latest standard.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-07-05</td>
  -        <td>PeiYong Zhang</td>
  -        <td>Add NotationDatatypeValidator, QNameDatatypeValidator and ENTITYDatatypeValidator.
  +        <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-07-04</td>
  -        <td>PeiYong Zhang</td>
  -        <td>Add IDREFDatatypeValidator and IDDatatypeValidator.
  +        <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-07-04</td>
  -        <td>PeiYong Zhang</td>
  -        <td>XMLString:isValidName(): to validate Name (XML [4][5]).
  +        <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-07-03</td>
  +        <td>2001-11-07</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>Performance: Create QName in ContentSpecNode only if it is a leaf/Any/PCDataNode.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-06-26</td>
  +        <td>2001-11-07</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>Performance: move getRawName() to outer loop in DFAContentModel so that it
  +            is called only once per outer loop.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-06-25</td>
  +        <td>2001-11-06</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>[Bug 4644] Memory leak in schema traverser.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-06-22</td>
  -        <td>PeiYong Zhang</td>
  -        <td>[Bug 2263] 'SIZE' : redefinition ( BooleanDatatypeValidator.cpp ).
  +        <td>2001-11-02</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 4133] --prefix not used properly in configure.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-06-22</td>
  -        <td>Khaled Noaman</td>
  -        <td>[Bug 2258] Bug in Iconv and Iconv390.
  +        <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-06-22</td>
  -        <td>Tinny Ng</td>
  -        <td>[Bug 2225] assignment vs. comparison in if clause.
  +        <td>2001-11-01</td>
  +        <td>Jason Stewart</td>
  +        <td>[Bug 4578] No documentation for XMLTranscoder.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-06-22</td>
  +        <td>2001-11-01</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>IDOM: Leak: should allocate the fNodeListPool with the overloaded new.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-06-21</td>
  +        <td>2001/10/29</td>
           <td>Tinny Ng</td>
  -        <td>[Bug 2262] Duplicated header guard.
  +        <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-06-20</td>
  +        <td>2001-10-26</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>Thread safe XMLFloat and XMLDouble.
           </td>
       </tr>
   
       <tr>
  -        <td>2001-06-15</td>
  +        <td>2001-10-26</td>
           <td>Tinny Ng</td>
  -        <td>ICU 1.8.1 update.
  +        <td>Update SAX standard web link.
           </td>
       </tr>
   
  -
   </table>
   </s2>
   
  +<s2 title="Releases Archive">
   
  -<s2 title="&XercesCName; Version 1.5.0: June 15, 2001">
  -
  -<table>
  -    <tr>
  -        <td>Date</td>
  -        <td>Contributor</td>
  -        <td>Description</td>
  -    </tr>
  +    <p> For release information about &XercesCName; 1.5.2 or earlier,
  +        please refer to <jump href="releases_archive.html">Releases Archive</jump>.
  +    </p>
  +</s2>
   
  -    <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">
  +<s2 title="Releases Plan">
   
  -    <p> For release information about &XercesCName; 1.4.0 or earlier,
  -        please refer to <jump href="releases_archive.html">Release Archive</jump>.
  +    <p> For future release plan about &XercesCName;,
  +        please refer to <jump href="releases_plan.html">Releases Plan</jump>.
       </p>
   </s2>
   
  
  
  
  1.2       +1514 -4   xml-site/sources/xerces-c/releases_archive.xml
  
  Index: releases_archive.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/releases_archive.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- releases_archive.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ releases_archive.xml	8 Mar 2002 20:40:52 -0000	1.2
  @@ -3,6 +3,1516 @@
   
   <s1 title="Releases Archive">
   
  +<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 initialization 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 routines in 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.
  +        </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 message 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 existence 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 existence of MacOS Unicode Converter routines prior to instantiating our
  +	 transcoder object; Xerces will thus panic, rather than crash, if they don't exist.
  +	 Add support to check for existence 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="&XercesCName; Version 1.4.0: January 31, 2001">
   
   <table>
  @@ -311,7 +1821,7 @@
       <tr>
           <td >2000-11-30</td>
           <td >Tinny Ng</td>
  -        <td >reuseValidator - fix bugs (spurious errors) that occured on reuse due to
  +        <td >reuseValidator - fix bugs (spurious errors) that occurred on reuse due to
                pools already containing some items.
           </td>
       </tr>
  @@ -362,7 +1872,7 @@
      <tr>
           <td >2000-11-01</td>
           <td >Tinny Ng</td>
  -        <td >Scanner bug fix:  with progessive parsing, namesapce and validation
  +        <td >Scanner bug fix:  with progressive parsing, namespace and validation
                options were not being set correctly.  Symptoms included failure to detect
                ignorable white space.
           </td>
  @@ -555,7 +2065,7 @@
       <tr>
           <td >2000-09-28</td>
           <td >Andy Heninger</td>
  -        <td >DOMParser MemoryLeak fixed.  Occured when a document redefined the
  +        <td >DOMParser MemoryLeak fixed.  Occurred when a document redefined the
                 a builtin entity, e.g. &lt;.
           </td>
       </tr>
  @@ -1297,7 +2807,7 @@
       <tr>
           <td >2000-04-19</td>
           <td >Anupam Bagchi</td>
  -        <td >API document generation changed to DOxygen from Doc++</td>
  +        <td >API document generation changed to Doxygen from Doc++</td>
       </tr>
       <tr>
           <td >2000-04-18</td>
  
  
  
  1.9       +2 -0      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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- samples.xml	14 Feb 2002 16:44:20 -0000	1.8
  +++ samples.xml	8 Mar 2002 20:40:52 -0000	1.9
  @@ -3,10 +3,12 @@
   
   <s1 title="&XercesCName; Samples">
   
  +    <s2 title="Introduction">
       <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.  Sample XML data files are provided in the samples/data directory.</p>
  +    </s2>
   
       <s2 title="Building the Samples">
           <p>Please refer to the <jump href="build.html">Build Page</jump> for
  
  
  
  1.2       +1 -1      xml-site/sources/xerces-c/sax2count.xml
  
  Index: sax2count.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/sax2count.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sax2count.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ sax2count.xml	8 Mar 2002 20:40:52 -0000	1.2
  @@ -45,7 +45,7 @@
             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>
  +          <p>Note that the sum of spaces and characters in both versions is the same.</p>
   
             <note>The time reported by the program may be different depending on your
             machine processor.</note>
  
  
  
  1.2       +1 -1      xml-site/sources/xerces-c/saxcount.xml
  
  Index: saxcount.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/saxcount.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- saxcount.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ saxcount.xml	8 Mar 2002 20:40:52 -0000	1.2
  @@ -43,7 +43,7 @@
             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>
  +          <p>Note that the sum of spaces and characters in both versions is the same.</p>
   
             <note>The time reported by the program may be different depending on your
             machine processor.</note>
  
  
  
  1.2       +27 -28    xml-site/sources/xerces-c/schema.xml
  
  Index: schema.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/schema.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- schema.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ schema.xml	8 Mar 2002 20:40:52 -0000	1.2
  @@ -11,10 +11,10 @@
                    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
  +               <p>We would very much appreciate feedback on the package via the &XercesCName; 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.
  +                 <jump href="bug-report.html">Bug-Reporting</jump> page.
                    Please read this document before using this package.
                  </p>
          </s2>
  @@ -24,15 +24,6 @@
               <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>
  @@ -75,8 +66,8 @@
                  (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->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
  +parser->setFeature(XMLUni::fgSAX2XercesSchema, true);
   parser->parse(xmlFile);
   </source>
                  <p>Review the sample file, 'samples/data/personal-schema.xml' and
  @@ -85,19 +76,19 @@
          </s2>
   
          <anchor name="associate"/>
  -       <s2 title="Assocating Schema Grammar with instance document">
  +       <s2 title="Associating 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:
  +               <p>An application developer may associate schemas with instance documents through
  +                  methods <code>setExternalSchemaLocation</code> if they use namespaces, and
  +                  <code>setExternalNoNamespaceSchemaLocation</code> otherwise.
  +                (For SAX2XMLReader, use the properties:
                   "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>Here is an example with no target namespace:
                  </p>
   <source>
   // Instantiate the DOM parser.
  @@ -109,14 +100,18 @@
   
   // Instantiate the SAX2 XMLReader.
   SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
  +XMLCh* propertyValue = XMLString::transcode("personal.xsd");
  +ArrayJanitor&lt;XMLCh&gt; janValue(propertyValue);
  +
   parser->setProperty(
  -       XMLString::transcode("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"),
  -       XMLString transcode("personal.xsd"));
  +       XMLUni::fgSAX2XercesSchemaExternalNoNameSpaceSchemaLocation,
  +       propertyValue);
   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.
  +                different namespace in <code>setExternalSchemaLocation</code> than the target
  +                namespace defined in the Schema.
                  </p>
   <source>
   // Instantiate the DOM parser.
  @@ -128,10 +123,13 @@
   
   // Instantiate the SAX2 XMLReader.
   SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
  +XMLCh* propertyValue = XMLString::transcode("http://my.com personal.xsd http://my2.com test2.xsd");
  +ArrayJanitor&lt;XMLCh&gt; janValue(propertyValue);
  +
   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");
  +       XMLCh XMLUni::fgSAX2XercesSchemaExternalSchemaLocation,
  +       propertyValue);
  +parser.parse("test.xml");
   </source>
                  </s3>
                  <s3 title="Specifying Schema Grammar through attributes in the instance document:">
  @@ -140,7 +138,7 @@
                   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>Here is an example with no target namespace:
                  </p>
   <source>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
   &lt;personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  @@ -149,12 +147,13 @@
   &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.
  +                different namespace in xsi:schemaLocation attribute 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;
  +	   xsi:schemaLocation="http://my.com personal.xsd http://my2.com test2.xsd"&gt;
   ...
   &lt;/personnel&gt;
   </source>
  
  
  
  1.2       +100 -97   xml-site/sources/xerces-c/senumval.xml
  
  Index: senumval.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/senumval.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- senumval.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ senumval.xml	8 Mar 2002 20:40:52 -0000	1.2
  @@ -21,104 +21,107 @@
   <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
  +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
  +Enumeration:		
  +	    true
  +	    false
  +
  +        Name:                   note
  +        Type:                   CDATA
  +        Default Type:   #IMPLIED
  +        Base Datatype:          string
  +
  +--------------------------------------------
  +Name:                   name
  +Model Type:             Children
  +Create Reason:  Declared
  +ContentType:    All
  +Content Model:	All(family,given)
  +ComplexType:
  +        TypeName:       ,C3
  +        ContentType:    All
  +--------------------------------------------
  +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>
  
  
  
  1.2       +1 -1      xml-site/sources/xerces-c/stdinparse.xml
  
  Index: stdinparse.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xerces-c/stdinparse.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- stdinparse.xml	14 Feb 2002 16:44:20 -0000	1.1
  +++ stdinparse.xml	8 Mar 2002 20:40:52 -0000	1.2
  @@ -42,7 +42,7 @@
             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>
  +          <p>Note that the sum of spaces and characters in both versions is the same.</p>
   
             <note>The time reported by the program may be different depending on your
             machine processor.</note>
  
  
  
  1.1                  xml-site/sources/xerces-c/faq-build.xml
  
  Index: faq-build.xml
  ===================================================================
  <?xml version="1.0" encoding = "iso-8859-1" standalone="no"?>
  <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  
  <faqs title="Building / Running FAQs">
  
    <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>
  
  
    <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="Building &XercesCName; with compiler GCC 2.7.x or 2.8.x gives problem, what's wrong?">
  
      <q>Building &XercesCName; with compiler GCC 2.7.x or 2.8.x gives problem, what's wrong?</q>
  
      <a>
         <p>Users using GCC 2.7.x or 2.8.x may have unsuccessful compile/link/run experience with
            &XercesCName;.  There were issues related to templates and multi threaded exception
            handling with this old version GCC compiler.
         </p>
  
         <p>Please upgrade to at least GCC 2.95.2.
         </p>
  
      </a>
    </faq>
  
    <faq title="Why does my application gives unresolved linking errors on Solaris?">
  
      <q>Why does my application gives unresolved linking errors on Solaris?</q>
  
      <a>
  
        <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 (please refer to
          <jump href="faq-distrib.html#faq-1">FAQ: What compilers are being used
          on the supported platforms?</jump>).  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>
  
        <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>
  
    <faq title="Why does my application gives unresolved linking errors on AIX?">
  
      <q>Why does my application gives unresolved linking errors on AIX?</q>
  
      <a>
  
        <p>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
          (please refer to <jump href="faq-distrib.html#faq-1">FAQ: What compilers are
          being used on the supported platforms?</jump>).  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>
  
        <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>
  
    <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>
  
    <faq title="I cannot run the sample applications. What is wrong?">
  
      <q>I cannot run the sample applications. What is wrong?</q>
  
      <a>
  
        <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>
  
        <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>
  
    <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>
  
      <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 <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="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">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="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>xercesc/util/PlatformUtils.hpp</code> file for this to work.</p>
  
      </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="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>
  
      <a>
  
        <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>&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>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>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>
  
      </a>
    </faq>
  
    <faq title="Fatal Error: Cannot open include file: XXX: No such file or directory">
      <q>"Fatal Error: Cannot open include file: XXX: No such file or directory"?</q>
      <a>
        <p>
  	      Due to the recent directory change, you may need to either update your
  		  project file, makefile, or your source/header file, for details,
            please refer to <jump href="migrate.html#DirChange">Directory Change. </jump></p>
      </a>
    </faq>
  
  </faqs>
  
  
  
  1.1                  xml-site/sources/xerces-c/program-dom.xml
  
  Index: program-dom.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="DOM Programming Guide">
  
      <anchor name="DOMProgGuide"/>
      <anchor name="JAVAandCPP"/>
      <s2 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
          existing Java code that makes use of the DOM to C++ is a
          straight forward process.
        </p>
        <p>
          This section outlines the differences between Java and C++ bindings.
        </p>
      </s2>
  
      <anchor name="AccessAPI"/>
      <s2 title="Accessing the API from application code">
  
  <source>
  // C++
  #include &lt;xercesc/dom/DOM.hpp></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>
  
      </s2>
  
      <anchor name="ClassNames"/>
      <s2 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
          that may already be in use by an application or other
          libraries that a DOM based application must link with.</p>
  
          <p>The use of C++ namespaces would also have solved this
          conflict problem, but for the fact that many compilers do not
          yet support them.</p>
  
  <source>DOM_Document   myDocument;   // C++
  DOM_Node       aNode;
  DOM_Text       someText;</source>
  
  <source>Document       myDocument;   // Java
  Node           aNode;
  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>typedef DOM_Document  Document;
  typedef DOM_Node      Node;
  
  Document   myDocument;        // Now C++ usage is
                                // indistinguishable from Java
  Node       aNode;</source>
      </s2>
  
  
      <anchor name="ObjMemMgmt"/>
      <s2 title="Objects and Memory Management">
        <p>The C++ DOM implementation uses automatic memory management,
          implemented using reference counting.  As a result, the C++
          code for most DOM operations is very similar to the equivalent
          Java code, right down to the use of factory methods in the DOM
          document class for nearly all object creation, and the lack of
          any explicit object deletion.</p>
  
        <p>Consider the following code snippets </p>
  
  <source>// This is C++
  DOM_Node       aNode;
  aNode = someDocument.createElement("ElementName");
  DOM_Node docRootNode = someDoc.getDocumentElement();
  docRootNode.AppendChild(aNode);</source>
  
  <source>// This is Java
  Node       aNode;
  aNode = someDocument.createElement("ElementName");
  Node docRootNode = someDoc.getDocumentElement();
  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
          code. </p>
  
        <p>However, Java and C++ handle objects in somewhat different
          ways, making it important to understand a little bit of what
          is going on beneath the surface.</p>
  
        <p>In Java, the variable <code>aNode</code> is an object reference ,
          essentially a pointer. It is initially == null, and references
          an object only after the assignment statement in the second
          line of the code.</p>
  
        <p>In C++ the variable <code>aNode</code> is, from the C++ language's
          perspective, an actual live object. It is constructed when the
          first line of the code executes, and DOM_Node::operator = ()
          executes at the second line. The C++ class DOM_Node
          essentially a form of a smart-pointer; it implements much of
          the behavior of a Java Object Reference variable, and
          delegates the DOM behaviors to an implementation class that
          lives behind the scenes. </p>
  
        <p>Key points to remember when using the C++ DOM classes:</p>
  
        <ul>
          <li>Create them as local variables, or as member variables of
          some other class. Never "new" a DOM object into the heap or
          make an ordinary C pointer variable to one, as this will
          greatly confuse the automatic memory management. </li>
  
          <li>The "real" DOM objects - nodes, attributes, CData
          sections, whatever, do live on the heap, are created with the
          create... methods on class DOM_Document. DOM_Node and the
          other DOM classes serve as reference variables to the
          underlying heap objects.</li>
  
          <li>The visible DOM classes may be freely copied (assigned),
          passed as parameters to functions, or returned by value from
          functions.</li>
  
          <li>Memory management of the underlying DOM heap objects is
          automatic, implemented by means of reference counting. So long
          as some part of a document can be reached, directly or
          indirectly, via reference variables that are still alive in
          the application program, the corresponding document data will
          stay alive in the heap. When all possible paths of access have
          been closed off (all of the application's DOM objects have
          gone out of scope) the heap data itself will be automatically
          deleted. </li>
  
          <li>There are restrictions on the ability to subclass the DOM
          classes. </li>
  
        </ul>
  
      </s2>
  
      <anchor name="DOMString"/>
      <s2 title="DOMString">
        <p>Class DOMString provides the mechanism for passing string
          data to and from the DOM API. DOMString is not intended to be
          a completely general string class, but rather to meet the
          specific needs of the DOM API.</p>
  
        <p>The design derives from two primary sources: from the DOM's
          CharacterData interface and from class <code>java.lang.string</code>.</p>
  
        <p>Main features are:</p>
  
        <ul>
          <li>It stores Unicode text.</li>
  
          <li>Automatic memory management, using reference counting.</li>
  
          <li>DOMStrings are mutable - characters can be inserted,
          deleted or appended.</li>
  
        </ul>
        <p></p>
  
        <p>When a string is passed into a method of the DOM, when
          setting the value of a Node, for example, the string is cloned
          so that any subsequent alteration or reuse of the string by
          the application will not alter the document contents.
          Similarly, when strings from the document are returned to an
          application via the DOM API, the string is cloned so that the
          document can not be inadvertently altered by subsequent edits
          to the string.</p>
  
        <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://oss.software.ibm.com/icu/">IBM
          DeveloperWorks website</jump>.</note>
  
      </s2>
  
      <anchor name="EqualityTesting"/>
      <s2 title="Equality Testing">
        <p>The DOMString equality operators (and all of the rest of the
          DOM class conventions) are modeled after the Java
          equivalents. The equals() method compares the content of the
          string, while the == operator checks whether the string
          reference variables (the application program variables) refer
          to the same underlying string in memory. This is also true of
          DOM_Node, DOM_Element, etc., in that operator == tells whether
          the variables in the application are referring to the same
          actual node or not. It's all very Java-like </p>
  
        <ul>
          <li>bool operator == () is true if the DOMString variables
          refer to the same underlying storage. </li>
  
          <li>bool equals() is true if the strings contain the same
          characters. </li>
  
        </ul>
        <p>Here is an example of how the equality operators work: </p>
  <source>DOMString a = "Hello";
  DOMString b = a;
  DOMString c = a.clone();
  if (b == a)           //  This is true
  if (a == c)           //  This is false
  if (a.equals(c))       //  This is true
  b = b + " World";
  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>
      </s2>
  
      <anchor name="Downcasting"/>
      <s2 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>// This is C++
  DOM_Node       aNode = someFunctionReturningNode();
  DOM_Element    el = (DOM_Element &amp;) aNode;</source>
  
  <source>// This is Java
  Node       aNode = someFunctionReturningNode();
  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>// This is C++
  
  DOM_Node       aNode = someFunctionReturningNode();
  DOM_Element    el;    // by default, el will == null.
  
  if (anode.getNodeType() == DOM_Node::ELEMENT_NODE)
     el = (DOM_Element &amp;) aNode;
  else
     // aNode does not refer to an element.
     // Do something to recover here.</source>
  
      </s2>
  
      <anchor name="Subclassing"/>
      <s2 title="Subclassing">
        <p>The C++ DOM classes, DOM_Node, DOM_Attr, DOM_Document, etc.,
          are not designed to be subclassed by an application
          program. </p>
  
        <p>As an alternative, the DOM_Node class provides a User Data
          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>
      </s2>
  
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/program-idom.xml
  
  Index: program-idom.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Experimental IDOM Programming Guide">
      <anchor name="IDOMProgGuide"/>
      <s2 title="Experimental">
      <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>
      </s2>
  
      <anchor name="ConstructIDOMParser"/>
      <s2 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>
      </s2>
  
      <anchor name="DOMandIDOM"/>
      <s2 title="Comparison of C++ DOM and IDOM">
        <p>
          This section outlines the differences between the C++ DOM and IDOM APIs.
        </p>
      </s2>
  
      <anchor name="Motivation"/>
      <s2 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>
      </s2>
  
      <anchor name="IDOMClassNames"/>
      <s2 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>
      </s2>
  
      <anchor name="IDOMObjMgmt"/>
      <s2 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>
     </s2>
  
  
      <anchor name="IDOMMemMgmt"/>
      <s2 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 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 implicit and explicit object deletion.
        </p>
      </s2>
  
      <anchor name="IDOMMemImplicit"/>
        <s2 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>
        </s2>
  
      <anchor name="IDOMMemExplicit"/>
        <s2 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 explicitly 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 explicitly 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 explicitly delete the DocumentType 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 DocumentType 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 DocumentType 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 DocumentType 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>
        </s2>
  
        <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"/>
      <s2 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>
      </s2>
  
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/program-sax.xml
  
  Index: program-sax.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="SAX1 Programming Guide">
  
      <anchor name="SAX1ProgGuide"/>
      <anchor name="ConstructParser"/>
      <s2 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
          below shows the code you need in order to create an instance
          of SAXParser. The DocumentHandler and ErrorHandler instances
          required by the SAX API are provided using the HandlerBase
          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";
      SAXParser* parser = new SAXParser();
      parser->setDoValidation(true);    // optional.
  	parser->setDoNamespaces(true);    // optional
  
      DocumentHandler* docHandler = new HandlerBase();
      ErrorHandler* errHandler = (ErrorHandler*) docHandler;
      parser->setDocumentHandler(docHandler);
      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>
      </s2>
  
      <anchor name="UsingSAX1API"/>
      <s2 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
          C++, and that use of the &XercesCName; SAX API does not
          guarantee client code compatibility with other C++ XML
          parsers.</p>
  
        <p>The SAX API presents a callback based API to the parser. An
          application that uses SAX 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 DocumentHandler which is
          called when XML constructs are recognized, and ErrorHandler
          which is called when an error occurs. The header files for the
          various SAX handler classes are in
          '&lt;&XercesCInstallDir;>/include/xercesc/sax'</p>
  
        <p>As a convenience, &XercesCName; provides the class
          HandlerBase, which is a single class which is publicly derived
          from all the Handler classes. HandlerBase'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 HandlerBase 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 MySAXHandler.hpp:</p>
  <source>#include &lt;xercesc/sax/HandlerBase.hpp>
  
  class MySAXHandler : public HandlerBase {
  public:
      void startElement(const XMLCh* const, AttributeList&amp;);
      void fatalError(const SAXParseException&amp;);
  };</source>
  
        <p>This is the implementation file MySAXHandler.cpp:</p>
  
  <source>#include "MySAXHandler.hpp"
  #include &lt;iostream.h>
  
  MySAXHandler::MySAXHandler()
  {
  }
  
  MySAXHandler::startElement(const XMLCh* const name,
                             AttributeList&amp; attributes)
  {
      // 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 &lt;&lt; "I saw element: " &lt;&lt; transcode(name) &lt;&lt; endl;
  }
  
  MySAXHandler::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 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>
      </s2>
  
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/program-sax2.xml
  
  Index: program-sax2.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="SAX2 Programming Guide">
  
      <anchor name="SAX2ProgGuide"/>
      <anchor name="ConstructParser2"/>
      <s2 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(XMLUni::fgSAX2CoreValidation, true)   // optional
      parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true)   // optional
  
      DefaultHandler* defaultHandler = new DefaultHandler();
      parser->setContentHandler(defaultHandler);
      parser->setErrorHandler(defaultHandler);
  
      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>
      </s2>
  
      <anchor name="UsingSAX2API"/>
      <s2 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/xercesc/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;xercesc/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>
      </s2>
  
      <anchor name="SAX2Features"/>
      <s2 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 original prefixed names and attributes used for Namespace declarations </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. (default)</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 restriction 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>
  
      </s2>
  
      <anchor name="SAX2Properties"/>
      <s2 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 accessibility 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>
  
      </s2>
  
  </s1>
  
  
  
  1.1                  xml-site/sources/xerces-c/releases_plan.xml
  
  Index: releases_plan.xml
  ===================================================================
  <?xml version="1.0"  encoding="iso-8859-1" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Future Releases Plan">
  
  <s2 title="&XercesCName; Future Releases Plan">
  <p>This document highlights the release plan for &XercesCName;.</p>
  <s3 title="Current Status"><p>&XercesCName; 1.7.0 - released on March 8, 2002.</p></s3>
  <s3 title="Next Target Release"><p>&XercesCName; 1.8.0 - plan to be released in June or July.</p></s3>
  <s3 title="&XercesCName; Features list">
  <p> The following table lists the TODO items for &XercesCName;.  It does not include fixing
  bugs that are opened in Bugzilla; unless such Bugzilla bug involves a major development
  effort and requires an architectural redesign, or is an enhancement suggestion.</p>
  <p> Only those features that have volunteer identified will have a 'Target Date'.
  Those features that have 'Complete' status will be included in the 'Next Target Release'.
  </p>
  <table>
      <tr>
          <td>Features</td>
          <td>Development Volunteer</td>
          <td>Target Date</td>
          <td>Status</td>
      </tr>
  
      <tr>
          <td>Report Schema Error with matching column number and line number.</td>
          <td>Khaled Noaman</td>
          <td>March</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Claim IDOM as non-experimental, and as Apache Recommended DOM C++ Binding</td>
          <td>Tinny Ng</td>
          <td>March</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Update 32 bit Solaris binary distribution from Solaris 2.6 to Solaris 2.7</td>
          <td>Tinny Ng</td>
          <td>April</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Add feature http://apache.org/xml/features/nonvalidating/load-external-dtd to
              optionally ignore external DTD</td>
          <td>Tinny Ng</td>
          <td>April</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Produce 64 bit binary distribution for AIX</td>
          <td>PeiYong Zhang</td>
          <td>April</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Produce 64 bit binary distribution for Solaris</td>
          <td>PeiYong Zhang</td>
          <td>April</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Produce 64 bit binary distribution for HP</td>
          <td>PeiYong Zhang</td>
          <td>April</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Produce 64 bit binary distribution for Linux</td>
          <td>PeiYong Zhang</td>
          <td>May</td>
          <td></td>
      </tr>
  
      <tr>
          <td>Produce 64 bit binary distribution for Windows</td>
          <td>PeiYong Zhang</td>
          <td>May</td>
          <td></td>
      </tr>
  
      <tr>
          <td>DOM Level 3 Core</td>
          <td>Tinny Ng</td>
          <td>April</td>
          <td></td>
      </tr>
  
      <tr>
          <td>DOM Level 3 Load and Save</td>
          <td>Tinny Ng</td>
          <td>May</td>
          <td></td>
      </tr>
  
      <tr>
          <td>DOM Level 3 Abstract Schema Load and Save</td>
          <td>Khaled Noaman</td>
          <td>April</td>
          <td></td>
      </tr>
  
      <tr>
          <td>[Bug 5563] Add capacity to build Xerces as static library</td>
          <td></td>
          <td></td>
          <td></td>
      </tr>
  
      <tr>
          <td>XML 1.1</td>
          <td></td>
          <td></td>
          <td></td>
      </tr>
  
  </table>
  </s3>
  </s2>
  
  </s1>
  
  
  

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


Mime
View raw message