xml-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From p...@locus.apache.org
Subject cvs commit: xml-site/xerces-c apidocs.xml caveats.xml faq-distrib.xml faq-other.xml faq-parse.xml feedback.xml install.xml program.xml readme.xml releases.xml samples.xml
Date Thu, 02 Dec 1999 00:09:35 GMT
pier        99/12/01 16:09:35

  Modified:    xerces-c apidocs.xml caveats.xml faq-distrib.xml
                        faq-other.xml faq-parse.xml feedback.xml
                        install.xml program.xml readme.xml releases.xml
                        samples.xml
  Log:
  New documentation package for Xerces-C. Thanks to Anupam Bagchi <abagchi@us.ibm.com>.
  
  Revision  Changes    Path
  1.2       +7 -7      xml-site/xerces-c/apidocs.xml
  
  Index: apidocs.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/apidocs.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apidocs.xml	1999/11/15 21:44:14	1.1
  +++ apidocs.xml	1999/12/02 00:09:34	1.2
  @@ -2,27 +2,27 @@
   <!DOCTYPE s1 SYSTEM "../dtd/document.dtd">
   
   <s1 title="API Documentation">
  -	<s2 title="API Docs for SAX and DOM9">
  +    <s2 title="API Docs for SAX and DOM">
   
  -    <p>XML4C comes packaged with the API documentation for SAX and DOM - the two
  +    <p>&productname; comes packaged with the API documentation for SAX and DOM - the two
                     most common interfaces for programming XML. In addition the most common
                     framework classes have also been documented.</p>
  -    <p>The XML4C DOM is an implementation of  the Core Level 1 Document Object
  +    <p>The &productname; DOM is an implementation of  the Core Level 1 Document Object
                     model as defined in the W3C Recommendation of 1 October, 1998.  The W3C
                     document is at
                     <jump href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html">
                     http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html</jump>
       </p>
  -    <p>For a complete understanding of how the XML4C APIs work, we highly
  +    <p>For a complete understanding of how the &productname; APIs work, we highly
                     encourage you to read the DOM Level 1 Specification mentioned above.</p>
       <p>The SAX APIs are derived from the SAX 1.0 Specification which may be found at
                     <jump href="http://www.megginson.com/SAX/index.html">http://www.megginson.com/SAX/index.html</jump>. You are also encouraged to read
  -                  this document for a better understanding of the SAX API in XML4C.</p>
  -    <p><jump href="apiDocs/index.html"><em>Click here to access the Xerces-C API documentation.</em></jump></p>
  +                  this document for a better understanding of the SAX API in &productname;.</p>
  +    <p><jump href="apiDocs/index.html"><em>Click here to access the &productname; API documentation.</em></jump></p>
       <note>The documentation is generated automatically from the comments inside
                     the headers using <jump href="http://www.zib.de/Visual/software/doc++/index.html">DOC++</jump> and then massaged through a script.</note>
   
  -	</s2>
  +    </s2>
   
   
   </s1>
  
  
  
  1.2       +9 -30     xml-site/xerces-c/caveats.xml
  
  Index: caveats.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/caveats.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- caveats.xml	1999/11/15 21:44:15	1.1
  +++ caveats.xml	1999/12/02 00:09:34	1.2
  @@ -3,37 +3,16 @@
   
   <s1 title="Caveats and Limitations">
   
  -	<s2 title="Encodings">
  -		<ul>
  -			<li>Encodings cannot be arbitrarily set programmatically,
  -     i.e. we only go by the encoding that is auto-sensed
  -     or found in encoding=""</li>
  -		</ul>
  -	</s2>
  -
  -	<s2 title="Validation">
  -		<ul>
  -			<li>Validation of notations/enumerations is not complete.
  -     For instance you can have a notation or enumeration
  -     type attribute that does not refer to the valid
  -     notations or enum values listed in the attribute
  -     type.</li>
  -		</ul>
  -	</s2>
  -
  -	<s2 title="Miscellaneous">
  -		<ul>
  -			<li>SAXPrint does not output the &lt;?XML ... ?&gt; prologue
  -     line (this means that it cannot process its own
  +<s2 title="Miscellaneous">
  +    <ul>
  +        <li>SAXPrint does not output the &lt;?XML ... ?&gt; prologue
  + line (this means that it cannot process its own
   output). This is because the SAX API doesn't provide
   a callback handler for the prologue.</li>
  -			<li>Only URL's of the form 'file://' are currently
  -     supported. Others will be supported in future
  -     versions (we're adding code to call libwww for this support).</li>
  -			<li>Error text is not translatable yet, its only in
  -     English (we're working on this).</li>
  -			<li>There is no catalog support.</li>
  -		</ul>
  -	</s2>
  +        <li>Only URL's of the form 'file://' are currently
  + supported. Others will be supported in future
  + versions (we're adding code to call libwww for this support).</li>
  +    </ul>
  +</s2>
   
   </s1>
  
  
  
  1.2       +210 -8    xml-site/xerces-c/faq-distrib.xml
  
  Index: faq-distrib.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/faq-distrib.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- faq-distrib.xml	1999/11/15 21:44:16	1.1
  +++ faq-distrib.xml	1999/12/02 00:09:34	1.2
  @@ -1,13 +1,215 @@
  -<?xml version="1.0" standalone="no"?>
  +<?xml version="1.0" ?>
   <!DOCTYPE s1 SYSTEM "../dtd/faqs.dtd">
   
  -<faqs title="Parsing with Xerces-C">
  -	<faq title="FAQ?">
  -		<q>Will we be writing this section?</q>
  -		<a> 
  -		    <p>Yes.  Stay tuned.</p>
  -		</a>
  -	</faq>
  +<faqs title="Distributing &productname;">
   
  +<faq title="Which DLL's do I need to distribute with my application?">
  +
  +<q>Which DLL's do I need to distribute with my application?</q>
  +<a>
  +<p>The current &projectname; distribution contains TWO shared
  +libraries, &windowslibname;.dll and icuuc.dll. To distribute
  +your application, you will need to distribute these two
  +DLLs along with your own. On AIX the shared library name
  +is &unixlibname;.a and libicu-uc.a, on Solaris/Linux it is
  +called &unixlibname;.so and libicu-uc.so while on HP-UX it
  +is called &unixlibname;.sl and libicu-uc.sl.</p>
  +</a>
  +
  +</faq>
  +
  +<faq title="How do I package the sources to create a binary drop?">
  +<q>How do I package the sources to create a binary drop?</q>
  +
  +<a>
  +<p>You have to first compile the sources inside your IDE to
  +create the required DLLs and EXEs. Then you need to copy
  +over the binaries to another directory for the binary
  +drop. A perl script has been provided to give you a jump
  +start. You need to install perl on your machine for the script to work.
  +The file may not work if you have changed your
  +source tree. You have to modify the script to suit
  +your current state of the source tree. To invoke the
  +script, go to the \&lt;&projectname;&gt;\scripts directory, and type:</p>
  +
  +<source>
  +perl packageBinaries.pl
  +</source>
  +
  +<p>You will get a message that looks like: </p>
  +
  +<source>
  +Usage is: packageBinaries &lt;options&gt;
  +          options are:  -s &lt;source_directory&gt;
  +                        -o &lt;target_directory&gt;
  +                        -c &lt;C compiler name&gt; (e.g. gcc or xlc)
  +                        -x &lt;C++ compiler name&gt; (e.g. g++ or xlC)
  +                        -m &lt;message loader&gt; can be 'inmem', 'icu' or 'iconv'
  +                        -n &lt;net accessor&gt; can be 'fileonly' or 'libwww'
  +                        -t &lt;transcoder&gt; can be 'icu' or 'native'
  +                        -r &lt;thread option&gt; can be 'pthread' or 'dce' (only used on HP-11)
  +                        -h to get help on these commands
  +Example: perl packageBinaries.pl -s$HOME/xerces-c_1_0_0 -o$HOME/xerces-c_1_0_0 -cgcc -xg++ -minmem -nfileonly -tnative
  +</source>
  +
  +<p>Make sure that your compiler can be invoked from the command line and
  +follow the instructions to produce a binary drop.</p>
  +</a>
  +
  +</faq>
  +
  +<faq title="When will a port to my platform be available?">
  +
  +<q>When will a port to my platform be available?</q>
  +
  +<a>
  +<p>Ports to other platforms are planned, but dates are not
  +fixed yet. In the meantime, look below to see a
  +description of the steps you need to follow to port it to
  +another platform.</p>
  +
  +<p>We strongly encourage you to submit the changes that were
  +required to make it work on another platform. We will
  +incorporate these changes in the source code base and make
  +them available in the future releases.</p>
  +
  +<p>All such changes may be sent to &emailaddress;.</p>
  +</a>
  +
  +</faq>
  +<faq title="How can I port &projectname; to my favourite platform?">
  +
  +<q>How can I port &projectname; to my favourite platform?</q>
  +
  +<a>
  +<p>All platform dependent code in &projectname; has been isolated to
  +a couple of files, which should ease the porting effort.
  +Here are the basic steps that should be followed to port
  +&projectname;.</p>
  +
  +<ol>
  +<li>The directory 'src/util/Platforms' contains the
  +platform and development environment sensitive files. Each
  +operating system has a file of its own and each
  +development environment has another one of its own. (if
  +that development environment covers multiple platforms you
  +could use one internally <i>ifdef'd</i> or have multiple ones
  +with different names).
  +<br></br>
  +<br></br>
  +As an example, the Win32 platform as a Win32Defs.hpp file
  +and the Visual C++ environment has a VCPPDefs.hpp file.
  +These files set up certain define tokens, typedefs,
  +constants, etc... that will drive the rest of the code to
  +do the right thing for that platform and development
  +environment. AIX/CSet have their own AIXDefs.hpp and
  +CSetDefs.hpp files, and so on. You should create new
  +versions of these files for your platform and environment
  +and follow the comments in them to set up your own.
  +Probably the comments in the Win32 and Visual C++ will be
  +the best to follow, since that is where the main
  +development is done.</li>
  +
  +<li>Next, edit the file XML4CDefs.hpp , which is where all
  +of the fundamental stuff comes into the system. You will
  +see conditional sections in there where the above
  +per-platform and per-environment headers are brought in.
  +Add the new ones for your platform under the appropriate
  +conditionals.</li>
  +
  +<li>Now edit 'AutoSense.hpp'. Here we set canonical &projectname;
  +internal #define tokens which indicate the platform and
  +compiler. These definitions are based on known platform
  +and compiler defines.
  +<br></br>
  +AutoSense.hpp is included in XML4CDefs.hpp and the
  +canonical platform and compiler settings thus defined will
  +make the particular platform and compiler headers to be
  +the included at compilation.
  +<br></br>
  +It might be a little tricky to decipher this file so be
  +careful. If you are using say another compiler on Win32,
  +probably it will use similar tokens so that the platform
  +will get picked up already using what is already there.</li>
  +
  +<li>Once this is done, you will then need to implement a
  +version of the 'platform utilities' for your platform.
  +Each operating system has a file which implements some
  +methods of the XMLPlatformUtils class, specific to that
  +operating system. These are not terribly complex, so it
  +should not be a lot of work. The Win32 verions is called
  +Win32PlatformUtils.cpp, the AIX version is
  +AIXPlatformUtils.cpp and so on. Create one for your
  +platform, with the correct name, and empty out all of the
  +implementation so that just the empty shells of the
  +methods are there (with dummy returns where needed to make
  +the compiler happy.) Once you've done that, you can start
  +to get it to build without any real implementation.</li>
  +
  +<li>Once you have the system building, then start
  +implementing your own platform utilties methods. Follow
  +the comments in the Win32 version as to what they do, the
  +comments will be improved in subsequent versions, but they
  +should be fairly obvious now. Once you have these
  +implementations done, you should be able to start
  +debugging the system using the demo programs.</li>
  +</ol>
  +
  +<p>That is the work required in a nutshell.</p>
  +
  +</a>
  +
  +</faq>
  +<faq title="I'm interested to know what application you used to create
  +the documentation?">
  +
  +<q>I'm interested to know what application you used to create
  +the documentation?</q>
  +
  +<a>
  +<p>We have used an internal XML based application to create the
  +documentation. The documentation files are all written in XML and the
  +application, internally codenamed StyleBook, makes use of XSL to transform
  +it into an HTML document.</p>
  +
  +<p>The API documentation was created using DOC++ which is
  +available from</p>
  +
  +<p><jump href="http://www.zib.de/Visual/software/doc++/index.html">
  +http://www.zib.de/Visual/software/doc++/index.html</jump></p>
  +</a>
  +
  +</faq>
  +<faq title="Can I get the source code for the C++ Builder TreeViewer">
  +
  +
  +<q>Can I get the source code for the C++ Builder TreeViewer
  +application whose screen shot appears on the front page of
  +&projectname; documentation?</q>
  +
  +<a>
  +<p>In view of the numerous requests that we have received for
  +the TreeViewer sample application (written using C++
  +Builder), we have decided to make it available as an
  +independent download from IBM's AlphaWorks portal. Please
  +note, this is provided on a "as-is, no support" basis.</p>
  +
  +<p>This demo application parses the XML file, using &projectname;,
  +IBM's XML parser for C++, and displays the data as a tree.</p>
  +
  +<p>The URL is: <jump href="http://www.alphaworks.ibm.com">http://www.alphaWorks.ibm.com</jump></p>
  +
  +<p>We welcome your additional feedback at: &emailaddress;</p>
  +</a>
  +
  +</faq>
  +<faq title="Can I use &projectname; in my product?">
  +
  +<q>Can I use &projectname; in my product?</q>
  +<a>
  +<p>Yes! Read the license agreement first and contact us at
  +&emailaddress; if you need assistance.</p>
  +</a>
  +</faq>
   </faqs>
   
  
  
  
  1.2       +39 -7     xml-site/xerces-c/faq-other.xml
  
  Index: faq-other.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/faq-other.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- faq-other.xml	1999/11/15 21:44:19	1.1
  +++ faq-other.xml	1999/12/02 00:09:34	1.2
  @@ -1,13 +1,45 @@
   <?xml version="1.0" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "../dtd/faqs.dtd">
   
  -<faqs title="Other Xerces-C Questions">
  -	<faq title="Other?">
  -		<q>Will we be writing this section?</q>
  -		<a> 
  -		    <p>Yes.  Stay tuned.</p>
  -		</a>
  -	</faq>
  +<faqs title="Other &productname; Questions">
  +
  +<faq title="I can't use C++. Do you have a Java version?">
  +
  +<q>I can't use C++. Do you have a Java version?</q>
  +
  +<a> <p>Yes. The &projectname; family of products also has a Java version.</p>
  +</a>
  +
  +</faq>
  +<faq title="I found a bug - what do I do?">
  +
  +<q>I found a bug - what do I do?</q>
  +
  +<a> <p>Send the bug report to &emailaddress; with the version number,
  +the exact OS release number, the compiler version number, and a
  +copy of the XML document that generates the error. The more
  +information you can provide, the faster we can get a fix into the
  +build!</p>
  +</a>
  +
  +</faq>
  +<faq title="I have a question not covered here, or in the documentation -- who
  +do I contact?">
  +
  +<q>I have a question not covered here, or in the documentation -- who
  +do I contact?</q>
  +
  +<a>
  +First post your question on the
  +<jump href="http://www.alphaworks.ibm.com/aw.nsf/discussion?ReadForm&amp;/forum/xml4c.nsf/discussion?createdocument">XML4C
  +discussion group on Alphaworks</jump>, and
  +someone from the XML4C development team will answer that question. The list is
  +monitored very closely and the response is usually within 24 hours. If you need to
  +ask a special question privately, send email to <jump href="mailto:&emailaddress;">&emailaddress;</jump> and give us
  +as much information as you can. We'll get back to you as soon as possible!
  +</a>
  +
  +</faq>
   
   </faqs>
   
  
  
  
  1.2       +818 -7    xml-site/xerces-c/faq-parse.xml
  
  Index: faq-parse.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/faq-parse.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- faq-parse.xml	1999/11/15 21:44:21	1.1
  +++ faq-parse.xml	1999/12/02 00:09:34	1.2
  @@ -1,13 +1,824 @@
   <?xml version="1.0" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "../dtd/faqs.dtd">
   
  -<faqs title="Parsing with Xerces-C">
  -	<faq title="FAQ?">
  -		<q>Will we be writing this section?</q>
  -		<a> 
  -		    <p>Yes.  Stay tuned.</p>
  -		</a>
  -	</faq>
  +<faqs title="Parsing with &productname;">
  +    <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
  +          MUST ensure that you do not have a 'system library path' in
  +          your LIBPATH environment variable when you run the
  +          application. The appropriate libraries (threaded or
  +          non-threaded) are automatically picked up at runtime. An
  +          application usually crashes when you build your application
  +          for multi-threaded operation but don't point to the
  +          thread-safe version of the system libraries. For example,
  +          LIBPATH can be simply set as:</p>
  +
  +        <source>
  +LIBPATH=$HOME/&lt;&projectname;&gt;/lib
  +</source>
  +
  +        <p>Where &lt;&projectname;&gt; points to the directory where
  +          &projectname; application resides.</p>
  +
  +        <p>If for any reason, unrelated to &projectname;, 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 <i>/lib/threads</i> before
  +          <i>/lib</i> in your LIBPATH variable. That is to say your
  +          LIBPATH may look like this:</p>
  +
  +        <source>
  +export LIBPATH=$HOME/&lt;&projectname;&gt;/lib:/usr/lib/threads:/usr/lib
  +</source>
  +
  +        <p>Where /usr/lib is where your system libraries are.</p>
  +      </a>
  +  </faq>
  +
  +  <faq title="What compilers are being used on the supported platforms?">
  +
  +    <q>What compilers are being used on the supported platforms?</q>
  +
  +    <a>
  +      <p>&projectname; has been built on the following platforms with these
  +        compilers</p>
  +
  +      <table>
  +        <tr><td><em>Operating System</em></td><td><em>Compiler</em></td></tr>
  +        <tr><td>Windows NT SP5/98</td><td>MSVC 6.0</td></tr>
  +        <tr><td>Redhat Linux 6.0</td><td>gcc</td></tr>
  +      </table>
  +      <p>Platforms ports to done</p>
  +      <table>
  +        <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>
  +    </a>
  +  </faq>
  +
  +  <faq title="I cannot run my sample applications. What is wrong?">
  +
  +    <q>I cannot run my sample applications. What is wrong?</q>
  +    <a>
  +      <p>There are two major installation issues which must be dealt
  +        with in order to use &projectname; from your applications. The
  +        DLL or shared library must be locatable via the system's
  +        environment. And, the converter files used by &projectname; for
  +        its transcoding must be locatable.
  +      </p>
  +      <p>On UNIX platforms you need to ensure that your library search
  +        environment variable includes the directory which has the
  +        &projectname; shared library (On AIX, this is LIBPATH, on
  +        Solaris and Linux it is LD_LIBRARY_PATH while on HP-UX it is
  +        SHLIB_PATH). Thus, if you installed your binaries under
  +        <code>$HOME/fastxmlparser</code>, you need to point your
  +        library path to that directory.
  +      </p>
  +
  +      <source>
  +export LIBPATH=$LIBPATH:$HOME/fastxmlparser/lib # (AIX)
  +
  +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/fastxmlparser/lib # (Solaris, Linux)
  +
  +export SHLIB_PATH=$SHLIB_PATH:$HOME/fastxmlparser/lib # (HP-UX)
  +</source>
  +
  +      <p>On Win32, you would ensure that the &projectname; DLLs are in
  +        the PATH environment.</p>
  +
  +      <p>For the transcoding files <code>(*.cnv)</code>, the most
  +        easiest mechanism, which is used in the binary release, is to
  +        place them relative to the shared library or DLL. The
  +        transcoding converter files should be in the
  +        <code>icu/data</code> directory relative to the shared library
  +        or DLL. This will allow them to be located automatically.</p>
  +
  +      <p>However, if you redistribute &projectname; within some other
  +        product, and cannot maintain this relationship, or if your
  +        build scenario does not allow you to maintain this
  +        relationship during debugging for instance, you can use the
  +        ICU_DATA environment variable to point to these converter
  +        files. This variable may be set system wide, within a
  +        particular command window, or just within the client
  +        application or higher level libraries, as is deemed
  +        necessary. It must be set before the XML system is initialized
  +        (see below.)
  +      </p>
  +    </a>
  +  </faq>
  +
  +  <faq title="I just built my own application using the &projectname; parser. Why does it
  +       crash?">
  +
  +    <q>I just built my own application using the &projectname; parser. Why does it
  +      crash?</q>
  +    <a>
  +      <p>In order to work with the &projectname; parser, you have to
  +        first initialize the XML subsystem. The most common mistake is
  +        to forget this initialization. Before you make any calls to
  +        &projectname; APIs, you must call</p>
  +
  +      <source>
  +    XMLPlatformUtils::Initialize():
  +    try {
  +        XMLPlatformUtils::Initialize();
  +    }
  +    catch (const XMLException&amp; toCatch) {
  +        // Do your failure processing here
  +    }
  +</source>
  +
  +      <p>This initializes the &projectname; 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 second common problem is the absence of the transcoding
  +        converter files <code>(*.cnv)</code>. This problem has a
  +        simple fix, if you understand how the transcoding converter
  +        files are searched.</p>
  +
  +      <p>&projectname; first looks for the environment variable
  +        ICU_DATA. If it finds this variable in your environment
  +        settings, then it assumes that the transcoding converter files
  +        are kept in that directory.  Thus, for example, if you had set
  +        your environment variable to (say):</p>
  +
  +      <source>
  +set ICU_DATA=d:\my&projectname;\icu\data
  +      </source>
  +
  +      <p>The transcoding converter files (all files having extension
  +        .cnv and convrtrs.txt) will be searched under
  +        <code>d:\my&projectname;\icu\data</code></p>
  +
  +      <p>If you have not set your environment variable, then the
  +        search for the transcoding converters is done relative to the
  +        location of the shared library &windowslibname;.dll (or
  +        &unixlibname;.a on AIX and &unixlibname;.so on Solaris and
  +        Linux, &unixlibname;.sl on HP-UX). Thus if your shared library
  +        is in <code>d:\fastxmlparser\lib</code>, then your transcoding
  +        converter files should be in
  +        <code>d:\fastxmlparser\lib\icu\data.</code></p>
  +
  +      <p>Before you run your application, make sure that you have
  +        covered the two possibilities mentioned above.</p>
  +
  +    </a>
  +  </faq>
  +
  +  <faq title="How do I use VisualAge for Windows with &projectname;?">
  +
  +    <q>How do I use VisualAge for Windows with &projectname;</q>
  +
  +    <a>
  +      <p>IBM VisualAge &projectname; for Windows Build Requirements</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 &projectname; library. For example if
  +          &projectname; is at the top level of the d drive, put the
  +          ICU library also at the top level of d drive
  +          e.g. d:/&projectname;, d:/icu.</li>
  +      </ol>
  +
  +      <p>Instructions</p>
  +
  +      <note>These instructions assume that you are installing in
  +        d:\&projectname; Replace d with the appropriate drive
  +        letter.</note>
  +
  +      <ol>
  +        <li>Change directory to d:\&projectname;\Projects\Win32</li>
  +
  +        <li>If a d:\&projectname;\Project\Win32\VACPP40 directory does
  +          not exist, create it.</li>
  +
  +        <li>Copy the IBM VisualAge project file, &projectname;X.icc,
  +          to the VACPP40 directory. (If it is not provided in your
  +          download, request it from &emailaddress;.</li>
  +
  +        <li>From the VisualAge main menu enter the project file name
  +          and path.</li>
  +
  +        <li>When the build finishes the status bar should display the
  +          message: Last Compile completed Successfully with warnings
  +          on date.</li>
  +
  +      </ol>
  +    </a>
  +  </faq>
  +
  +  <faq title="How do I use VisualAge for OS/2 with &projectname;?">
  +
  +    <q>How do I use VisualAge for OS/2 with &projectname;</q>
  +
  +    <a>
  +      <p>IBM VisualAge &projectname;/C++ for Windows Build Requirements</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 &projectname; library. For example if
  +          &projectname; is at the top level of the d drive, put the
  +          ICU library also at the top level of d drive
  +          e.g. d:/&projectname;, d:/icu.</li>
  +      </ol>
  +
  +      <p>Instructions</p>
  +
  +      <note>These instructions assume that you install in drive
  +        <code>d:\</code>. Replace d with the appropriate drive
  +        letter.
  +      </note>
  +      <ol>
  +        <li>Change directory to
  +        d:\&projectname;\Projects\Win32</li>
  +
  +        <li>If a d:\&projectname;\Project\OS2\VACPP40 directory
  +          does not exist, create it.</li>
  +
  +        <li>Copy the IBM VisualAge project file,
  +          &projectname;X.icc, to the VACPP40 directory. (If it is not
  +          provided in your download, request it from
  +          &emailaddress;.</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>
  +    </a>
  +  </faq>
  +
  +  <faq title="How do I use CodeWarrior for Macintosh with &projectname;">
  +
  +    <q>How do I use CodeWarrior for Macintosh with &projectname;</q>
  +    <a>
  +      <p>The directions in this file cover installing and building &projectname;
  +        and ICU under the MacOS using CodeWarrior.</p>
  +
  +      <ol>
  +        <li>Create a folder that will contain the &projectname; 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 &projectname; 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;
  +          &projectname; and icu Folder. Move these folders into the
  +          "src drop" folder.</li>
  +
  +        <li>Drag the &projectname; 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:&projectname;:Projects".</li>
  +
  +        <li>You should be able to open the CodeWarrior project file
  +          "src drop:&projectname;:Projects:MacOS:&projectname;:&projectname;"
  +          and build the &projectname; library.</li>
  +
  +        <li>You should also be able to open the CodeWarrior project
  +          file "src drop:&projectname;: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 &projectname;.  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 &projectname;.</p>
  +
  +      <ol>
  +        <li>You will need to link against both the ICU and
  +          &projectname; 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 &projectname; projects should serve as a
  +          good example.</li>
  +      </ol>
  +
  +      <p>If you are having problems getting &projectname; working, feel
  +        free to send an email to <jump href="mailto:jbellardo@alumni.calpoly.edu">
  +        jbellardo@alumni.calpoly.edu</jump>. However, help will arrive
  +        only if time permits.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="Is &projectname; thread-safe?">
  +
  +    <q>Is &projectname; thread-safe?</q>
  +
  +    <a>
  +      <p>This is not a question that has a simple yes/no answer. Here are
  +        the rules for using &projectname; in a multi-threaded environment:</p>
  +
  +      <p>Within an address space, an instance of the parser may be used
  +        without restriction from a single thread, or an instance of the
  +        parser can be accessed from multiple threads, provided the
  +        application guarantees that only one thread has entered a method
  +        of the parser at any one time.</p>
  +
  +      <p>When two or more parser instances exist in a process, the
  +        instances can be used concurrently, and without external
  +        synchronization.  That is, in an application containing two
  +        parsers and two threads, one pareser can be running within the
  +        first thread concurrently with the second parser running
  +        within the second thread.</p>
  +
  +      <p>The same rules apply to &projectname; DOM documents -
  +        multiple document instances may be concurrently accessed from
  +        different threads, but any given document instance can only be
  +        accessed by one thread at a time.</p>
  +
  +      <p>DOMStrings allow multiple concurrent readers.  All DOMString
  +        const methods are thread safe, and can be concurrently entered
  +        by multiple threads.  Non-const DOMString methods, such as
  +        appendData(), are not thread safe and the application must
  +        guarantee that no other methods (including const methods) are
  +        executed concurrently with them.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="How do I find out what version of &projectname; I am using?">
  +
  +    <q>How do I find out what version of &projectname; I am using?</q>
  +
  +    <a>
  +      <p>The version string for &projectname; happens to be in one of
  +        the source files. Look inside the file
  +        <code>src/util/XML4CDefs.hpp</code> and find out what the
  +        static variable <code>gXML4CFullVersionStr</code> is defined
  +        to be. (It is usually of type 3.0.0 or something
  +        similar). This is the version of XML you are using.</p>
  +
  +      <p>If you don't have the source code, you have to find the version
  +        information from the shared library name. On Windows NT/95/98
  +        right click on the DLL name &windowslibname;.dll in the bin directory
  +        and look up properties. The version information may be found on
  +        the Version tab.</p>
  +
  +      <p>On AIX, just look for the library name &unixlibname;.a (or
  +        &unixlibname;.so on Solaris/Linux and &unixlibname;.sl on
  +        HP-UX).  The version number is coded in the name of the
  +        library.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="How do I uninstall &projectname;?">
  +
  +    <q>How do I uninstall &projectname;?</q>
  +    <a>
  +      <p>&projectname; only installs itself in a single directory and
  +        does not set any registry entries. Thus, to un-install, you
  +        only need to remove the directory where you installed it, and
  +        all &projectname; related files will be removed.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="How do I add an additional transcoding file in the existing set?">
  +
  +    <q>How do I add an additional transcoding file in the existing
  +    set?</q>
  +
  +    <a>
  +      <p>Transcoding files shipped with binary drops of &projectname;
  +        exist in the <code>bin/icu/data</code> directory on Win32 and
  +        in the <code>lib/icu/data</code> directory under various
  +        unix's.  All transcoding files have the extension .cnv and are
  +        platform specific binary files. The ICU drop provides the
  +        utility 'makeconv' to generate these binary files. To add an
  +        additional transcoding file, you need to first define your new
  +        code-set in ASCII format (which has the extension .ucm). The
  +        coding format for an encoding may be obtained from one of the
  +        existing files in icu/data (in the source drop). After you
  +        create the .ucm file for your new language, you need to
  +        convert it to a binary form using makeconv.</p>
  +
  +      <p>Thus, if your new code-set is defined in file
  +        mynewcodeset.ucm , you would type:</p>
  +
  +      <source>
  +makeconv mynewcodeset.ucm
  +      </source>
  +
  +      <p>...to create the binary transcoding file mynewcodeset.cnv. Make
  +        sure that this .cnv file is packaged in the same place as the
  +        others, i.e. in a directory <code>icu/data</code> relative to
  +        where your shared library is.</p>
  +
  +      <p>You can also add aliases for this encoding in the file
  +        'convrtrs.txt', also present in the same directory as the
  +        converter files.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="How are entity reference nodes handled in DOM ?">
  +
  +    <q>How are entity reference nodes handled in DOM ?</q>
  +
  +    <a>
  +      <p>If you are using the native DOM classes, the function
  +        <code>setExpandEntityReferences</code> controls how entities appear in the
  +        DOM tree. When setExpandEntityReferences is set to false (the
  +        default), an occurance of an entity reference in the XML
  +        document will be represented by a subtree with an
  +        EntityReference node at the root whose children represent the
  +        entity expansion. Entity expansion will be a DOM tree
  +        representing the structure of the entity expansion, not a text
  +        node containing the entity expansion as text.</p>
  +
  +      <p>If setExpandEntityReferences is true, an entity reference in the
  +        XML document is represented by only the nodes that represent the
  +        entity expansion. The DOM tree will not contain any
  +        entityReference nodes.</p>
  +    </a>
  +  </faq>
  +
  +  <faq title="What kinds of URLs are currently supported in &projectname;?">
  +
  +    <q>What kinds of URLs are currently supported in &projectname;?</q>
  +    <a>
  +      <p>We now have a spec. compliant, but limited, implementation of
  +        the class URL.</p>
  +
  +      <ul>
  +        <li>The only protocol currently supported is the "file://"
  +          which is used to refer to files locally.</li>
  +
  +        <li>Only the 'localhost' string is supported in the host
  +          placeholder in the URL syntax.</li>
  +      </ul>
  +
  +      <p>This should work for command line arguments to samples as well as
  +        any usage in the XML file when referring to an external file.</p>
  +
  +      <p>Examples of what this implementation will allow you to do are:</p>
  +
  +      <source>
  +e:\&gt;domcount file:///e:/&projectname;/build/win32/vc6/debug/abc.xml
  +
  +or
  +
  +e:\&gt;domcount file::///&projectname;/build/win32/vc6/debug/abc.xml
  +e:\&gt;domcount file::///d:/abc.xml
  +
  +or
  +
  +e:\>domcount file:://localhost/d:/abc.xml
  +      </source>
  +
  +      <p>Example of what you cannot do is:</p>
  +
  +      <p>Refer to files using the 'file://' syntax and giving a
  +        relative path to the file.</p>
  +
  +      <p>This implies that if you are using the 'file://' syntax to
  +        refer to external files, you have to give the complete path to
  +        files even in the current directory.</p>
  +
  +      <p>You always have the option of not using the 'file://' syntax
  +        and referring to files by just giving the filename or a
  +        relative path to it as in:</p>
  +
  +      <source>
  +domcount abc.xml
  +      </source>
  +    </a>
  +  </faq>
  +
  +  <faq title="Can I use &projectname; to parse HTML?">
  +
  +    <q>Can I use &projectname; to parse HTML?</q>
  +
  +    <a>
  +      <p>Yes, if it follows the XML spec rules. Most HTML, however,
  +        does not follow the XML rules, and will therefore generate XML
  +        well-formedness errors.</p>
  +    </a>
  +  </faq>
  +
  +
  +  <faq title="I keep getting an error: &quot;invalid UTF-8 character&quot;. What's wrong?">
  +
  +    <q>I keep getting an error: "invalid UTF-8 character". What's
  +    wrong?</q>
  +
  +    <a>
  +      <p>There are many Unicode characters that are not allowed in
  +        your XML document, according to the XML spec. Typical
  +        disallowed characters are control characters, even if you
  +        escape them using the Character Reference form: See the XML
  +        spec, sections 2.2 and 4.1 for details. If the parser is
  +        generating this error, it is very likely that there's a
  +        character in there that you can't see.  You can generally use
  +        a UNIX command like "od -hc" to find it.</p>
  +
  +      <p>Another reason for this error is that your file is in some
  +        non UTF/ASCII encoding but you gave no encoding="" string in
  +        your file to tell the parser what its real encoding is.</p>
  +    </a>
  +  </faq>
  +
  +
  +  <faq title="What encodings are supported by &projectname;?">
  +
  +    <q>What encodings are supported by &projectname;?</q>
  +
  +    <a>
  +      <p>&projectname; uses a subset of IBM's International Classes
  +        for Unicode (ICU) for encoding &amp; Unicode
  +        support. &fullproductname; is Unicode 3.0 compliant.</p>
  +
  +      <p>Besides ASCII, the following encodings are currrently
  +      supported:</p>
  +
  +      <ul>
  +        <li>UTF-8</li>
  +        <li>UTF-16 Big Endian, UTF-16 Little Endian</li>
  +        <li>IBM-1208</li>
  +        <li>ISO Latin-1 (ISO-8859-1)</li>
  +        <li>ISO Latin-2 (ISO-8859-2) [Bosnian, Croatian, Czech,
  +          Hungarian, Polish, Romanian, Serbian (in Latin
  +          transcription), Serbocroation, Slovak, Slovenian, Upper
  +          Sorbian and Lower Sorbian]</li>
  +        <li>ISO Latin-3 (ISO-8859-3) [Maltese, Esperanto]</li>
  +        <li>ISO Latin-4 (ISO-8859-4)</li>
  +        <li>ISO Latin Cyrillic (ISO-8859-5)</li>
  +        <li>ISO Latin Arabic (ISO-8859-6) [Arabic]</li>
  +        <li>ISO Latin Greek (ISO-8859-7)</li>
  +        <li>ISO Latin Hebrew (ISO-8859-8) [Hebrew]</li>
  +        <li>ISO Latin-5 (ISO-8859-9) [Turkish]</li>
  +        <li>Extended Unix Code, packed for Japanese (euc-jp, eucjis)</li>
  +        <li>Japanese Shift JIS (shift-jis)</li>
  +        <li>Chinese (big5)</li>
  +        <li>Extended Unix Code, packed for Korean (euc-kr)</li>
  +        <li>Russian Unix, Cyrillic (koi8-r)</li>
  +        <li>Windows Thai (cp874)</li>
  +        <li>Latin 1 Windows (cp1252)</li>
  +        <li>cp858</li>
  +        <li>EBCDIC encodings:</li></ul><ul>
  +        <li>EBCDIC US (ebcdic-cp-us)</li>
  +        <li>EBCDIC Canada (ebcdic-cp-ca)</li>
  +        <li>EBCDIC Netherland (ebcdic-cp-nl)</li>
  +        <li>EBCDIC Denmark (ebcdic-cp-dk)</li>
  +        <li>EBCDIC Norway (ebcdic-cp-no)</li>
  +        <li>EBCDIC Finland (ebcdic-cp-fi)</li>
  +        <li>EBCDIC Sweden (ebcdic-cp-se)</li>
  +        <li>EBCDIC Italy (ebcdic-cp-it)</li>
  +        <li>EBCDIC Spain &amp; Latin America (ebcdic-cp-es)</li>
  +        <li>EBCDIC Great Britain (ebcdic-cp-gb)</li>
  +        <li>EBCDIC France (ebcdic-cp-fr)</li>
  +        <li>EBCDIC Hebrew (ebcdic-cp-he)</li>
  +        <li>EBCDIC Switzerland (ebcdic-cp-ch)</li>
  +        <li>EBCDIC Roece (ebcdic-cp-roece)</li>
  +        <li>EBCDIC Yugoslavia (ebcdic-cp-yu)</li>
  +        <li>EBCDIC Iceland (ebcdic-cp-is)</li>
  +        <li>EBCDIC Urdu (ebcdic-cp-ar2)</li>
  +        <li>Latin 0 EBCDIC</li></ul>
  +
  +      <p>Additional encodings to be available later:</p>
  +
  +      <ul>
  +        <li>EBCDIC Arabic (ebcdic-cp-ar1)</li>
  +        <li>Chinese for PRC (mixed 1/2 byte) (gb2312)</li>
  +        <li>Japanese ISO-2022-JP (iso-2022-jp)</li>
  +        <li>Cyrllic (koi8-r)</li>
  +      </ul>
  +
  +      <p>The ICU uses IBM's UPMAP format as source files for data-based
  +        conversion. All codepages represented in that format are supported
  +        (i.e: SBCS, DBCS, MBCS and EBCDIC_STATEFUL), with the exception of
  +        codepages with a maximum character length strictly greater than
  +        two bytes (e.g. this excludes 1350 and 964).</p>
  +
  +      <p>The following is a non-exhaustive list of codepages that are
  +        supported by the international library packaged with the product.</p>
  +
  +  <p>
  +    ibm-1004,
  +    ibm-1006,
  +    ibm-1008,
  +    ibm-1038,
  +    ibm-1041,
  +    ibm-1043,
  +    ibm-1047,
  +    ibm-1051,
  +    ibm-1088,
  +    ibm-1089,
  +    ibm-1098,
  +    ibm-1112,
  +    ibm-1114,
  +    ibm-1115,
  +    ibm-1116,
  +    ibm-1117,
  +    ibm-1118,
  +    ibm-1119,
  +    ibm-1123,
  +    ibm-1140,
  +    ibm-1141,
  +    ibm-1142,
  +    ibm-1143,
  +    ibm-1144,
  +    ibm-1145,
  +    ibm-1146,
  +    ibm-1147,
  +    ibm-1148,
  +    ibm-1149,
  +    ibm-1153,
  +    ibm-1154,
  +    ibm-1155,
  +    ibm-1156,
  +    ibm-1157,
  +    ibm-1158,
  +    ibm-1159,
  +    ibm-1160,
  +    ibm-1164,
  +    ibm-1250,
  +    ibm-1251,
  +    ibm-1252,
  +    ibm-1253,
  +    ibm-1254,
  +    ibm-1255,
  +    ibm-1256,
  +    ibm-1257,
  +    ibm-1258,
  +    ibm-12712,
  +    ibm-1275,
  +    ibm-1276,
  +    ibm-1277,
  +    ibm-1280,
  +    ibm-1281,
  +    ibm-1282,
  +    ibm-1283,
  +    ibm-1361,
  +    ibm-1362,
  +    ibm-1363,
  +    ibm-1364,
  +    ibm-1370,
  +    ibm-1371,
  +    ibm-1383,
  +    ibm-1386,
  +    ibm-1390,
  +    ibm-1399,
  +    ibm-16684,
  +    ibm-16804,
  +    ibm-17248,
  +    ibm-21427,
  +    ibm-273,
  +    ibm-277,
  +    ibm-278,
  +    ibm-280,
  +    ibm-284,
  +    ibm-285,
  +    ibm-290,
  +    ibm-297,
  +    ibm-37,
  +    ibm-420,
  +    ibm-424,
  +    ibm-437,
  +    ibm-4899,
  +    ibm-4909,
  +    ibm-4930,
  +    ibm-4971,
  +    ibm-500,
  +    ibm-5104,
  +    ibm-5123,
  +    ibm-5210,
  +    ibm-5346,
  +    ibm-5347,
  +    ibm-5349,
  +    ibm-5350,
  +    ibm-5351,
  +    ibm-5352,
  +    ibm-5353,
  +    ibm-5354,
  +    ibm-803,
  +    ibm-808,
  +    ibm-813,
  +    ibm-833,
  +    ibm-834,
  +    ibm-835,
  +    ibm-837,
  +    ibm-848,
  +    ibm-8482,
  +    ibm-849,
  +    ibm-850,
  +    ibm-852,
  +    ibm-855,
  +    ibm-856,
  +    ibm-857,
  +    ibm-858,
  +    ibm-859,
  +    ibm-860,
  +    ibm-861,
  +    ibm-862,
  +    ibm-863,
  +    ibm-864,
  +    ibm-865,
  +    ibm-866,
  +    ibm-867,
  +    ibm-868,
  +    ibm-869,
  +    ibm-871,
  +    ibm-872,
  +    ibm-874,
  +    ibm-878,
  +    ibm-891,
  +    ibm-897,
  +    ibm-901,
  +    ibm-902,
  +    ibm-9027,
  +    ibm-903,
  +    ibm-904,
  +    ibm-9044,
  +    ibm-9049,
  +    ibm-9061,
  +    ibm-907,
  +    ibm-909,
  +    ibm-910,
  +    ibm-912,
  +    ibm-913,
  +    ibm-914,
  +    ibm-915,
  +    ibm-916,
  +    ibm-920,
  +    ibm-921,
  +    ibm-922,
  +    ibm-923,
  +    ibm-9238,
  +    ibm-924,
  +    ibm-930,
  +    ibm-933,
  +    ibm-935,
  +    ibm-937,
  +    ibm-939,
  +    ibm-941,
  +    ibm-942,
  +    ibm-943,
  +    ibm-944,
  +    ibm-946,
  +    ibm-947,
  +    ibm-948,
  +    ibm-949,
  +    ibm-950,
  +    ibm-953,
  +    ibm-955,
  +    ibm-961,
  +    ibm-964,
  +    and ibm-970
  +
  +  </p>
  +
  +</a>
  +</faq>
   
   </faqs>
   
  
  
  
  1.2       +16 -18    xml-site/xerces-c/feedback.xml
  
  Index: feedback.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/feedback.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- feedback.xml	1999/11/15 21:44:23	1.1
  +++ feedback.xml	1999/12/02 00:09:34	1.2
  @@ -2,21 +2,21 @@
   <!DOCTYPE s1 SYSTEM "../dtd/document.dtd">
   
   <s1 title="Feedback Procedures">
  -	<s2 title="Questions or Comments">
  -		<p>For all questions or comments, write to the Xerces mailing list.</p>
  -		<p>If you are submitting a bug (and bug reports are definitely appreciated!), 
  -			please provide the following information:</p>
  -		<ul>
  -			<li>Version number of Xerces-C (1.0.0?) </li>
  -			<li>Which OS platform/version you are using (NT4+SP4? Win98? Solaris2.6?) </li>
  -			<li>Which compiler/version you are using (MSVC6? gcc?) </li>
  -			<li>Sample XML file that causes the bug</li>
  -			<li>Sample Schema file (if required to recreate the bug)</li>
  -			<li>Sample DTD file (if required to recreate the bug)</li>			
  -		</ul>
  -	</s2>
  +    <s2 title="Questions or Comments">
  +        <p>For all questions or comments, write to the &projectname; mailing list.</p>
  +        <p>If you are submitting a bug (and bug reports are definitely appreciated!),
  +            please provide the following information:</p>
  +        <ul>
  +            <li>Version number of &productname; (&versionnumber;?) </li>
  +            <li>Which OS platform/version you are using (NT4+SP4? Win98? Redhat Linux 6.0? Solaris2.6? AIX 4.3? HP-UX10? HP-UX11?) </li>
  +            <li>Which compiler/version you are using (MSVC6? gcc? cc? aCC?) </li>
  +            <li>Sample XML file that causes the bug</li>
  +            <li>Sample Schema file (if required to recreate the bug)</li>
  +            <li>Sample DTD file (if required to recreate the bug)</li>
  +        </ul>
  +    </s2>
   
  -	<s2 title="Acknowledgements">
  +    <s2 title="Acknowledgements">
   
       <p>Ever since this source code base was initially created, many people have
       helped to port the code to different platforms and provide
  @@ -29,6 +29,7 @@
           <li>John Bellardo</li>
           <li>Arundhati Bhowmick</li>
           <li>Paul Ferguson</li>
  +        <li>Pierpaolo Fumagalli</li>
           <li>Andy Heninger</li>
           <li>Rahul Jain</li>
           <li>Andy Levine</li>
  @@ -40,8 +41,5 @@
           <li>Tom Watson</li>
           <li>Roger Webster</li>
       </ul>
  -	</s2>
  -
  -
  -
  +    </s2>
   </s1>
  
  
  
  1.2       +38 -38    xml-site/xerces-c/install.xml
  
  Index: install.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/install.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- install.xml	1999/11/15 21:44:24	1.1
  +++ install.xml	1999/12/02 00:09:34	1.2
  @@ -6,93 +6,93 @@
   
       <s2 title="Window NT/98">
           <p>
  -        Binary installation of this release of Xerces-C is simply to unzip the .zip
  -        archive
  -        under Windows environment (using WinZip, or any other UnZip utility like
  +        Binary installation of this release of &productname; is simply to unzip the .zip
  +        archive under Windows environment (using WinZip, or any other UnZip utility like
           WinZip).
           </p>
           <source>
  -     unzip xerces-c_1_0.zip </source>
  -        
  +unzip &installdirname;-win32.zip </source>
  +
           <p>
  -        This will create a 'xerces-c_1_0' sub-directory (in the current directory)
  -        which contains the Xerces-C distribution. </p>
  -        
  +        This will create a '&installdirname;-win32' sub-directory (in the current directory)
  +        which contains the &productname; distribution. </p>
  +
           <p>
  -        You will need to add the 'xerces-c_1_0\bin' directory to your path: </p>
  +        You will need to add the '&installdirname;-win32\bin' directory to your path: </p>
   
           <p>To do this under Windows NT, go to the start menu, click the settings menu
           and
           select control panel. When the control panel opens, double click on System and
           select the 'Environment' tab. Locate the PATH variable under system variables
  -        and add &lt;full_path_to_xerces-c_1_0>\bin to the PATH variable.  To do this
  +        and add &lt;full_path_to_&installdirname;>\bin to the PATH variable.  To do this
           under Windows 95/98 add the line:</p>
  -        
  +
           <source>
  -   SET PATH=&lt;full_path_to_xerces-c_1_0>\bin;%PATH%  </source>
  +   SET PATH=&lt;full_path_to_&installdirname;>\bin;%PATH%  </source>
   
            <p>
            to your AUTOEXEC.BAT file, or run the set in your shell window.
            </p>
       </s2>
  -    
  +
       <s2 title="UNIX">
           <p>
           Binary installation of this release is to extract the files from the compressed
  -        .tar
  -        archive (using 'tar'). </p>
  +        .tar archive (using 'tar').
  +        </p>
   
           <source>
  -    cd $HOME
  -    uncompress xml4cxml4csrc3_0_0.tar.Z
  -    tar -xvf xml4cxml4csrc3_0_0.tar </source>
  +cd $HOME
  +gunzip &installdirname;-linux.tar.gz
  +tar -xvf &installdirname;-linux.tar </source>
   
           <p>
  -        This will create an ' xerces-c_1_0' sub-directory (in the home directory)
  -        which contains the XML4C distribution. You will need to add the
  -        xerces-c_1_0/bin directory to your PATH environment variable:
  +        This will create an '&installdirname;-linux' sub-directory (in the home directory)
  +        which contains the &productname; distribution. You will need to add the
  +        &installdirname;-linux/bin directory to your PATH environment variable:
           </p>
   
           <p>For Bourne Shell, K Shell or Bash, type: </p>
           <source>
  -    export PATH="$PATH:$HOME/xerces-c_1_0/bin" </source>
  +    export PATH="$PATH:$HOME/&installdirname;-linux/bin" </source>
   
           <p>For C Shell type:</p>
           <source>
  -    setenv PATH "$PATH:$HOME/xerces-c_1_0/bin"</source>
  +    setenv PATH "$PATH:$HOME/&installdirname;-linux/bin"</source>
   
           <p>If you wish to make this setting permanent, you need to change your profile
           by
           changing your setup files which can be either .profile or .kshrc.</p>
   
  -        <p>In addition, you will also need to set the environment variables XML4CROOT,
  +        <p>In addition, you will also need to set the environment variables XERCESCROOT,
           ICUROOT and the library search path. (LIBPATH on AIX, LD_LIBRARY_PATH on
           Solaris and Linux, SHLIB_PATH on HP-UX).</p>
   
  -        <p>Note: XML4CROOT and ICUROOT are needed only if you intend to
  +        <p>Note: XERCESCROOT and ICUROOT are needed only if you intend to
           recompile the samples or build your own applications. The library path is
           necessary to link the shared libraries at runtime.</p>
   
           <p>For Bourne Shell, K Shell or Bash, type:</p>
   
   <source>
  -    export XML4CROOT=&lt;wherever you installed XML4C>
  -    export ICUROOT=&lt;wherever you installed ICU>
  -    export LIBPATH=$XML4CROOT/lib:$LIBPATH (on AIX)
  -    export LD_LIBRARY_PATH=$XML4CROOT/lib:$LD_LIBRARY_PATH (on Solaris, Linux)
  -    export SHLIB_PATH=$XML4CROOT/lib:$SHLIB_PATH (on HP-UX)</source>
  +export XERCESCROOT=&lt;wherever you installed &productname;>
  +export ICUROOT=&lt;wherever you installed ICU>
  +export LIBPATH=$XERCESCROOT/lib:$LIBPATH (on AIX)
  +export LD_LIBRARY_PATH=$XERCESCROOT/lib:$LD_LIBRARY_PATH (on Solaris, Linux)
  +export SHLIB_PATH=$XERCESCROOT/lib:$SHLIB_PATH (on HP-UX)</source>
   
  -        <p>For C Shell, type:</p>
  +    <p>For C Shell, type:</p>
   
   <source>
  -    setenv XML4CROOT "&lt;wherever you installed XML4C>"
  -    setenv ICUROOT "&lt;wherever you installed ICU>"
  -    setenv LIBPATH "$XML4CROOT/lib:$LIBPATH" (on AIX)
  -    setenv LD_LIBRARY_PATH "$XML4CROOT/lib:$LD_LIBRARY_PATH" (on Solaris, Linux)
  -    setenv SHLIB_PATH "$XML4CROOT/lib:$SHLIB_PATH" (on HP-UX)</source>
  +setenv XERCESCROOT "&lt;wherever you installed &productname;>"
  +setenv ICUROOT "&lt;wherever you installed ICU>"
  +setenv LIBPATH "$XERCESCROOT/lib:$LIBPATH" (on AIX)
  +setenv LD_LIBRARY_PATH "$XERCESCROOT/lib:$LD_LIBRARY_PATH" (on Solaris, Linux)
  +setenv SHLIB_PATH "$XERCESCROOT/lib:$SHLIB_PATH" (on HP-UX)
  +</source>
   
           <p>IMPORTANT NOTE: If you need to build the samples after installation,
  -        make sure you read and follow the build instructions given in the FAQ.</p>
  -        
  +        make sure you read and follow the build instructions given in the <jump href="faqs.html">FAQ</jump>.</p>
  +
      </s2>
   </s1>
  
  
  
  1.2       +326 -275  xml-site/xerces-c/program.xml
  
  Index: program.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/program.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- program.xml	1999/11/15 21:44:25	1.1
  +++ program.xml	1999/12/02 00:09:34	1.2
  @@ -2,88 +2,92 @@
   <!DOCTYPE s1 SYSTEM "../dtd/document.dtd">
   
   <s1 title="Programming Guide">
  -	<s2 title="SAX Programming Guide">
  -        <s3 title="Constructing a parser">
  -        <p>In order to use XML4C 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 XML4C.</p>
  -        <source><![CDATA[
  +  <s2 title="SAX Programming Guide">
  +    <s3 title="Constructing a parser">
  +      <p>In order to use &productname; 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 &productname;.</p>
  +
  +      <source><![CDATA[
   int main (int argc, char* args[]) {
   
  -   try {
  -       XMLPlatformUtils::Initialize();
  -   } 
  -   catch (const XMLException&amp; toCatch) {
  -       cout << "Error during initialization! :\n"
  -           << toCatch.getMessage() << "\n";
  -               return 1; 
  -   } 
  -
  -   char* xmlFile = "x1.xml";
  -   ValidatingSAXParser* parser = new
  -                                 ValidatingSAXParser();
  -
  -   DocumentHandler* docHandler = new HandlerBase();
  -   ErrorHandler* errHandler = (ErrorHandler*) docHandler;
  -   parser->setDocumentHandler(docHandler);
  -   parser->setErrorHandler(errHandler);
  -
  -   try
  -   {
  -       parser->parse(xmlFile);
  -   }
  -
  -   catch (const XMLException& toCatch)
  -   {
  -       cout << "\nFile not found: '" << xmlFile << "'\n"
  -               << "Exception message is: \n"
  -               << toCatch.getMessage() << "\n" ;
  -       return -1;
  -   } 
  +    try {
  +        XMLPlatformUtils::Initialize();
  +    }
  +    catch (const XMLException&amp; toCatch) {
  +        cout << "Error during initialization! :\n"
  +             << toCatch.getMessage() << "\n";
  +        return 1;
  +    }
  +
  +    char* xmlFile = "x1.xml";
  +    SAXParser* parser = new SAXParser();
  +    parser->setDoValidation(true);    // optional.
  +
  +    DocumentHandler* docHandler = new HandlerBase();
  +    ErrorHandler* errHandler = (ErrorHandler*) docHandler;
  +    parser->setDocumentHandler(docHandler);
  +    parser->setErrorHandler(errHandler);
  +
  +    try {
  +        parser->parse(xmlFile);
  +    }
  +    catch (const XMLException& toCatch) {
  +        cout << "\nFile not found: '" << xmlFile << "'\n"
  +             << "Exception message is: \n"
  +             << toCatch.getMessage() << "\n" ;
  +        return -1;
  +    }
   }
           ]]></source>
  -
  -        </s3>
  -        <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 Xerces-C 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 the
  -                   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;full_path_to_xerces-c&gt;\include\SAX.</p>
  -
  -                   <p>As a convenience, Xerces-C 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 Xerces-C 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>
  +    </s3>
  +    <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 &productname; 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;&installdirname;>/include/sax'</p>
  +
  +      <p>As a convenience, &productname; 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 &productname; 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><![CDATA[
  +      <p>This is the header file MySAXHandler.hpp:</p>
  +      <source><![CDATA[
   #include <sax/HandlerBase.hpp>
   
  -   class MySAXHandler : public HandlerBase {
  -        private:
  -        public: 
  -   };
  -]]>                </source>
  +class MySAXHandler : public HandlerBase {
  +public:
  +    void startElement(const XMLCh* const, AttributeList&);
  +    void fatalError(const SAXParseException&);
  +};
  +        ]]></source>
   
  -                   <p>This is the implementation file MySAXHandler.cpp:</p>
  +      <p>This is the implementation file MySAXHandler.cpp:</p>
   
  -                   <source><![CDATA[ 
  +      <source><![CDATA[
   #include "MySAXHandler.hpp"
   #include <iostream.h>
   
  @@ -92,204 +96,247 @@
   }
   
   MySAXHandler::startElement(const XMLCh* const name,
  -                          AttributeList&amp; attributes)
  +                           AttributeList&amp; attributes)
   {
  - cout << "I saw element: " << name << endl;
  +    // transcode() is an user application defined function which
  +    // converts unicode strings to usual 'char *'. Look at
  +    // the sample program SAXCount for an example implementation.
  +    cout << "I saw element: " << transcode(name) << endl;
   }
   
  -MySAXHandler::fatalError(const SAXParseException&
  -                        exception)
  +MySAXHandler::fatalError(const SAXParseException& exception)
   {
  -cout << "Fatal Error: " << exception.getMessage() << 
  -        " at line: " << exception.getLineNumber() <<
  -         endl;
  +    cout << "Fatal Error: " << transcode(exception.getMessage())
  +         << " at line: " << exception.getLineNumber()
  +         << endl;
   }
  -                   ]]></source>
  -                    <p>The XMLCh and AttributeList types are supplied by Xerces-C and are documented
  -                   in the include files. Examples of their usage appear in the source code to the
  -                   sample applications.</p>  
  -
  -        </s3>
  -	</s2>
  -
  -	<s2 title="DOM Programming Guide">
  -        <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 straightforward process.
  -         </p>
  -         <p>
  -                   This section outlines the differences between Java and C++ bindings.
  -         </p>
  -        </s3>
  -
  -        <s3 title="Accessing the API from application code">
  -         <table>
  -                <tr><td><source><![CDATA[
  -// From C++
  +        ]]></source>
  +
  +      <p>The XMLCh and AttributeList types are supplied by
  +        &productname; and are documented in the include
  +        files. Examples of their usage appear in the source code to
  +        the sample applications.</p>
  +
  +    </s3>
  +  </s2>
  +
  +  <s2 title="DOM Programming Guide">
  +    <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>
  +
  +    <s3 title="Accessing the API from application code">
  +      <table>
  +        <tr><td><source><![CDATA[
  +// C++
   #include <dom/DOM.hpp>
  -                ]]></source></td></tr>
  -                <tr><td><source><![CDATA[
  -// From Java
  +        ]]></source></td></tr>
  +      <tr><td><source><![CDATA[
  +// Java
   import org.w3c.dom.*
  -                ]]></source></td></tr>
  -         </table>
  +        ]]></source></td></tr>
  +    </table>
  +
  +      <p>The header file &lt;dom/DOM.hpp&gt; includes all the
  +        individual headers for the DOM API classes. </p>
   
  -        <p>The header file &lt;dom/DOM.hpp&gt; includes all of the individual headers for the
  -                   DOM API classes. </p>
  +    </s3>
   
  -        </s3>
   
  +    <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>
   
  -        <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>
  +        <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>
   
  -         <table>
  -                <tr><td><source><![CDATA[
  +      <table>
  +        <tr><td><source><![CDATA[
   DOM_Document   myDocument;   // C++
   DOM_Node       aNode;
  -DOM_Text       someText;                
  -                ]]></source></td></tr>
  +DOM_Text       someText;
  +        ]]></source></td></tr>
   
  -                <tr><td><source><![CDATA[
  +      <tr><td><source><![CDATA[
   Document       myDocument;   // Java
   Node           aNode;
  -Text           someText;                
  -                ]]></source></td></tr>
  -         </table>
  -
  -        <p>The Java class names can defined for use from C++ with a typedef. 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>
  -
  +Text           someText;
  +        ]]></source></td></tr>
  +    </table>
  +
  +      <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>
   
  -         <table>
  -                <tr><td><source><![CDATA[
  +      <table>
  +        <tr><td><source><![CDATA[
   typedef DOM_Document  Document;
   typedef DOM_Node      Node;
   
   Document   myDocument;        // Now C++ usage is
  -                              //indistinguishable from
  -Java
  -
  +                              // indistinguishable from Java
   Node       aNode;
  -                ]]></source></td></tr>
  -         </table>
  -
  -        </s3>
  -
  -
  -        <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>
  -         <table>
  -                <tr><td><source><![CDATA[
  +        ]]></source></td></tr>
  +    </table>
  +    </s3>
  +
  +
  +    <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>
  +      <table>
  +        <tr><td><source><![CDATA[
   // This is C++
   DOM_Node       aNode;
   aNode = someDocument.createElement("ElementName");
   DOM_Node docRootNode = someDoc.getDocumentElement();
   docRootNode.AppendChild(aNode);
  -                ]]></source></td></tr>
  -         </table>
  -         <table>
  -                <tr><td><source><![CDATA[
  +        ]]></source></td></tr>
  +    </table>
  +      <table>
  +        <tr><td><source><![CDATA[
   // This is Java
  -
   Node       aNode;
   aNode = someDocument.createElement("ElementName");
   Node docRootNode = someDoc.getDocumentElement();
   docRootNode.AppendChild(aNode);
  -                ]]></source></td></tr>
  -         </table>
  +        ]]></source></td></tr>
  +    </table>
  +
  +      <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>
   
  -        <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 anode 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 anode 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, in the implementation. </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>
  -
  -        <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 java.lang.string</p>
  -        <p>Main features are:</p>
  -
  -        <ul>
  -            <li>Unicode, with fixed sized 16 bit storage elements.</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 on the <jump href="http://www.software.ibm.com/developerworks/opensource/icu/index.html">IBM DeveloperWorks website</jump>.</note>
  -        </s3>
  -
  -        <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>
  -        <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><![CDATA[
  +        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>
  +
  +    <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 java.lang.string</p>
  +
  +      <p>Main features are:</p>
  +
  +      <ul>
  +        <li>Unicode, with fixed sized 16 bit storage elements.</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://www.software.ibm.com/developerworks/opensource/icu/index.html">IBM
  +        DeveloperWorks website</jump>.</note>
  +
  +    </s3>
  +
  +    <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>
  +      
  +      <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><![CDATA[
   DOMString a = "Hello";
   DOMString b = a;
   DOMString c = a.clone();
  @@ -297,63 +344,67 @@
   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 
  +if (b == a)           // Still true, and the string's
                         //    value is "Hello World"
  -if (a.equals(c))      // false.  a is "Hello World"; 
  +if (a.equals(c))      // false.  a is "Hello World";
                         //    c is still "Hello".
           ]]></source>
  -        </s3>
  +    </s3>
   
  -        <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>
  +    <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>
   
  -         <table>
  -                <tr><td><source><![CDATA[
  +      <table>
  +        <tr><td><source><![CDATA[
   // This is C++
   DOM_Node       aNode = someFunctionReturningNode();
  -DOM_Element    el = (Element &)Node;
  -                ]]></source></td></tr>
  -         </table>
  +DOM_Element    el = (Element &) aNode;
  +        ]]></source></td></tr>
  +    </table>
   
  -         <table>
  -                <tr><td><source><![CDATA[
  +      <table>
  +        <tr><td><source><![CDATA[
   // This is Java
   Node       aNode = someFunctionReturningNode();
  -Element    el = (Element)Node;
  -                ]]></source></td></tr>
  -         </table>
  -
  -        <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>
  -         <table>
  -                <tr><td><source><![CDATA[
  +Element    el = (Element) aNode;
  +        ]]></source></td></tr>
  +    </table>
  +
  +      <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>
  +
  +      <table>
  +        <tr><td><source><![CDATA[
   // This is C++
   
   DOM_Node       aNode = someFunctionReturningNode();
   DOM_Element    el;    // by default, el will == null.
   
   if (anode.getNodeType() == DOM_Node::ELEMENT_NODE)
  -   el = (Element &)Node;
  +   el = (Element &) aNode;
   else
      // aNode does not refer to an element.
  -   //  Do something to recover here.
  -                ]]></source></td></tr>
  -         </table>
  -
  -        </s3>
  -
  -        <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>
  -
  -	</s2>
  +   // Do something to recover here.
  +        ]]></source></td></tr>
  +    </table>
  +
  +    </s3>
  +
  +    <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>
   
  +  </s2>
   
   </s1>
  
  
  
  1.2       +24 -21    xml-site/xerces-c/readme.xml
  
  Index: readme.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/readme.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- readme.xml	1999/11/15 21:44:26	1.1
  +++ readme.xml	1999/12/02 00:09:34	1.2
  @@ -1,34 +1,36 @@
   <?xml version="1.0" standalone="no"?>
   <!DOCTYPE s1 SYSTEM "../dtd/document.dtd">
   
  -<s1 title="Xerces C++">
  +<s1 title="&fullproductname;">
   
  -	<s2 title="Xerces-C++ version 1.0">
  -	
  -<p>Xerces-C is a validating XML parser written in a portable subset of C++. 
  -Xerces-C makes it easy to give your application 
  +    <s2 title="&productname;++ Version &versionnumber;">
  +
  +<p>&productname; is a validating XML parser written in a portable subset of C++.
  +&productname; makes it easy to give your application
   the ability to read and write XML data. A shared library is
  -provided for parsing, generating, manipulating, and validating XML  
  -documents. Xerces-C is faithful to the XML 1.0 recommendation  
  +provided for parsing, generating, manipulating, and validating XML
  +documents. &productname; is faithful to the XML 1.0 recommendation
   and associated standards (DOM 1.0, SAX 1.0, Namespaces). It also provides
   early implementations of DOM Level 2.0, SAX version 2 and soon it will support
  -XMLSchema. The parser provides high performance, modularity, and scalability. 
  -Source code, samples and API documentation are provided with the parser. For 
  -portability, care has been taken to make minimal use of templates, 
  -no RTTI, no C++ namespaces, limited use of exceptions and minimal 
  -use of #ifdefs.</p> 	  
  +XMLSchema. The parser provides high performance, modularity, and scalability.
  +Source code, samples and API documentation are provided with the parser. For
  +portability, care has been taken to make minimal use of templates,
  +no RTTI, no C++ namespaces, limited use of exceptions and minimal
  +use of #ifdefs.</p>
  +<p>&productname; is fully compliant with Unicode 3.0 specification, making it
  +the first Unicode 3.0 compliant application.</p>
   </s2>
   
  -	<s2 title="Xerces Applications of the Xerces Parser">
  +    <s2 title="Applications of the &projectname; Parser">
   
  -<p>Xerces has rich generating and validating capabilities. The parser is used for:</p>
  +<p>&projectname; has rich generating and validating capabilities. The parser is used for:</p>
   
   <ul>
       <li>Building XML-savvy Web servers</li>
  -    <li>Building next generation of vertical applications that use XML as 
  -      their data format</li> 
  -    <li>On-the-fly validation for creating XML editors</li>  
  -    <li>Ensuring the integrity of e-business data expressed in XML</li> 
  +    <li>Building next generation of vertical applications that use XML as
  +      their data format</li>
  +    <li>On-the-fly validation for creating XML editors</li>
  +    <li>Ensuring the integrity of e-business data expressed in XML</li>
       <li>Building truly internationalized XML applications</li>
   </ul>
       </s2>
  @@ -36,10 +38,11 @@
       <s2 title="Features">
   <ul>
   <li>Conforms to XML Spec 1.0</li>
  -<li>Tracking of latest DOM (Level 1.0 currently), SAX and namespace specs</li> 
  +<li>Tracking of latest DOM (Level 1.0), SAX and namespace specs</li>
  +<li>Experimental DOM Level 2.0 implementation</li>
   <li>Source code, samples, and docs provided</li>
  -<li>Programmatic generation, validation of XML</li> 
  -<li>Pluggable catalogs, validators, encodings</li> 
  +<li>Programmatic generation, validation of XML</li>
  +<li>Pluggable catalogs, validators, encodings</li>
   <li>High performance</li>
   <li>Customizable error handling</li>
   </ul>
  
  
  
  1.2       +19 -7     xml-site/xerces-c/releases.xml
  
  Index: releases.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/releases.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- releases.xml	1999/11/15 21:44:27	1.1
  +++ releases.xml	1999/12/02 00:09:34	1.2
  @@ -2,12 +2,24 @@
   <!DOCTYPE s1 SYSTEM "../dtd/document.dtd">
   
   <s1 title="Releases">
  -	<s2 title="November 5, 1999">
  -		<ul>
  -			<li>Created initial code base from IBM's XML4C.</li>
  -			<li>Modified documentation to reflect new name (Xerces-C)</li>
  -		</ul>
  -	</s2>
  +    <s2 title="&fullproductname; Version &versionnumber;: December 7, 1999">
  +        <ul>
  +            <li>Released &productname; after incorporating ICU as a value-added plug-in.</li>
  +            <li>Has bug fixes, better conformance, better speed and cleaner internal internal architecture</li>
  +            <li>Two additional samples added: PParse and StdInParse</li>
  +            <li>Experimental DOM Level 2 support</li>
  +            <li>Support for namespaces</li>
  +            <li>Loadable message text enabling future translations to be easily plugged-in</li>
  +            <li>Pluggable validators</li>
  +            <li>Pluggable transcoders</li>
  +            <li>Reorganized the util directory to better manage different plaforms and compilers</li>
  +        </ul>
  +    </s2>
   
  -
  +    <s2 title="Apache Xerces-C: November 5, 1999">
  +        <ul>
  +            <li>Created initial code base derived from IBM's XML4C Version 2.0</li>
  +            <li>Modified documentation to reflect new name (Xerces-C)</li>
  +        </ul>
  +    </s2>
   </s1>
  
  
  
  1.2       +630 -434  xml-site/xerces-c/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/xerces-c/samples.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- samples.xml	1999/11/15 21:44:28	1.1
  +++ samples.xml	1999/12/02 00:09:34	1.2
  @@ -3,84 +3,99 @@
   
   <s1 title="Samples">
   
  -	<s2 title="Building the Samples">
  -	<p>XML4C2 comes packaged with six sample applications that
  -	demonstrate salient features of the parser using simple
  -	applications written on top of the SAX and DOM APIs provided by
  -	the parser.</p>
  -
  -	<p>Once you have set up your PATH variable, you can run the
  -	samples by opening a command window (or your shell prompt for
  -	UNIX environments). Sample XML data files are provided in the
  -	samples/data directory.</p>
  -
  -	<p>The installation process for the samples is same on all UNIX
  -	platforms.
  -	Note that runConfigure is just a helper script and you are free to
  -	use ./configure with the correct parameters to make it work
  -	on any platform-compiler combination of your choice.</p>
  -	</s2>
  -
  -	<s2 title="SAXCount">
  -		<s3 title="What it does">
  -		<p>SAXCount is the simplest application that counts the elements and characters of
  +    <s2 title="Building the Samples">
  +    <p>&productname; comes packaged with nine sample applications that
  +    demonstrate salient features of the parser using simple
  +    applications written on top of the SAX and DOM APIs provided by
  +    the parser.</p>
  +
  +    <p>Once you have set up your PATH variable, you can run the
  +    samples by opening a command window (or your shell prompt for
  +    UNIX environments). Sample XML data files are provided in the
  +    samples/data directory.</p>
  +
  +    <p>The installation process for the samples is same on all UNIX
  +    platforms.
  +    Note that <em>runConfigure</em> is just a helper script and you are free to
  +    use <em>./configure</em> with the correct parameters to make it work
  +    on any platform-compiler combination of your choice. The script needs the following parameters:
  +    </p>
  +    <source>
  +    Usage: runConfigure "options"
  +           where options may be any of the following:
  +           -p &lt;platform&gt; (accepts 'aix', 'linux', 'solaris', 'hp-10', 'hp-11')
  +           -c &lt;C compiler name&gt; (e.g. gcc, xlc_r, cc or aCC)
  +           -x &lt;C++ compiler name&gt; (e.g. g++, xlC_r, CC or aCC)
  +           -d (specifies that you want to build debug version)
  +           -h (get help on the above commands)
  +    </source>
  +
  +    <note><em>NOTE:</em>The code samples in this section assume that you are are working on the Linux binary drop.
  +    If you are using some other UNIX flavor, please replace '-linux' with the appropriate
  +    platform name in the code samples.</note>
  +
  +    </s2>
  +
  +    <s2 title="SAXCount">
  +        <s3 title="What it does">
  +        <p>SAXCount is the simplest application that counts the elements and characters of
           a given XML file using the (event based) SAX API.</p>
  -		</s3>
  +        </s3>
   
  -		<s3 title="Building on Windows">
  -		<p>Load the &lt;xml4c2InstallDir&gt;\samples\Projects\Win32\VC6\samples.dsw
  -		Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -		build the project marked SAXCount.
  -		</p>
  -		</s3>
  -		<s3 title="Building on UNIX">
  -		<source>
  -		cd &lt;xml4c2InstallDir&gt;/samples
  -		./runConfigure &lt;PLATFORM&gt;
  -		cd SAXCount
  -		gmake
  -		</source>
  -		<p>where &lt;PLATFORM&gt; is the platform-compiler combination you are working on.
  -		This will create the object files in the current directory and the executable named
  -		SAXCount in ' &lt;xml4c2InstallDir&gt;/bin' directory.</p>
  -
  -		<p>To delete all the generated object files and executables, type</p>
  -		<source>
  -		gmake clean
  -		</source>
  -		</s3>
  -
  -		<s3 title="Running SAXCount">
  -
  -		  <p>The SAXCount sample parses an XML file and prints out a count of the number of
  -		  elements in the file. To run SAXCount, enter the following </p>
  -		  <source>
  -			   SAXCount &lt;filename&gt;
  -		  </source>
  -		  <p>To use the validating parser, use </p>
  -		  <source>
  -			   SAXCount -v &lt;filename&gt;
  -		  </source>
  -		  <p>Here is a sample output from SAXCount</p>
  -		  <source>
  -		  cd &lt;xml4c2InstallDir&gt;/samples/data
  -		  SAXCount -v personal.xml
  -		  personal.xml: 60 ms (37 elems, 12 attrs, 134 spaces, 134 chars)
  -		  </source>
  -		  <p>Running SAXCount with the validating parser gives a different result because
  -		  ignorable white-space is counted separately from regular characters.</p>
  -		  <source>
  -		  SAXCount personal.xml
  -		  personal.xml: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)
  -	      </source>
  -		  <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  -
  -		  <note>The time reported by the program may be different depending on your
  -		  machine processor.
  -		  </note>
  -		</s3>
  -
  -	</s2>
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked SAXCount.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd SAXCount
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        SAXCount in '&installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
  +
  +        <s3 title="Running SAXCount">
  +
  +          <p>The SAXCount sample parses an XML file and prints out a count of the number of
  +          elements in the file. To run SAXCount, enter the following </p>
  +          <source>
  +               SAXCount &lt;XML File&gt;
  +          </source>
  +          <p>To use the validating parser, use </p>
  +          <source>
  +               SAXCount -v &lt;XML file&gt;
  +          </source>
  +          <p>Here is a sample output from SAXCount</p>
  +          <source>
  +          cd &installdirname;-linux/samples/data
  +          SAXCount -v personal.xml
  +          personal.xml: 60 ms (37 elems, 12 attrs, 134 spaces, 134 chars)
  +          </source>
  +          <p>Running SAXCount with the validating parser gives a different result because
  +          ignorable white-space is counted separately from regular characters.</p>
  +          <source>
  +          SAXCount personal.xml
  +          personal.xml: 10 ms (37 elems, 12 attrs, 0 spaces, 268 chars)
  +          </source>
  +          <p>Note that the sum of spaces and chracters in both versions is the same.</p>
  +
  +          <note>The time reported by the program may be different depending on your
  +          machine processor.
  +          </note>
  +        </s3>
  +
  +    </s2>
   
   
   
  @@ -88,268 +103,268 @@
   
   
   
  -	<s2 title="SAXPrint">
  -		<s3 title="What it does">
  -		<p>SAXPrint uses the SAX APIs to parse an XML file and print it back. Notice that
  +    <s2 title="SAXPrint">
  +        <s3 title="What it does">
  +        <p>SAXPrint uses the SAX APIs to parse an XML file and print it back. Notice that
                     the output of this file is not exactly the same as the input (in terms of white
                     spaces), but the output has the same information content as the input.</p>
  -		</s3>
  +        </s3>
   
  -		<s3 title="Building on Windows">
  -		<p>Load the &lt;xml4c2InstallDir&gt;\samples\Projects\Win32\VC6\samples.dsw
  -		Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -		build the project marked SAXPrint.
  -		</p>
  -		</s3>
  -		<s3 title="Building on UNIX">
  -		<source>
  -		cd &lt;xml4c2InstallDir&gt;/samples
  -		./runConfigure &lt;PLATFORM&gt;
  -		cd SAXCount
  -		gmake
  -		</source>
  -		<p>where &lt;PLATFORM&gt; is the platform-compiler combination you are working on.
  -		This will create the object files in the current directory and the executable named
  -		SAXPrint in '&lt;xml4c2InstallDir&gt;/bin' directory.</p>
  -
  -		<p>To delete all the generated object files and executables, type</p>
  -		<source>
  -		gmake clean
  -		</source>
  -		</s3>
  -
  -		<s3 title="Running SAXPrint">
  -
  -		  <p>The SAXPrint sample parses an XML file and prints out a count of the number of
  -		  elements in the file. To run SAXPrint, enter the following </p>
  -		  <source>
  -			   SAXPrint &lt;filename&gt;
  -		  </source>
  -		  <p>To use the validating parser, use </p>
  -		  <source>
  -			   SAXPrint -v &lt;filename&gt;
  -		  </source>
  -		  <p>Here is a sample output from SAXPrint</p>
  -		  <source>
  -		  cd &lt;xml4c2InstallDir&gt;/samples/data
  -		  SAXPrint -v personal.xml
  -
  -		  <personnel>
  -
  -			  <person id="Big.Boss">
  -				<name><family>Boss</family> <given>Big</given></name>
  -				<email>chief@foo.com</email>
  -				<link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
  -			  </person>
  -
  -			  <person id="one.worker">
  -				<name><family>Worker</family> <given>One</given></name>
  -				<email>one@foo.com</email>
  -				<link manager="Big.Boss"></link>
  -			  </person>
  -
  -			  <person id="two.worker">
  -				<name><family>Worker</family> <given>Two</given></name>
  -				<email>two@foo.com</email>
  -				<link manager="Big.Boss"></link>
  -			  </person>
  -
  -			  <person id="three.worker">
  -				<name><family>Worker</family> <given>Three</given></name>
  -				<email>three@foo.com</email>
  -				<link manager="Big.Boss"></link>
  -			  </person>
  -
  -			  <person id="four.worker">
  -				<name><family>Worker</family> <given>Four</given></name>
  -				<email>four@foo.com</email>
  -				<link manager="Big.Boss"></link>
  -			  </person>
  -
  -			  <person id="five.worker">
  -				<name><family>Worker</family> <given>Five</given></name>
  -				<email>five@foo.com</email>
  -				<link manager="Big.Boss"></link>
  -			  </person>
  -
  -		  </personnel>
  -
  -
  -		  </source>
  -		  <note>Note that SAXPrint does not reproduce the original XML file. Also SAXPrint and
  -		                    DOMPrint produce different results because of the way the two APIs store data
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked SAXPrint.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd SAXPrint
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        SAXPrint in '&installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
  +
  +        <s3 title="Running SAXPrint">
  +
  +          <p>The SAXPrint sample parses an XML file and prints out a count of the number of
  +          elements in the file. To run SAXPrint, enter the following </p>
  +          <source>
  +               SAXPrint &lt;XML file&gt;
  +          </source>
  +          <p>To use the validating parser, use </p>
  +          <source>
  +               SAXPrint -v &lt;XML file&gt;
  +          </source>
  +          <p>Here is a sample output from SAXPrint</p>
  +          <source>
  +          cd &installdirname;-linux/samples/data
  +          SAXPrint -v personal.xml
  +
  +          &lt;personnel>
  +
  +              &lt;person id="Big.Boss">
  +                &lt;name>&lt;family>Boss&lt;/family> &lt;given>Big&lt;/given>&lt;/name>
  +                &lt;email>chief@foo.com&lt;/email>
  +                &lt;link subordinates="one.worker two.worker three.worker four.worker five.worker">&lt;/link>
  +              &lt;/person>
  +
  +              &lt;person id="one.worker">
  +                &lt;name>&lt;family>Worker&lt;/family> &lt;given>One&lt;/given>&lt;/name>
  +                &lt;email>one@foo.com&lt;/email>
  +                &lt;link manager="Big.Boss">&lt;/link>
  +              &lt;/person>
  +
  +              &lt;person id="two.worker">
  +                &lt;name>&lt;family>Worker&lt;/family> &lt;given>Two&lt;/given>&lt;/name>
  +                &lt;email>two@foo.com&lt;/email>
  +                &lt;link manager="Big.Boss">&lt;/link>
  +              &lt;/person>
  +
  +              &lt;person id="three.worker">
  +                &lt;name>&lt;family>Worker&lt;/family> &lt;given>Three&lt;/given>&lt;/name>
  +                &lt;email>three@foo.com&lt;/email>
  +                &lt;link manager="Big.Boss">&lt;/link>
  +              &lt;/person>
  +
  +              &lt;person id="four.worker">
  +                &lt;name>&lt;family>Worker&lt;/family> &lt;given>Four&lt;/given>&lt;/name>
  +                &lt;email>four@foo.com&lt;/email>
  +                &lt;link manager="Big.Boss">&lt;/link>
  +              &lt;/person>
  +
  +              &lt;person id="five.worker">
  +                &lt;name>&lt;family>Worker&lt;/family> &lt;given>Five&lt;/given>&lt;/name>
  +                &lt;email>five@foo.com&lt;/email>
  +                &lt;link manager="Big.Boss">&lt;/link>
  +              &lt;/person>
  +
  +          &lt;/personnel>
  +
  +
  +          </source>
  +          <note>Note that SAXPrint does not reproduce the original XML file. Also SAXPrint and
  +                            DOMPrint produce different results because of the way the two APIs store data
                     and capture events.</note>
  -		</s3>
  +        </s3>
   
  -	</s2>
  +    </s2>
   
   
   
   
   
   
  -	<s2 title="DOMCount">
  -		<s3 title="What it does">
  -		<p>DOMCount uses the provided DOM API to parse an XML file, constructs the
  +    <s2 title="DOMCount">
  +        <s3 title="What it does">
  +        <p>DOMCount uses the provided DOM API to parse an XML file, constructs the
                     DOM tree and walks through the tree counting the elements (using just one API
                     call).</p>
  -		</s3>
  +        </s3>
   
  -		<s3 title="Building on Windows">
  -		<p>Load the &lt;xml4c2InstallDir&gt;\samples\Projects\Win32\VC6\samples.dsw
  -		Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -		build the project marked DOMCount.
  -		</p>
  -		</s3>
  -		<s3 title="Building on UNIX">
  -		<source>
  -		cd &lt;xml4c2InstallDir&gt;/samples
  -		./runConfigure &lt;PLATFORM&gt;
  -		cd DOMCount
  -		gmake
  -		</source>
  -		<p>where &lt;PLATFORM&gt; is the platform-compiler combination you are working on.
  -		This will create the object files in the current directory and the executable named
  -		DOMCount in ' &lt;xml4c2InstallDir&gt;/bin' directory.</p>
  -
  -		<p>To delete all the generated object files and executables, type</p>
  -		<source>
  -		gmake clean
  -		</source>
  -		</s3>
  -
  -		<s3 title="Running DOMCount">
  -
  -		  <p>The DOMCount sample parses an XML file and prints out a count of the number of
  -		  elements in the file. To run DOMCount, enter the following </p>
  -		  <source>
  -			   DOMCount &lt;filename&gt;
  -		  </source>
  -		  <p>To use the validating parser, use </p>
  -		  <source>
  -			   DOMCount -v &lt;filename&gt;
  -		  </source>
  -		  <p>Here is a sample output from DOMCount</p>
  -		  <source>
  -		  cd &lt;xml4c2InstallDir&gt;/samples/data
  -		  DOMCount -v personal.xml
  -		  personal.xml: 20 ms (37 elems)
  -		  </source>
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked DOMCount.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd DOMCount
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        DOMCount in ' &installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
  +
  +        <s3 title="Running DOMCount">
  +
  +          <p>The DOMCount sample parses an XML file and prints out a count of the number of
  +          elements in the file. To run DOMCount, enter the following </p>
  +          <source>
  +               DOMCount &lt;XML file&gt;
  +          </source>
  +          <p>To use the validating parser, use </p>
  +          <source>
  +               DOMCount -v &lt;XML file&gt;
  +          </source>
  +          <p>Here is a sample output from DOMCount</p>
  +          <source>
  +          cd &installdirname;-linux/samples/data
  +          DOMCount -v personal.xml
  +          personal.xml: 20 ms (37 elems)
  +          </source>
   
  -		  <p>The output of both versions should be same.</p>
  +          <p>The output of both versions should be same.</p>
   
  -		  <note>The time reported by the system may be different, depending on your
  +          <note>The time reported by the system may be different, depending on your
             processor type.
  -		  </note>
  -		</s3>
  +          </note>
  +        </s3>
   
  -	</s2>
  +    </s2>
   
   
   
   
   
  -	<s2 title="DOMPrint">
  -		<s3 title="What it does">
  -		<p>DOMPrint parses an XML file, constructs the DOM tree, and walks through the
  +    <s2 title="DOMPrint">
  +        <s3 title="What it does">
  +        <p>DOMPrint parses an XML file, constructs the DOM tree, and walks through the
                     tree printing each element. It thus dumps the XML back (output same as
                     SAXPrint).</p>
  -		</s3>
  +        </s3>
   
  -		<s3 title="Building on Windows">
  -		<p>Load the &lt;xml4c2InstallDir&gt;\samples\Projects\Win32\VC6\samples.dsw
  -		Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -		build the project marked DOMPrint.
  -		</p>
  -		</s3>
  -		<s3 title="Building on UNIX">
  -		<source>
  -		cd &lt;xml4c2InstallDir&gt;/samples
  -		./runConfigure &lt;PLATFORM&gt;
  -		cd DOMPrint
  -		gmake
  -		</source>
  -		<p>where &lt;PLATFORM&gt; is the platform-compiler combination you are working on.
  -		This will create the object files in the current directory and the executable named
  -		DOMPrint in ' &lt;xml4c2InstallDir&gt;/bin' directory.</p>
  -
  -		<p>To delete all the generated object files and executables, type</p>
  -		<source>
  -		gmake clean
  -		</source>
  -		</s3>
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked DOMPrint.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd DOMPrint
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        DOMPrint in ' &installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
   
  -		<s3 title="Running DOMPrint">
  +        <s3 title="Running DOMPrint">
   
  -		  <p>The DOMPrint sample parses an XML file, using either a validating or
  +          <p>The DOMPrint sample parses an XML file, using either a validating or
                      non-validating DOM parser configuration, builds a DOM tree, and then walks the
  -                   tree and outputs the contents of the nodes in 'a' canonical format. To run
  +                   tree and outputs the contents of the nodes in a 'canonical' format. To run
                      DOMPrint, enter the following:</p>
  -		  <source>
  -			   DOMPrint [-v] &lt;filename&gt;
  -		  </source>
  -		  <p>The -v option is used when you wish to use a validating parser. Here is a
  +          <source>
  +               DOMPrint [-v] &lt;XML file&gt;
  +          </source>
  +          <p>The -v option is used when you wish to use a validating parser. Here is a
                      sample output for DOMPrint when the validating parser is used: </p>
  -		  <source>
  -			   cd &lt;xml4c2InstallDir&gt;/samples/data
  +          <source>
  +               cd &installdirname;-linux/samples/data
                  DOMPrint -v personal.xml
  -		  </source>
  -		  <p>Here is a sample output from DOMPrint</p>
  -		  <source>
  -		  cd &lt;xml4c2InstallDir&gt;/samples/data
  -		  DOMPrint -v personal.xml
  -
  -
  -		 &lt;?xml version='1.0' encoding='utf-8?&gt;
  -		 <!-- Revision: 63 1.7 samples/data/personal.xml, xml4c2Docs, xml4c2, xml4c2_1_0_d2 -->
  -		 <personnel>
  -
  -		   <person id="Big.Boss">
  -			 <name><family>Boss</family> <given>Big</given></name>
  -			 <email>chief@foo.com</email>
  -			 <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
  -		   </person>
  -
  -		   <person id="one.worker">
  -			 <name><family>Worker</family> <given>One</given></name>
  -			 <email>one@foo.com</email>
  -			 <link manager="Big.Boss"></link>
  -		   </person>
  -
  -		   <person id="two.worker">
  -			 <name><family>Worker</family> <given>Two</given></name>
  -			 <email>two@foo.com</email>
  -			 <link manager="Big.Boss"></link>
  -		   </person>
  -
  -		   <person id="three.worker">
  -			 <name><family>Worker</family> <given>Three</given></name>
  -			 <email>three@foo.com</email>
  -			 <link manager="Big.Boss"></link>
  -		   </person>
  -
  -		   <person id="four.worker">
  -			 <name><family>Worker</family> <given>Four</given></name>
  -			 <email>four@foo.com</email>
  -			 <link manager="Big.Boss"></link>
  -		   </person>
  -
  -		   <person id="five.worker">
  -			 <name><family>Worker</family> <given>Five</given></name>
  -			 <email>five@foo.com</email>
  -			 <link manager="Big.Boss"></link>
  -		   </person>
  -
  -		   </personnel>
  -
  -		  </source>
  -		  <p>Note that DOMPrint does not reproduce the original XML file. Also DOMPrint and
  -		   SAXPrint produce different results because of the way the two APIs store data
  +          </source>
  +          <p>Here is a sample output from DOMPrint</p>
  +          <source>
  +          cd &installdirname;-linux/samples/data
  +          DOMPrint -v personal.xml
  +
  +
  +         &lt;?xml version='1.0' encoding='utf-8?&gt;
  +         &lt;!-- Revision: 63 1.7 samples/data/personal.xml, xml4c2Docs, xml4c2, xml4c2_1_0_d2 -->
  +         &lt;personnel>
  +
  +           &lt;person id="Big.Boss">
  +             &lt;name>&lt;family>Boss&lt;/family> &lt;given>Big&lt;/given>&lt;/name>
  +             &lt;email>chief@foo.com&lt;/email>
  +             &lt;link subordinates="one.worker two.worker three.worker four.worker five.worker">&lt;/link>
  +           &lt;/person>
  +
  +           &lt;person id="one.worker">
  +             &lt;name>&lt;family>Worker&lt;/family> &lt;given>One&lt;/given>&lt;/name>
  +             &lt;email>one@foo.com&lt;/email>
  +             &lt;link manager="Big.Boss">&lt;/link>
  +           &lt;/person>
  +
  +           &lt;person id="two.worker">
  +             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Two&lt;/given>&lt;/name>
  +             &lt;email>two@foo.com&lt;/email>
  +             &lt;link manager="Big.Boss">&lt;/link>
  +           &lt;/person>
  +
  +           &lt;person id="three.worker">
  +             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Three&lt;/given>&lt;/name>
  +             &lt;email>three@foo.com&lt;/email>
  +             &lt;link manager="Big.Boss">&lt;/link>
  +           &lt;/person>
  +
  +           &lt;person id="four.worker">
  +             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Four&lt;/given>&lt;/name>
  +             &lt;email>four@foo.com&lt;/email>
  +             &lt;link manager="Big.Boss">&lt;/link>
  +           &lt;/person>
  +
  +           &lt;person id="five.worker">
  +             &lt;name>&lt;family>Worker&lt;/family> &lt;given>Five&lt;/given>&lt;/name>
  +             &lt;email>five@foo.com&lt;/email>
  +             &lt;link manager="Big.Boss">&lt;/link>
  +           &lt;/person>
  +
  +           &lt;/personnel>
  +
  +          </source>
  +          <p>Note that DOMPrint does not reproduce the original XML file. Also DOMPrint and
  +           SAXPrint produce different results because of the way the two APIs store data
              and capture events.</p>
   
  -		</s3>
  +        </s3>
   
  -	</s2>
  +    </s2>
   
   
   
  @@ -357,156 +372,337 @@
   
   
   
  -	<s2 title="MemParse">
  -		<s3 title="What it does">
  -		<p>MemParse uses the Validating SAX Parser to parse a memory buffer containing
  +    <s2 title="MemParse">
  +        <s3 title="What it does">
  +        <p>MemParse uses the Validating SAX Parser to parse a memory buffer containing
                     XML statements, and reports the number of elements and attributes found.</p>
  -		</s3>
  +        </s3>
   
  -		<s3 title="Building on Windows">
  -		<p>Load the &lt;xml4c2InstallDir&gt;\samples\Projects\Win32\VC6\samples.dsw
  -		Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -		build the project marked MemParse.
  -		</p>
  -		</s3>
  -		<s3 title="Building on UNIX">
  -		<source>
  -		cd &lt;xml4c2InstallDir&gt;/samples
  -		./runConfigure &lt;PLATFORM&gt;
  -		cd MemParse
  -		gmake
  -		</source>
  -		<p>where &lt;PLATFORM&gt; is the platform-compiler combination you are working on.
  -		This will create the object files in the current directory and the executable named
  -		MemParse in ' &lt;xml4c2InstallDir&gt;/bin' directory.</p>
  -
  -		<p>To delete all the generated object files and executables, type</p>
  -		<source>
  -		gmake clean
  -		</source>
  -		</s3>
  -
  -		<s3 title="Running MemParse">
  -
  -		  <p>This program uses the Validating SAX Parser to parse a memory buffer
  -                   containing XML statements, and reports the number of elements and attributes
  -                   found. </p>
  -		  <source>
  -			   MemParse [-nv]
  -		  </source>
  -		  <p>The -nv option is used to invoke the NonValidating SAX Parser instead.
  -
  -                   When invoked without any arguments: </p>
  -		  <source>
  -			   cd &lt;xml4c2InstallDir&gt;/samples/data
  -               MemParse
  -		  </source>
  -		  <p>The output is the following:</p>
  -		  <source>
  -
  -		  &lt;?xml version='1.0' encoding='ascii'?&gt;
  -		  &lt;!DOCTYPE company [
  -		  &lt;!ELEMENT company     (product,category,developedAt)&gt;
  -		  &lt;!ELEMENT product     (#PCDATA)&gt;
  -		  &lt;!ELEMENT category    (#PCDATA)&gt;
  -		  &lt;!ATTLIST category idea CDATA #IMPLIED&gt;
  -		  &lt;!ELEMENT developedAt (#PCDATA)&gt;
  -		  ]&gt;
  -
  -
  -		 <company>
  -			 <product>XML4C</product>
  -			 <category idea='great'>XML Parsing Tools</category>
  -			 <developedAt>
  -			   IBM Center for Java Technology, Silicon Valley, Cupertino, CA
  -			 </developedAt>
  -		 </company>
  -
  -		Parsing took 0 ms (4 elements, 1 attributes, 16 spaces, 95 characters).
  -
  -		  </source>
  -
  -			<p>You can also invoke it with '-nv' parameter to turn off validation.</p>
  -		</s3>
  -
  -	</s2>
  -
  -
  -
  -
  -	<s2 title="Redirect">
  -		<s3 title="What it does">
  -		<p>Redirect uses the SAX EntityResolver handler to redirect the input stream for
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked MemParse.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd MemParse
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        MemParse in ' &installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
  +
  +        <s3 title="Running MemParse">
  +
  +          <p>This program uses the SAX Parser to parse a memory buffer
  +             containing XML statements, and reports the number of elements and attributes
  +             found. </p>
  +          <source>
  +               MemParse [-v]
  +          </source>
  +          <p>The -v option is used to invoke the Validating SAX Parser instead.
  +
  +          When invoked with a validating parser: </p>
  +          <source>
  +               cd &installdirname;-linux/samples/data
  +               MemParse -v
  +          </source>
  +          <p>The output is the following:</p>
  +          <source>
  +
  +          Finished parsing the memory buffer containing the following XML statements:
  +
  +          &lt;?xml version='1.0' encoding='ascii'?&gt;
  +          &lt;!DOCTYPE company [
  +          &lt;!ELEMENT company     (product,category,developedAt)&gt;
  +          &lt;!ELEMENT product     (#PCDATA)&gt;
  +          &lt;!ELEMENT category    (#PCDATA)&gt;
  +          &lt;!ATTLIST category idea CDATA #IMPLIED&gt;
  +          &lt;!ELEMENT developedAt (#PCDATA)&gt;
  +          ]&gt;
  +
  +
  +         &lt;company>
  +             &lt;product>&productname;&lt;/product>
  +             &lt;category idea='great'>XML Parsing Tools&lt;/category>
  +             &lt;developedAt>
  +               IBM Center for Java Technology, Silicon Valley, Cupertino, CA
  +             &lt;/developedAt>
  +         &lt;/company>
  +
  +        Parsing took 0 ms (4 elements, 1 attributes, 16 spaces, 95 characters).
  +
  +          </source>
  +
  +        </s3>
  +
  +    </s2>
  +
  +
  +
  +
  +    <s2 title="Redirect">
  +        <s3 title="What it does">
  +        <p>Redirect uses the SAX EntityResolver handler to redirect the input stream for
                     external entities. It installs an entity resolver, traps the call to the external DTD
                     file and redirects it to another specific file which contains the actual DTD.</p>
  -		</s3>
  +        </s3>
   
  -		<s3 title="Building on Windows">
  -		<p>Load the &lt;xml4c2InstallDir&gt;\samples\Projects\Win32\VC6\samples.dsw
  -		Microsoft Visual C++ workspace inside your MSVC IDE. Then
  -		build the project marked Redirect.
  -		</p>
  -		</s3>
  -		<s3 title="Building on UNIX">
  -		<source>
  -		cd &lt;xml4c2InstallDir&gt;/samples
  -		./runConfigure &lt;PLATFORM&gt;
  -		cd Redirect
  -		gmake
  -		</source>
  -		<p>where &lt;PLATFORM&gt; is the platform-compiler combination you are working on.
  -		This will create the object files in the current directory and the executable named
  -		Redirect in ' &lt;xml4c2InstallDir&gt;/bin' directory.</p>
  -
  -		<p>To delete all the generated object files and executables, type</p>
  -		<source>
  -		gmake clean
  -		</source>
  -		</s3>
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked Redirect.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd Redirect
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        Redirect in '&installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
   
  -		<s3 title="Running Redirect">
  +        <s3 title="Running Redirect">
   
  -		  <p>This program illustrates how a XML application can use the SAX EntityResolver
  +          <p>This program illustrates how a XML application can use the SAX EntityResolver
                      handler to redirect the input stream for external entities. It installs an entity
                      resolver, traps the call to the external DTD file and redirects it to another specific
                      file which contains the actual DTD.</p>
   
  -					<p>The program then counts and reports the number of elements and attributes in
  +                    <p>The program then counts and reports the number of elements and attributes in
                      the given XML file.</p>
  -		  <source>
  -			   Redirect [-v] &lt;XML file&gt;
  -		  </source>
  -		  <p>The -v option is used to invoke the Validating SAX Parser instead.</p>
  +          <source>
  +               Redirect [-v] &lt;XML file&gt;
  +          </source>
  +          <p>The -v option is used to invoke the Validating SAX Parser instead.</p>
   
                      <p>When invoked as follows:</p>
  -		  <source>
  -			   cd &lt;xml4c2InstallDir&gt;/samples/data
  +          <source>
  +               cd &installdirname;-linux/samples/data
                  Redirect -v personal.xml
  -		  </source>
  -		  <p>The output is the following:</p>
  -		  <source>
  -		  cd &lt;xml4c2InstallDir&gt;/samples/data
  -		  Redirect -v personal.xml
  -		  personal.xml: 30 ms (37 elems, 12 attrs, 134 spaces, 134 chars)
  -		  </source>
  -
  -		  <p>External files required to run this sample are 'personal.xml', 'personal.dtd' and
  -                   'redirect.dtd', which are all present in the 'samples/data' directory. Make sure
  -                   that you run redirect in the samples/data directory.</p>
  -
  -                   <p>The 'resolveEntity' callback in this sample looks for an external entity with
  -                   system id as 'personal.dtd'. When it is asked to resolve this particular external
  -                   entity, it creates and returns a new InputSource for the file 'redirect.dtd'.</p>
  -
  -                   <p>A real-world XML application can similarly do application specific processing
  -                   when encountering external entities. For example, an application might want to
  -                   redirect all references to entities outside of its domain to local cached copies.</p>
  +          </source>
  +          <p>The output is the following:</p>
  +          <source>
  +          cd &installdirname;-linux/samples/data
  +          Redirect -v personal.xml
  +          personal.xml: 30 ms (37 elems, 12 attrs, 134 spaces, 134 chars)
  +          </source>
  +
  +          <p>External files required to run this sample are 'personal.xml', 'personal.dtd' and
  +             'redirect.dtd', which are all present in the 'samples/data' directory. Make sure
  +             that you run redirect in the samples/data directory.</p>
  +
  +             <p>The 'resolveEntity' callback in this sample looks for an external entity with
  +             system id as 'personal.dtd'. When it is asked to resolve this particular external
  +             entity, it creates and returns a new InputSource for the file 'redirect.dtd'.</p>
  +
  +             <p>A real-world XML application can similarly do application specific processing
  +             when encountering external entities. For example, an application might want to
  +             redirect all references to entities outside of its domain to local cached copies.</p>
  +
  +        </s3>
  +
  +    </s2>
   
  -		</s3>
   
  -	</s2>
   
   
   
  +    <s2 title="PParse">
  +        <s3 title="What it does">
  +        <p>Demonstrates progressive parsing.
  +        </p>
  +          <p>In this example, the programmer doesn't have to depend upon throwing an exception to terminate the parsing operation. Calling parseFirst() will cause the DTD to be parsed (both internal and external subsets) and any pre-content, i.e. everything up to but not including the root element. Subsequent calls to parseNext() will cause one more piece of markup to be parsed, and spit out from the core scanning code to the parser. You can quit the parse any time by just not calling parseNext() anymore and breaking out of the loop. When you call parseNext() and the end of the root element is the next piece of markup, the parser will continue on to the end of the file and return false, to let you know that the parse is done.
  +          </p>
  +
  +        </s3>
  +
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked PParse.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd PParse
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        PParse in ' &installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
  +
  +        <s3 title="Running PParse">
  +
  +
  +        <p>The program looks for the first 16 elements of the XML file, and reports if successful.</p>
  +          <source>
  +               PParse [-v] &lt;XML file&gt;
  +          </source>
  +
  +          <p>The output is the following:</p>
  +          <source>
  +          Got the required 16 elements.
  +          </source>
  +
  +        </s3>
  +
  +    </s2>
  +
  +
  +    <s2 title="StdInParse">
  +        <s3 title="What it does">
  +        <p>Demonstrates streaming XML data from the standard input.
  +        </p>
  +        </s3>
  +
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked StdInParse.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd StdInParse
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        StdInParse in ' &installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
  +
  +        <s3 title="Running StdInParse">
  +
  +          <p>The StdInParse sample parses an XML file and prints out a count of the number of
  +          elements in the file. To run StdInParse, enter the following </p>
  +          <source>
  +               StdInParse &lt; &lt;XML file&gt;
  +          </source>
  +          <p>Here is a sample output from StdInParse</p>
  +          <source>
  +          cd &installdirname;-linux/samples/data
  +          StdInParse &lt; personal.xml
  +          personal.xml: 60 ms (37 elems, 12 attrs, 0 spaces, 268 chars)
  +          </source>
  +
  +          <note>The time reported by the program may be different depending on your
  +          machine processor.
  +          </note>
  +        </s3>
  +
  +    </s2>
  +
  +
  +    <s2 title="EnumVal">
  +        <s3 title="What it does">
  +        <p>Shows how to enumerate the markup decls in a DTD Validator.
  +        </p>
  +        </s3>
  +
  +        <s3 title="Building on Windows">
  +        <p>Load the &installdirname;-win32\samples\Projects\Win32\VC6\samples.dsw
  +        Microsoft Visual C++ workspace inside your MSVC IDE. Then
  +        build the project marked EnumVal.
  +        </p>
  +        </s3>
  +        <s3 title="Building on UNIX">
  +        <source>
  +        cd &installdirname;-linux/samples
  +        ./runConfigure -p&lt;platform&gt; -c&lt;C_compiler&gt; -x&lt;C++_compiler&gt;
  +        cd EnumVal
  +        gmake
  +        </source>
  +        <p>
  +        This will create the object files in the current directory and the executable named
  +        EnumVal in ' &installdirname;-linux/bin' directory.</p>
  +
  +        <p>To delete all the generated object files and executables, type</p>
  +        <source>
  +        gmake clean
  +        </source>
  +        </s3>
  +
  +        <s3 title="Running EnumVal">
  +
  +          <p>This program parses a file, then shows how to enumerate the contents of the validator pools.
  +          To run EnumVal, enter the following </p>
  +          <source>
  +               EnumVal &lt;XML file&gt;
  +          </source>
  +          <p>Here is a sample output from EnumVal</p>
  +          <source>
  +cd &installdirname;-linux/samples/data
  +EnumVal personal.xml
  +
  +ELEMENTS:
  +----------------------------
  +  Name: personnel
  +  Content Model: (person)+
  +
  +  Name: person
  +  Content Model: (name,email*,url*,link?)
  +  Attributes:
  +    Name:id, Type: ID
  +
  +  Name: name
  +  Content Model: (#PCDATA|family|given)*
  +
  +  Name: email
  +  Content Model: (#PCDATA)*
  +
  +  Name: url
  +  Content Model: EMPTY
  +  Attributes:
  +    Name:href, Type: CDATA
  +
  +  Name: link
  +  Content Model: EMPTY
  +  Attributes:
  +    Name:subordinates, Type: IDREF(S)
  +    Name:manager, Type: IDREF(S)
  +
  +  Name: family
  +  Content Model: (#PCDATA)*
   
  +  Name: given
  +  Content Model: (#PCDATA)*
  +
  +          </source>
  +        </s3>
  +
  +    </s2>
   </s1>
  
  
  

Mime
View raw message