This commit was manufactured by cvs2svn to create tag
'Xerces-C_1_2_0'.
git-svn-id: https://svn.apache.org/repos/asf/xerces/c/tags/Xerces-C_1_2_0@172216 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/doc/Doxyfile b/doc/Doxyfile
index 809f05a..b9e9035 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -1,7 +1,9 @@
-# Doxyfile 1.1.2
+# Doxyfile 1.1.4
# Xerces-C Note: Make sure that you run Doxygen from the 'doc' directory
# where this configuraton file resides.
+# Only use this configuration file with Doxygen 1.1.4
+# and ATT Research Graphviz 1.5
# This file describes the settings to be used by doxygen for a project
#
@@ -70,12 +72,12 @@
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members inside documented classes or files.
-HIDE_UNDOC_MEMBERS = YES
+HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all
# undocumented classes.
-HIDE_UNDOC_CLASSES = YES
+HIDE_UNDOC_CLASSES = NO
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
@@ -101,7 +103,7 @@
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
-FULL_PATH_NAMES = NO
+FULL_PATH_NAMES = No
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user defined part of the path. Stripping is
@@ -145,7 +147,7 @@
# classes or files whose names only differ in case and if your file system
# supports case sensitive file names.
-CASE_SENSE_NAMES = NO
+CASE_SENSE_NAMES = YES
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
@@ -278,25 +280,28 @@
# standard header.
HTML_HEADER = html/apiDocs/header.html
+#HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER = html/apiDocs/footer.html
+#HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet
-HTML_STYLESHEET =
+#HTML_STYLESHEET = html/apiDocs/XercesApi.css
+HTML_STYLESHEET =
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
-HTML_ALIGN_MEMBERS = NO
+HTML_ALIGN_MEMBERS = YES
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
diff --git a/doc/build.xml b/doc/build.xml
new file mode 100644
index 0000000..251fc8f
--- /dev/null
+++ b/doc/build.xml
@@ -0,0 +1,1165 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE s1 SYSTEM "./dtd/document.dtd">
+
+<s1 title="Building &XercesCName;">
+
+ <p>This page answers the following questions:</p>
+ <ul>
+ <li><link anchor="BuildWinNT">Building &XercesCName; on Windows.</link></li>
+ <li><link anchor="BuildUNIX">Building &XercesCName; on UNIX.</link></li>
+ <li><link anchor="BuildWinVisualAge">Building &XercesCName; on Windows using Visual Age.</link></li>
+ <li><link anchor="BuildOS2VisualAge">Building &XercesCName; on OS/2 using Visual Age.</link></li>
+ <li><link anchor="BuildAS400">Building &XercesCName; on AS/400.</link></li>
+ <li><link anchor="BuildMac">Building &XercesCName; on Macintosh.</link></li>
+ <li><link anchor="BuildICU">Building ICU.</link></li>
+ <li><link anchor="BuildCOM">Building COM module on Windows 98/NT/2000.</link></li>
+ <li><link anchor="BuildDocs">How to build the User Documentation?.</link></li>
+ <li><link anchor="PortingGuide">I wish to port &XercesCProjectName; to my favourite platform. Do you have any suggestions?</link></li>
+ <li><link anchor="WCharT">What should I define XMLCh to be?</link></li>
+ <li><link anchor="BuildUsingLibWWW">How can I generate Xerces-C binaries which includes the
+ sample NetAccessor implementation using Libwww?</link></li>
+ <li><link anchor="LookForHelp">Where can I look for more help?</link></li>
+ </ul>
+
+ <anchor name="BuildWinNT"/>
+ <s2 title="Building on Windows NT/98">
+ &XercesCName; comes with Microsoft Visual C++ projects and workspaces to
+ help you build &XercesCName;. The following describes the steps you need
+ to build &XercesCName;.
+
+ <s3 title="Building &XercesCName; library">
+ <p>To build &XercesCName; from it source (using MSVC), you will
+ need to open the workspace containing the project. If you are
+ building your application, you may want to add the &XercesCName;
+ project inside your applications's workspace.</p>
+ <p>The workspace containing the &XercesCName; project file and
+ all other samples is:</p>
+<source>&XercesCSrcInstallDir;\Projects\Win32\VC6\xerces-all\xerces-all.dsw</source>
+ <p>Once you are inside MSVC, you need to build the project marked
+ <em>XercesLib</em>.</p>
+ <p>If you want to include the &XercesCName; project separately,
+ you need to pick up:</p>
+<source>&XercesCSrcInstallDir;\Projects\Win32\VC6\xerces-all\XercesLib\XercesLib.dsp</source>
+ <p>You must make sure that you are linking your application with
+ the &XercesCWindowsLib;.lib library and also make sure that
+ the associated DLL is somewhere in your path.</p>
+ <note>If you are working on the AlphaWorks version which uses ICU,
+ you must have the ICU data DLL named <code>icudata.dll</code> available from your path
+ setting. For finding out where you can
+ get ICU from and build it, look at the last section of this page.</note>
+ </s3>
+ <s3 title="Building samples">
+ <p>Inside the same workspace (xerces-all.dsw), you'll find several other
+ projects. These are for the samples. Select all the samples and right click
+ on the selection. Then choose "Build (selection only)" to build all the
+ samples in one shot.</p>
+ </s3>
+ </s2>
+
+ <anchor name="BuildUNIX"/>
+ <s2 title="Building on UNIX platforms">
+ <p>&XercesCName; uses
+ <jump href="http://www.gnu.org">GNU</jump> tools like
+ <jump href="http://www.gnu.org/software/autoconf/autoconf.html">Autoconf</jump> and
+ <jump href="http://www.gnu.org/software/make/make.html">GNU Make</jump>
+ to build the system. You must first make sure you
+ have these tools installed on your system before proceeding.
+ If you don not have required tools, ask your system administrator
+ to get them for you. These tools are free under the GNU Public Licence
+ and may be obtained from the
+ <jump href="http://www.gnu.org">Free Software Foundation</jump>.</p>
+
+ <p><em>Do not jump into the build directly before reading this.</em></p>
+
+ <p>Spending some time reading the following instructions will save you a
+ lot of wasted time and support-related e-mail communication.
+ The &XercesCName; build instructions are a little different from
+ normal product builds. Specifically, there are some wrapper-scripts
+ that have been written to make life easier for you. You are free
+ not to use these scripts and use
+ <jump href="http://www.gnu.org/software/autoconf/autoconf.html">Autoconf</jump> and
+ <jump href="http://www.gnu.org/software/make/make.html">GNU Make</jump>
+ directly, but we want to make sure you know what you are by-passing and
+ what risks you are taking. So read the following instructions
+ carefully before attempting to build it yourself.</p>
+
+ <p>Besides having all necessary build tools, you also need to know what
+ compilers we have tested &XercesCName; on. The following table lists the
+ relevant platforms and compilers.</p>
+
+ <table>
+ <tr><td><em>Operating System</em></td><td><em>C++, C Compilers</em></td></tr>
+ <tr><td>Redhat Linux 6.1</td><td>g++, gcc (egcs)</td></tr>
+ <tr><td>AIX 4.2.1 and higher</td><td>xlC_r, xlc_r</td></tr>
+ <tr><td>Solaris 2.6</td><td>CC, cc</td></tr>
+ <tr><td>HP-UX 10.2</td><td>CC, cc</td></tr>
+ <tr><td>HP-UX 11</td><td>aCC, cc</td></tr>
+ </table>
+
+ <p>If you are not using any of these compilers, you are taking a calculated risk
+ by exploring new grounds. Your effort in making &XercesCName; work on this
+ new compiler is greatly appreciated and any problems you face can be addressed
+ on the &XercesCName; <jump href="mailto:&XercesCEmailAddress;">mailing list</jump>.
+ </p>
+
+ <p><em>Differences between the UNIX platforms:</em> The description below is
+ generic, but as every programmer is aware, there are minor differences
+ within the various UNIX flavors the world has been bestowed with.
+ The one difference that you need to watch out in the discussion below,
+ pertains to the system environment variable for finding libraries.
+ On <em>Linux and Solaris</em>, the environment variable name is called
+ <code>LD_LIBRARY_PATH</code>, on <em>AIX</em> it is <code>LIBPATH</code>,
+ while on <em>HP-UX</em> it is <code>SHLIB_PATH</code>. The following
+ discussion assumes you are working on Linux, but it is with subtle
+ understanding that you know how to interpret it for the other UNIX flavors.</p>
+
+ <note>If you wish to build &XercesCName; with
+ <jump href="http://www10.software.ibm.com/developerworks/opensource/icu/project/">ICU</jump>,
+ look at the <link anchor="icu">last section</link> of this page.
+ It tells you where you can find ICU and how you can build &XercesCName;
+ to include the ICU international library.</note>
+
+ <s3 title="Setting build environment variables">
+ <p>Before doing the build, you must first set your environment variables
+ to pick-up the compiler and also specify where you extracted &XercesCName;
+ on your machine.
+ While the first one is probably set for you by the system administrator, just
+ make sure you can invoke the compiler. You may do so by typing the
+ compiler invocation command without any parameters (e.g. xlc_r, or g++, or cc)
+ and check if you get a proper response back.</p>
+ <p>Next set your &XercesCName; root path as follows:</p>
+<source>export XERCESCROOT=<full path to &XercesCSrcInstallDir;></source>
+
+ <p>This should be the full path of the directory where you extracted &XercesCName;.</p>
+ </s3>
+
+ <s3 title="Building &XercesCName; library">
+ <p>As mentioned earlier, you must be ready with the GNU tools like
+ <jump href="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</jump> and
+ <jump href="http://www.gnu.org/software/make/make.html">gmake</jump>
+ before you attempt the build.</p>
+
+ <p>The autoconf tool is required on only one platform and produces
+ a set of portable scripts (configure) that you can run on all
+ other platforms without actually having the autoconf tool installed
+ everywhere. In all probability the autoconf-generated script
+ (called <code>configure</code>) is already in your <code>src</code>
+ directory. If not, type:</p>
+
+<source>cd $XERCESCROOT/src
+autoconf</source>
+
+ <p>This generates a shell-script called <code>configure</code>. It is tempting to run
+ this script directly as is normally the case, but wait a minute. If you are
+ using the default compilers like
+ <jump href="http://www.gnu.org/software/gcc/gcc.html">gcc</jump> and
+ <jump href="http://www.gnu.org/software/gcc/gcc.html">g++</jump> you do not have a problem. But
+ if you are not on the standard GNU compilers, you need to export a few more
+ environment variables before you can invoke configure.</p>
+
+ <p>Rather than make you to figure out what strange environment
+ variables you need to use, we have provided you with a wrapper
+ script that does the job for you. All you need to tell the script
+ is what your compiler is, and what options you are going to use
+ inside your build, and the script does everything for you. Here
+ is what the script takes as input:</p>
+
+<source>runConfigure
+runConfigure: Helper script to run "configure" for one of the
+ supported platforms.
+Usage: runConfigure "options"
+ where options may be any of the following:
+ -p <platform> (accepts 'aix', 'linux', 'solaris',
+ 'hp-10', 'hp-11', 'irix', 'unixware')
+ -c <C compiler name> (e.g. xlc_r, gcc, cc)
+ -x <C++ compiler name> (e.g. xlC_r, g++, CC, aCC)
+ -d (specifies that you want to build debug version)
+ -m <message loader> can be 'inmem', 'icu', 'iconv'
+ -n <net accessor> can be 'fileonly', 'libwww'
+ -t <transcoder> can be 'icu' or 'native'
+ -r <thread option> can be 'pthread' or 'dce' (only used on HP-11)
+ -l <extra linker options>
+ -z <extra compiler options>
+ -h (to get help on the above commands)</source>
+
+ <note>&XercesCName; can be built as either a standalone library or as a library
+ dependent on International Components for Unicode (ICU). For simplicity,
+ the following discussion only explains standalone builds.</note>
+
+ <p>One of the common ways to build &XercesCName; is as follows:</p>
+
+<source>runConfigure -plinux -cgcc -xg++ -minmem -nfileonly -tnative</source>
+
+ <p>The response will be something like this:</p>
+<source>
+Generating makefiles with the following options ...
+Platform: linux
+C Compiler: gcc
+C++ Compiler: g++
+Extra compile options:
+Extra link options:
+Message Loader: inmem
+Net Accessor: fileonly
+Transcoder: native
+Thread option:
+Debug is OFF
+
+creating cache ./config.cache
+checking for gcc... gcc
+checking whether the C compiler (gcc -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER ) works... yes
+checking whether the C compiler (gcc -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER ) is a cross-compiler... no
+checking whether we are using GNU C... yes
+checking whether gcc accepts -g... yes
+checking for c++... g++
+checking whether the C++ compiler (g++ -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER ) works... yes
+checking whether the C++ compiler (g++ -O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER ) is a cross-compiler... no
+checking whether we are using GNU C++... yes
+checking whether g++ accepts -g... yes
+checking for a BSD compatible install... /usr/bin/install -c
+checking for autoconf... autoconf
+checking for floor in -lm... yes
+checking how to run the C preprocessor... gcc -E
+checking for ANSI C header files... yes
+checking for XMLByte... no
+checking host system type... i686-pc-linux-gnu
+updating cache ./config.cache
+creating ./config.status
+creating Makefile
+creating util/Makefile
+creating util/Transcoders/ICU/Makefile
+creating util/Transcoders/Iconv/Makefile
+creating util/Transcoders/Iconv390/Makefile
+creating util/Transcoders/Iconv400/Makefile
+creating util/Platforms/Makefile
+creating util/Compilers/Makefile
+creating util/MsgLoaders/InMemory/Makefile
+creating util/MsgLoaders/ICU/Makefile
+creating util/MsgLoaders/MsgCatalog/Makefile
+creating util/MsgLoaders/MsgFile/Makefile
+creating validators/DTD/Makefile
+creating framework/Makefile
+creating dom/Makefile
+creating parsers/Makefile
+creating internal/Makefile
+creating sax/Makefile
+creating ../obj/Makefile
+creating conf.h
+cat: ./conf.h.in: No such file or directory
+conf.h is unchanged
+
+Having build problems? Read instructions at http://xml.apache.org/xerces-c/build.html
+Still cannot resolve it? Find out if someone else had the same problem before.
+Go to http://xml-archive.webweaving.org/xml-archive-xerces/
+
+In future, you may also directly type the following commands to create the Makefiles.
+
+export TRANSCODER=NATIVE
+export MESSAGELOADER=INMEM
+export USELIBWWW=0
+export CC=gcc
+export CXX=g++
+export CXXFLAGS=-O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER
+export CFLAGS=-O -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER
+export LIBS= -lpthread
+configure
+
+If the result of the above commands look OK to you, go to the directory
+XERCESCROOT and type "gmake" to make the XERCES-C system.</source>
+
+<note>The error message concerning <code>conf.h</code>
+is NOT an indication of a problem. This code has been inserted to make it
+work on AS/400, but it gives this message which appears to be an error. The problem
+will be fixed in future.</note>
+
+ <p>So now you see what the wrapper script has actually been doing! It has
+ invoked <code>configure</code>
+ to create the Makefiles in the individual sub-directories, but in addition
+ to that, it has set a few environment variables to correctly configure
+ your compiler and compiler flags too.</p>
+
+ <p>Now that the Makefiles are all created, you are ready to do the actual build.</p>
+
+<source>gmake</source>
+
+ <p>Is that it? Yes, that's all you need to build &XercesCName;.</p>
+ </s3>
+
+ <s3 title="Building samples">
+ <p>Similarly, you can build the samples by giving the same commands in the
+ <code>samples</code> directory.</p>
+
+<source>cd $XERCESCROOT/samples
+runConfigure -plinux -cgcc -xg++
+gmake</source>
+
+ <p>The samples get built in the <code>bin</code> directory. Before you run the
+ samples, you must make sure that your library path is set to pick up
+ libraries from <code>$XERCESCROOT/lib</code>. If not, type the following to
+ set your library path properly.</p>
+
+<source>export LD_LIBRARY_PATH=$XERCESCROOT/lib:$LD_LIBRARY_PATH</source>
+ <p>You are now set to run the sample applications.</p>
+
+ </s3>
+ </s2>
+
+ <anchor name="BuildWinVisualAge"/>
+ <s2 title="Building &XercesCName; on Windows using Visual Age C++">
+ <p>A few unsupported projects are also packaged with &XercesCName;. Due to
+ origins of &XercesCName; inside IBM labs, we do have projects for IBM's
+ <jump href="http://www-4.ibm.com/software/ad/vacpp/">Visual Age C++ compiler</jump> on Windows.
+ The following describes the steps you need to build &XercesCName; using
+ Visual Age C++.</p>
+
+ <s3 title="Building &XercesCName; library">
+ <p><em>Requirements:</em></p>
+
+ <ul>
+ <li>VisualAge C++ Version 4.0 with Fixpak 1:
+ <br/>Download the
+ <jump href="http://www-4.ibm.com/software/ad/vacpp/service/csd.html">Fixpak</jump>
+ from the IBM VisualAge C++ Corrective Services web page.</li>
+ </ul>
+
+ <p>To include the ICU library:</p>
+
+ <ul>
+ <li>ICU Build:
+ <br/>You should have the
+ <jump href="http://www10.software.ibm.com/developerworks/opensource/icu/project/icuhtml/index.html">ICU Library</jump>
+ in the same directory as the &XercesCName; library. For example if
+ &XercesCName; is at the top level of the d drive, put the ICU
+ library at the top level of d e.g. d:/xml4c, d:/icu.</li>
+ </ul>
+
+ <p><em>Instructions:</em></p>
+ <ol>
+ <li>Change the directory to d:\xml4c\Projects\Win32</li>
+ <li>If a d:\xml4c\Project\Win32\VACPP40 directory does not exist, create it.</li>
+ <li>Copy the IBM VisualAge project file, <code>XML4C2X.icc</code>,
+ to the VACPP40 directory.</li>
+ <li>From the VisualAge main menu enter the project file name and path.</li>
+ <li>When the build finishes the status bar displays this message: Last Compile
+ completed Successfully with warnings on date.</li>
+ </ol>
+ <note>These instructions assume that you install in drive d:\.
+ Replace d with the appropriate drive letter.</note>
+ </s3>
+ </s2>
+
+
+ <anchor name="BuildOS2VisualAge"/>
+ <s2 title="Building on OS/2 using Visual Age C++">
+ <p>OS/2 is a favourite IBM PC platforms. The only
+ option in this platform is to use
+ <jump href="http://www-4.ibm.com/software/ad/vacpp/">Visual Age C++ compiler</jump>.
+ Here are the steps you need to build &XercesCName; using
+ Visual Age C++ on OS/2.</p>
+ <s3 title="Building &XercesCName; library">
+ <p><em>Requirements:</em></p>
+
+ <ul>
+ <li>VisualAge C++ Version 4.0 with Fixpak 1:
+ <br/>Download the
+ <jump href="http://www-4.ibm.com/software/ad/vacpp/service/csd.html">Fixpak</jump>
+ from the IBM VisualAge C++ Corrective Services web page.</li>
+ </ul>
+
+ <p>To include the ICU library:</p>
+
+ <ul>
+ <li>ICU Build:
+ <br/>You should have the
+ <jump href="http://www10.software.ibm.com/developerworks/opensource/icu/project/icuhtml/index.html">ICU Library</jump>
+ in the same directory as the &XercesCName; library. For example if
+ &XercesCName; is at the top level of the d drive, put the ICU
+ library at the top level of d e.g. d:/xml4c, d:/icu.</li>
+ </ul>
+
+ <p><em>Instructions</em></p>
+ <ol>
+ <li>Change directory to d:\xml4c\Projects\OS2</li>
+ <li>If a d:\xml4c\Project\OS2\VACPP40 directory does not exist, create it.</li>
+ <li>Copy the IBM VisualAge project file, XML4C2X.icc, to the VACPP40 directory.</li>
+ <li>From the VisualAge main menu enter the project file name and path.</li>
+ <li>When the build finishes the status bar displays this message: Last Compile
+ completed Successfully with warnings on date.</li>
+ </ol>
+ <note>These instructions assume that you install in drive d:\. Replace d with the
+ appropriate drive letter.</note>
+ </s3>
+ </s2>
+
+ <anchor name="BuildAS400"/>
+ <s2 title="Building on AS/400">
+ <p>The following addresses the requirements and build of
+ &XercesCName; natively on the AS/400.
+ </p>
+ <s3 title="Building &XercesCName; library">
+ <p><em>Requirements:</em></p>
+
+ <ul>
+ <li><code>QSHELL</code> interpreter installed (install base option 30, operating system)</li>
+ <li>QShell Utilities, PRPQ 5799-XEH</li>
+ <li>ILE C++ for AS/400, PRPQ 5799-GDW</li>
+ <li>GNU facilities (the gnu facilities are currently available by request
+ only. Send e-mail to <jump href="mailto:rchgo400@us.ibm.com">rchgo400@us.ibm.com</jump>)</li>
+ </ul>
+
+ <p><em>Recommendations:</em></p>
+
+ <ul>
+ <li>There are a couple of options when building the XML4C parser on AS/400.
+ For messaging support, you can use the in memory message option or the
+ message file support. For code page translation, you can use the AS/400
+ native <code>Iconv400</code> support or ICU. If you choose ICU, follow the instructions
+ to build the ICU service program with the ICU download. Those instructions
+ are not included here.</li>
+
+ <li>Currently we recommend that you take the options of <code>MsgFile</code> and
+ <code>Iconv400</code> (see below)</li>
+ </ul>
+
+ <p><em>Setup Instructions:</em></p>
+
+ <ul>
+ <li>Make sure that you have the requirements installed on your AS/400.
+ We highly recommend that you read the writeup that accompanies the gnu
+ facilities download. There are install instructions as well as
+ information about how modules, programs and service programs can be
+ created in Unix-like fashion using gnu utilities. Note that symbolic
+ links are use in the file system to point to actual AS/400 <code>*module</code>,
+ <code>*pgm</code> and <code>*srvpgm</code> objects in libraries.</li>
+ <li>Download the tar file (unix version) to the AS/400
+ (using a mapped drive), and decompress and <code>untar</code> the source.
+ We have had difficulty with the tar command on AS/400. This is under
+ investigation. If you have trouble, we recommend the following work
+ around:</li></ul>
+<source>
+qsh:
+gunzip -d <tar file.gz>
+pax -r -f <uncompressed tar file></source>
+
+ <ul>
+ <li>Create AS400 target library. This library will be the target
+ for the resulting modules and &XercesCName; service program. You will
+ specify this library on the <code>OUTPUTDIR</code> environment variable
+ in step 4</li>
+ <li>Set up the following environment variables in your build process
+ (use <code>ADDENVVAR</code> or <code>WRKENVVAR CL</code> commands):</li>
+ </ul>
+<source>
+XERCESCROOT - <the full path to your &XercesCName; sources>
+PLATFORM - 'OS400'
+MAKE - '/usr/bin/gmake'
+OUTPUTDIR - <identifies target as400 library for *module, *pgm and *srvpgm objects>
+ICUROOT - (optional if using ICU) <the path of your ICU includes></source>
+
+ <ul>
+ <li>Add <code>QCXXN</code>, to your build process library list.
+ This results in the resolution of <code>CRTCPPMOD</code> used by the
+ <code>icc</code> compiler.</li>
+
+ <li>The runConfigure instruction below uses <code>'egrep'</code>.
+ This is not on the AS/400 but you can create it by doing the following:
+ <code>edtf '/usr/bin/egrep'</code> with the following source:</li>
+ </ul>
+
+<source>
+#!/usr/bin/sh
+/usr/bin/grep -e "$@"</source>
+
+<p>You may want to put the environment variables and library list
+setup instructions in a <code>CL</code> program so you will not forget these steps
+during your build.</p>
+
+<p><em>Configure</em></p>
+
+<p>To configure the make files for an AS/400 build do the following:</p>
+<source>
+qsh
+cd <full path to &XercesCName;>/src
+runConfigure -p os400 -x icc -c icc -m MsgFile -t Iconv400</source>
+
+<p>Troubleshooting:</p>
+<source>error: configure: error: installation or configuration problem:
+C compiler cannot create executables.</source>
+
+<p>If during <code>runConfigure</code> you see the above error message, it
+can mean one of two things. Either <code>QCXXN</code> is not on your library
+list <em>OR</em> the <code>runConfigure</code> cannot create the temporary
+modules (<code>CONFTest1</code>, etc) it uses to test out the compiler
+options. The second reason happens because the test modules already exist
+from a previous run of <code>runConfigure</code>. To correct the problem,
+do the following:</p>
+<source>
+DLTMOD <your OUTPUTDIR library>/CONFT* and
+DLTPGM your <OUTPUTDIR library>/CONFT*</source>
+
+<p><em>Build</em></p>
+
+<source>
+qsh
+gmake -e</source>
+
+<p>The above gmake will result in a service program being created
+in your specified library and a symbolic link to that service program
+placed in <path to &XercesCName;/lib>. You can either bind your
+XML application programs directly to the parser's service program
+via the <code>BNDSRVPGM</code> option on the <code>CRTPGM</code> or
+<code>CRTSRVPGM</code> command or you can specify a binding directory
+on your <code>icc</code> command. To specify an archive file to bind to,
+use the <code>-L, -l</code> binding options on icc. An archive file
+on AS/400 is a binding directory. To create an archive file, use
+<code>qar</code> command. (see the gnu facilities write up).
+</p>
+
+<p>
+After building the &XercesCName; service program, create a binding directory
+by doing the following (note, this binding directory is used when building
+the samples):</p>
+<source>
+qsh
+cd <full path to &XercesCName;>/lib>
+qar -cuv libxercesc1_1.a *.o
+command = CRTBNDDIR BNDDIR(yourlib/libxercesc) TEXT('/yourlib/&XercesCName;/lib/libxercesc1_1.a')
+command = ADDBNDDIRE BNDDIR(yourlib/libxercesc) OBJ((yourlib/LIBXERCESC *SRVPGM) )</source>
+
+
+<p><em>Troubleshooting:</em></p>
+<p>If you are on a V4R3 system, you will get a bind problem
+<code>'descriptor QlgCvtTextDescToDesc not found'</code> using Iconv400.
+On V4R3 the system doesn't automatically pick up the <code>QSYS/QLGUSR</code> service
+program for you when resolving this function. This is not the case on V4R4.
+To fix this, you can either manually create the service program after creating
+all the resulting modules in your <OUTPUTDIR> library or you can create
+a symbolic link to a binding directory that points to the <code>QLGUSR</code>
+service program and then specify an additional <code>-L, -l</code> on the
+<code>EXTRA_LINK_OPTIONS</code> in <code>Makefile.incl</code>.
+See the <code>ln</code> and <code>qar</code> function in the gnu utilities.</p>
+
+<p>To build for transcoder ICU:</p>
+<ol>
+ <li>Make sure you have an <code>ICUROOT</code> path set up so that you can
+ find the ICU header files (usually <code>/usr/local</code>)</li>
+ <li>Make sure you have created a binding directory (symbolic link)
+ in the file system so that you can bind the &XercesCName; service program
+ to the ICU service program and specify that on the <code>EXTRA_LINK_OPTIONS</code>
+ in <code>src/Makefile.incl</code> (usually the default is a link
+ in <code>/usr/local/lib</code>).</li>
+</ol>
+
+<p><em>Creating AS400 XML parser message file:</em></p>
+<p>As specified earlier, the <code>-m</code> MsgFile support on the
+<code>runConfigure</code> enable the parser messages to be pulled from
+an AS/400 message file. To view the source for creating the message file
+and the XML parser messages, see the following stream file:</p>
+<source>
+EDTF <full path to &XercesCName;>/src/util/MsgLoaders/MsgFile/CrtXMLMsgs</source>
+
+<p>In the prolog of <code>CrtXMLMsgs</code> there are instructions to create
+the message file:</p>
+<ol>
+<li>Use the <code>CPYFRMSTMF</code> to copy the CL source to an AS/400 source
+physical file. Note that the target source file needs to have record length
+of about 200 bytes to avoid any truncation.</li>
+<li>Create the CL program to create the message file and add the various
+message descriptions</li>
+<li>Call the CL program, providing the name of the message file
+(use <code>QXMLMSG</code> as default) and a library (this can be any
+library, including any product library in which you wish to embed
+the xml parser)</li>
+</ol>
+
+<p>Note that the &XercesCName; source code for resolving parser messages is
+using by default message file <code>QXMLMSG, *LIBL</code>.
+If you want to change either the message file name or explicitly qualify the
+library to match your product needs, you must edit the following <code>.cpp</code>
+files prior to your build.</p>
+<source>
+<full path to &XercesCName;>/src/util/MsgLoaders/MsgFile/MsgLoader.cpp
+<full path to &XercesCName;>/src/util/Platforms/OS400/OS400PlatformUtils.cpp</source>
+
+<p><em>Troubleshooting:</em></p>
+<p>If you are using the parser and are failing to get any message text
+for error codes, it may be because of the <code>*LIBL</code> resolution
+of the message file.</p>
+</s3>
+
+<s3 title="Building Samples on AS/400">
+<source>
+qsh
+cd <full path to &XercesCName;>/samples
+runConfigure -p os400 -x icc -c icc
+gmake -e</source>
+
+<p><em>Troubleshooting:</em></p>
+<p>If you take a <code>'sed'</code> error, while trying to make the samples.
+This is an AS400 anomaly having to do with certain new line character and
+the <code>sed</code> function. A temporary work around is to use <code>EDTF</code>
+on the configure stream file (<code>../samples/configure</code>) and delete the
+following line near the bottom: <code>s%@DEFS@%$DEFS%g</code>.
+</p>
+
+ </s3>
+ </s2>
+
+ <anchor name="BuildMac"/>
+ <s2 title="Building on Macintosh using CodeWarrior">
+
+ <s3 title="Building &XercesCName; library">
+ <p>The directions in this file cover installing and building
+ &XercesCName; and ICU under the MacOS using CodeWarrior.</p>
+ <ol>
+ <li><em>Create a folder:</em>
+ <br/>for the &XercesCName; and ICU distributions,
+ the "src drop" folder </li>
+
+ <li><em>Download and uncompress:</em>
+ <br/>the ICU and &XercesCName; source distribution
+ <br/>the ICU and &XercesCName; binary distributions,
+ for the documentation included </li>
+
+ <li><em>Move the new folders:</em>
+ <br/>move the newly created &XercesCName; and icu124
+ folders to the "src drop" folder.</li>
+
+ <li><em>Drag and drop:</em>
+ <br/>the &XercesCName; folder into the "rename file" application located in
+ the same folder as this readme.
+ <br/>This is a MacPerl script that renames files that have
+ 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><em>Move the MacOS folder:</em>
+ <br/>from the in the Projects folder to "src drop:&XercesCName;:Projects".</li>
+
+ <li><em>Open and build &XercesCName;:</em>
+ <br/>open the CodeWarrior project file
+ "src drop:&XercesCName;:Projects:MacOS:&XercesCName;:&XercesCName;"
+ and build the &XercesCName; library.</li>
+
+ <li><em>Open and build ICU:</em>
+ <br/>open the CodeWarrior project file
+ "src drop:&XercesCName;:Projects:MacOS:icu:icu"
+ and build the ICU library.</li>
+
+ <li><em>Binary distribution:</em>
+ <br/>If you wish, you can create projects for and build the rest of the tools and test
+ suites. They are not needed if you just want to use &XercesCName;. I suggest that you
+ use the binary data files distributed with the binary distribution of ICU instead of
+ creating your own from the text data files in the ICE source distribution.</li>
+ </ol>
+
+ <p>There are some things to be aware of when creating your own
+ projects using &XercesCName;.</p>
+ <ol>
+ <li>You will need to link against both the ICU and &XercesCName; libraries.</li>
+ <li>The options "Always search user paths" and "Interpret DOS and Unix Paths" are
+ very useful. Some of the code won't compile without them set.</li>
+ <li>Most of the tools and test code will require slight modification to compile and run
+ correctly (typecasts, command line parameters, etc), but it is possible to get
+ them working correctly.</li>
+ <li>You will most likely have to set up the Access Paths. The access paths in the
+ &XercesCName; projects should serve as a good example.</li>
+ </ol>
+
+
+ <note>These instructions were originally contributed by
+ <jump href="mailto:jbellardo@alumni.calpoly.edu">J. Bellardo</jump>.
+ &XercesCName; has undergone many changes since these instructions
+ were written. So, these instructions are not upto date.
+ But it will give you a jump start if you are struggling to get it
+ to work for the first time. We will be glad to get your changes.
+ Please respond to <jump href="mailto:&XercesCEmailAddress;">
+ &XercesCEmailAddress;</jump> with your comments and corrections.</note>
+
+ </s3>
+ </s2>
+
+ <anchor name="BuildICU"/>
+ <s2 title="How to Build ICU">
+ <p>As mentioned earlier, &XercesCName; may be built in stand-alone mode using
+ native encoding support and also using ICU where you get support for 100's
+ of encodings. ICU stands for International Components for Unicode and is an
+ open source distribution from IBM. You can get
+ <jump href="http://oss.software.ibm.com/icu/">ICU libraries</jump> from
+ <jump href="http://oss.software.ibm.com/developerworks/opensource/">IBM's developerWorks site</jump>
+ or go to the ICU
+ <jump href="http://oss.software.ibm.com/icu/download/index.html">download page</jump>
+ directly.</p>
+ <s3 title="Buiding ICU for &XercesCName;">
+ <p>You can find generic instructions to build ICU in the ICU documentation.
+ What we describe below are the minimal steps needed to build ICU for &XercesCName;.
+ Not all ICU components need to be built to make it work with &XercesCName;.</p>
+
+ <note><em>Important:</em> Please remember that <em>ICU and
+ &XercesCName; must be built with the same compiler</em>,
+ preferably with the same version. You cannot for example,
+ build ICU with a threaded version of the xlC compiler and
+ build &XercesCName; with a non-threaded one.</note>
+ </s3>
+
+ <s3 title="Building ICU on Windows">
+ <p>To build ICU from its source, invoke the project
+ <code>\icu\source\allinone\allinone.dsw</code>
+ and build the sub-project labeled <code>all</code>.
+ </p>
+
+ <p>You must make sure that you are linking your application
+ with the &XercesCWindowsLib;.lib library and also make sure
+ that the associated &XercesCName; DLL is somewhere in your path. Note
+ that at runtime, your application will need the ICU data DLL called
+ <code>icudata.dll</code> which must also be available from your path
+ setting.</p>
+ </s3>
+
+ <anchor name="icu"/>
+ <s3 title="Building ICU on UNIX platforms">
+
+ <p>To build ICU on all UNIX platforms you at least need the
+ <code>autoconf</code> tool and GNU's <code>gmake</code> utility.</p>
+
+ <p>First make sure that you have defined the following
+ environment variables:</p>
+
+<source>export ICUROOT = <icu_installdir></source>
+
+ <p>Next, go to the directory, the following commands will create
+ a shell script called <code>configure</code>: </p>
+
+<source>cd $ICUROOT
+cd source
+autoconf</source>
+
+ <p>Commands for specific UNIX platforms are different and are
+ described separately below.</p>
+
+ <p>You will get a more detailed description of the use of
+ configure in the ICU documentation. The differences lie in the
+ arguments passed to the configure script, which is a
+ platform-independent generated shell-script (through
+ <code>autoconf</code>) and is used to generate platform-specific
+ <code>Makefiles</code> from generic <code>Makefile.in</code> files.</p>
+
+ <p><em>For AIX:</em></p>
+
+ <p>Type the following:</p>
+<source>env CC="xlc_r -L/usr/lpp/xlC/lib" CXX="xlC_r -L/usr/lpp/xlC/lib"
+ C_FLAGS="-w -O" CXX_FLAGS="-w -O"
+configure --prefix=$ICUROOT
+gmake
+gmake install</source>
+ <p>The first line is different for different platforms as outlined below:</p>
+
+ <p><em>For Solaris and Linux:</em></p>
+
+
+<source>env CC="cc" CXX="CC" C_FLAGS="-w -O" CXX_FLAGS="-w -O"
+ ./configure --prefix=$ICUROOT</source>
+
+ <p><em>For HP-UX with the aCC compiler:</em></p>
+
+<source>env CC="cc" CXX="aCC" C_FLAGS="+DAportable -w -O"
+ CXX_FLAGS="+DAportable -w -O" ./configure --prefix=$ICUROOT</source>
+
+ <p><em>For HP-UX with the CC compiler:</em></p>
+
+<source>env CC="cc" CXX="CC" C_FLAGS="+DAportable -w -O"
+ CXX_FLAGS="+eh +DAportable -w -O" ./configure --prefix=$ICUROOT</source>
+
+ </s3>
+
+ </s2>
+
+ <anchor name="BuildCOM"/>
+ <s2 title="How to build XML for COM on Windows">
+
+ <p>To build the COM module for use with XML on Windows platforms, you
+ must first set up your machine appropriately with necessary tools and
+ software modules and then try to compile it. The end result is an additional
+ library that you can use along with the standard &XercesCName; for writing
+ VB templates or for use with IE 5.0 using JavaScript.</p>
+
+ <s3 title="Setting up your machine for COM">
+ <p>To build the COM project you will need to install the MS PlatformSDK.
+ Some of the header files we use don't come with Visual C++ 6.0. You may
+ download it from Microsoft's Website at <jump href="http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm">http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm</jump>
+ or directly FTP it from <jump href="ftp://ftp.microsoft.com/developr/PlatformSDK/April2000/Msi/WinNT/x86/InstMsi.exe">ftp://ftp.microsoft.com/developr/PlatformSDK/April2000/Msi/WinNT/x86/InstMsi.exe</jump>.</p>
+
+ <p>The installation is huge, but you don't need most of it. So you
+ may do a <em>custom install</em> by just selecting "Build Environment" and
+ choosing the required components. First select the top level Platform SDK.
+ Then click the down arrow and make all of the components unavailable. Next open the
+ "Build Environment" branch and select only the following items:</p>
+ <ul>
+ <li>Win32 Build Environment</li>
+ <li>COM Headers and Libraries</li>
+ <li>Internet Explorer Headers and Libraries</li>
+ </ul>
+
+ <p><em>Important:</em> When the installation is complete you need to update VC6's
+ include path to include <code>..\platformsdk\include\atl30</code>. You do this by
+ choosing "Tools -> Options -> Directories". This path
+ should be placed <ref>second</ref> after the normal PlatformSDK include.
+ You change the order of the paths by clicking the up and down arrows.</p>
+
+ <note>The order in which the directories appear on your path is important. Your
+ first include path should be <code>..\platformsdk\include</code>. The second one
+ should be <code>..\platformsdk\include\atl30</code>.</note>
+ </s3>
+
+ <s3 title="Building COM module for &XercesCName;">
+ <p>Once you have set up your machine, build &XercesCName; COM module
+ by choosing the project named 'xml4com' inside the workspace. Then select your
+ build mode to be <em>xml4com - Win32 Release MinDependency</em>. Finally build the
+ project. This will produce a DLL named <code>xerces-com.dll</code> which needs
+ to be present in your path (on local machine) before you can use it.</p>
+ </s3>
+
+ <s3 title="Testing the COM module">
+ <p>There are some sample test programs in the <code>test/COMTest</code>
+ directory which show examples of navigating and searching an XML tree
+ using DOM. You need to browse the HTML files in this directory using
+ IE 5.0. Make sure that your build has worked properly, specially the
+ registration of the ActiveX controls that happens in the final step.</p>
+ </s3>
+
+ </s2>
+
+
+ <anchor name="BuildDocs"/>
+ <s2 title="How to build the User Documentation?">
+
+ <p>The user documentation (this very page that you are reading
+ on the browser right now), was generated using an XML
+ application called StyleBook. This application makes use of
+ Xerces-J and Xalan to create the HTML file from the XML source
+ files. The XML source files for the documentation are part of
+ the &XercesCName; module. These files reside in the
+ <code>doc</code> directory.</p>
+
+ <p><em>Pre-requisites for building the user
+ documentation are:</em></p>
+
+ <ul>
+ <li>JDK 1.2.2 (or later).</li>
+ <li>Xerces-J (1.0.0 or later).</li>
+ <li>Xalan (0.19.3 or later)</li>
+ <li>Stylebook 1.0-b2</li>
+ <li>The Apache Style files (dtd's and .xsl files)</li>
+ </ul>
+
+ <p>Setup PATH to include the JDK 1.2.2 bin directory. Also setup
+ CLASSPATH environment variable as follows:</p>
+
+ <ul>
+
+ <li>Under Windows (assumes all jars are in '\jars'
+ directory:)<br/>
+ <code>CLASSPATH=\jars\stylebook-1.0-b2.jar;\jars\xalan.jar;\jars\xerces.jar</code></li>
+
+ <li>Under Unix's (assumes all jars are in '~/jars' directory):<br/>
+ <code>export CLASSPATH="~/jars/stylebook-1.0-b2.jar:~/jars/xalan.jar:~/jars/xerces.jar"</code></li>
+ </ul>
+
+ <p>Next, cd to the &XercesCName; source drop root directory,
+ and enter</p>
+
+ <ul>
+ <li>Under Windows:<br/>
+ <code>createDocs</code></li>
+ <li>Under Unix's:<br/>
+ <code>sh createDocs.bat</code></li>
+ </ul>
+
+ <p>This should generate the .html files in the 'doc/html'
+ directory.</p>
+
+ <p><em>If you are wondering where to get the three</em> <code>jar</code> <em>files referred above,
+ here is where you would find it.</em></p>
+
+ <ul>
+
+ <li>JDK 1.2.2 is available from <jump
+ href="http://java.sun.com/products/jdk/1.2/">http://java.sun.com/products/jdk/1.2/</jump></li>
+
+ <li>Xerces-J is available from <jump
+ href="http://xml.apache.org/dist/">http://xml.apache.org/dist/</jump>. Extract
+ the xerces.jar file from the binary drop and store it in the
+ 'jars' directory as mentioned above.</li>
+
+ <li>Xalan is also available from <jump
+ href="http://xml.apache.org/dist/">http://xml.apache.org/dist/</jump>. Extract
+ the xalan.jar file from the 'jar' distribution that you just downloaded and
+ store it in the same 'jars' directory as mentioned above.</li>
+
+ <li>Getting to Stylebook is little more involved. You will
+ have to download one of the 'xml-stylebook' tar balls from
+ <jump
+ href="http://xml.apache.org/from-cvs/xml-stylebook">http://xml.apache.org/from-cvs/xml-stylebook/</jump>
+ and then extract the file:<br/>
+ <code>xml-stylebook/bin/stylebook-1.0-b2.jar</code><br/><br/>
+
+ Under Unix's you may enter:<br/>
+ <code>gzip -d -c xml-stylebook_20000207231311.tar.gz | tar xf -
+ xml-stylebook/bin/stylebook-1.0-b2.jar</code><br/>
+ to extract this file (in this gzip command, subsitute the tar file
+ name with the one you downloaded). Copy it to the 'jars' directory
+ as mentioned above.<br/><br/>Under Windows you may use 'WinZip' to
+ extract the jar file from the tar ball.</li>
+
+ <li>Lastly, the Apache Style (dtd's and .xsl) files reside in
+ the same 'stylebook' tar ball, as described above. The script
+ <code>createdocs.bat</code> assumes that these styles are installed
+ relative to where it is located in the
+ <code>../../xml-stylebook/styles/apachexml</code> directory. If
+ the directory structure on your build machine differs, you can
+ edit this script file to reflect the difference. To extractt the
+ Apache style files enter:<br/>
+ <code>cd <parent of &XercesCName; source directory></code><br/>
+ <code>gzip -d -c xml-stylebook_20000207231311.tar.gz | tar xf -
+ xml-stylebook/styles</code></li>
+
+
+ </ul>
+
+ </s2>
+
+
+ <anchor name="PortingGuide"/>
+ <s2 title="I wish to port &XercesCProjectName; to my favourite platform. Do you have any suggestions?">
+
+ <p>All platform dependent code in &XercesCProjectName; has been
+ isolated to a couple of files, which should ease the porting
+ effort. Here are the basic steps that should be followed to
+ port &XercesCProjectName;.</p>
+
+ <ol>
+
+ <li>The directory <code>src/util/Platforms</code> contains the
+ platform sensitive files while <code>src/util/Compilers</code> contains
+ all development environment sensitive files. Each operating
+ system has a file of its own and each development environment
+ has another one of its own too.
+
+ <br/>
+
+ As an example, the Win32 platform as a <code>Win32Defs.hpp</code> file
+ and the Visual C++ environment has a <code>VCPPDefs.hpp</code> file.
+ These files set up certain define tokens, typedefs,
+ constants, etc... that will drive the rest of the code to
+ do the right thing for that platform and development
+ environment. AIX/CSet have their own <code>AIXDefs.hpp</code> and
+ <code>CSetDefs.hpp</code> files, and so on. You should create new
+ versions of these files for your platform and environment
+ and follow the comments in them to set up your own.
+ Probably the comments in the Win32 and Visual C++ will be
+ the best to follow, since that is where the main
+ development is done.</li>
+
+ <li>Next, edit the file <code>XML4CDefs.hpp</code>, which is where all
+ of the fundamental stuff comes into the system. You will
+ see conditional sections in there where the above
+ per-platform and per-environment headers are brought in.
+ Add the new ones for your platform under the appropriate
+ conditionals.</li>
+
+ <li>Now edit <code>AutoSense.hpp</code>. Here we set canonical &XercesCProjectName;
+ internal <code>#define</code> tokens which indicate the platform and
+ compiler. These definitions are based on known platform
+ and compiler defines.
+ <br/>
+ <code>AutoSense.hpp</code> is included in <code>XML4CDefs.hpp</code> and the
+ canonical platform and compiler settings thus defined will
+ make the particular platform and compiler headers to be
+ the included at compilation.
+ <br/>
+ It might be a little tricky to decipher this file so be
+ careful. If you are using say another compiler on Win32,
+ probably it will use similar tokens so that the platform
+ will get picked up already using what is already there.</li>
+
+ <li>Once this is done, you will then need to implement a
+ version of the <ref>platform utilities</ref> for your platform.
+ Each operating system has a file which implements some
+ methods of the XMLPlatformUtils class, specific to that
+ operating system. These are not terribly complex, so it
+ should not be a lot of work. The Win32 verions is called
+ <code>Win32PlatformUtils.cpp</code>, the AIX version is
+ <code>AIXPlatformUtils.cpp</code> and so on. Create one for your
+ platform, with the correct name, and empty out all of the
+ implementation so that just the empty shells of the
+ methods are there (with dummy returns where needed to make
+ the compiler happy.) Once you've done that, you can start
+ to get it to build without any real implementation.</li>
+
+ <li>Once you have the system building, then start
+ implementing your own platform utilties methods. Follow
+ the comments in the Win32 version as to what they do, the
+ comments will be improved in subsequent versions, but they
+ should be fairly obvious now. Once you have these
+ implementations done, you should be able to start
+ debugging the system using the demo programs.</li>
+ </ol>
+ <p>That is the work required in a nutshell!</p>
+ </s2>
+
+
+ <anchor name="WCharT"/>
+ <s2 title="What should I define XMLCh to be?">
+
+ <p>The answer is 'it depends'. We will mention some of the
+ quirks that affect this decision. Hopefully, after reading
+ whats below, you will be able to best decide what the right
+ definition should be. We could not however, resist making a
+ suggestion. Some observations first:</p>
+
+ <ul>
+ <li>Xerces-C uses XMLCh as the fundamental type to hold
+ one Unicode character as, all processing inside Xerces-C
+ happens in Unicode.</li>
+
+ <li>Most modern C++ compilers today provide 'wchar_t' as a
+ fundamental type representing a 'wide character'. Most of them
+ define it in using a typedef. This typedef definition is not
+ consistent on all the platforms that we have come across.</li>
+
+ <li>The size of wchar_t varies among the various compilers. Its
+ either 16-bit or 32-bit. Fortunately, this only affects how
+ much memory you need, to process the XML data, while everything
+ is still in memory.</li>
+
+ <li>Again on most platforms wchar_t represents a unicode
+ character. HPUX, is one exception to this, that we know,
+ where wchar_t <em>does not</em> represent a unicode
+ character, rather its a native wide character.</li>
+
+ <li>Lastly, most OS's/compilers provide a system library to
+ manipulate wide character strings taking wchar_t and
+ wchar_t* arguments. Most applications which support
+ wide-characters make these system calls.</li>
+ </ul>
+
+ <p>Our suggestion is:</p>
+
+ <p>If your compiler defines wchar_t to represent a unicode
+ character, then define XMLCh to be wchar_t. Such a definition
+ will allow you to pass the data returned by the parser (all
+ api's return XMLCh, which is wchar_t) directly to the
+ wide-character system api's for i/o or manipulation. This is
+ most efficient and convenient.</p>
+
+ <p>However, if your compiler defines wchar_t to be just a
+ wide-character which is not Unicode, then define XMLCh to be
+ unsigned short. For the Xerces-C parser, XMLCh is always
+ Unicode. By defining it to be unsigned short and not wchar_t,
+ the compiler will not let you accidently pass what is
+ returned, via the parser API's, directly to the wide-character
+ library calls. To use the wide-character library of functions,
+ you will have to in your application, call some transcoding
+ function which will convert it from Unicode to the native
+ wide-character form. Again, if your application desires for
+ whatever reason, you may define XMLCh to be 'unsigned
+ long'. By doing so, you have just doubled the memory required
+ to process the XML file.</p>
+
+ <p>Hopefully, you will agree that the answer 'it depends' was
+ the right one.</p>
+ </s2>
+
+
+ <anchor name="BuildUsingLibWWW"/>
+ <s2 title="How can I generate Xerces-C binaries which includes the
+ sample NetAccessor implementation using Libwww?">
+
+ <p>This sample implementation has only been minimally tested
+ only under Windows NT using Libwww 5.2.8. We have not stress
+ tested our implementation can cannot guarantee that there are no
+ memory leaks. The error reporting is also not adequate. Further,
+ it only handles HTTP style URL's. As you can see, this
+ implementation is only for illustrative purposes. Much more work
+ is required to have a robust cross-platform implementation. We
+ would welcome any volunteers who would contribute code to make
+ this happen on various platforms.</p>
+
+ <p>The software that you need are:</p>
+ <ul>
+ <li>You need the &XercesCName; source archive for Windows.</li>
+ <li>LibWWW 5.2.8. Win32 binaries are available at: <jump
+ href="http://www.idm.ru/libwww.htm">http://www.idm.ru/libwww.htm</jump>.
+ Source archives and other details on LibWWW are available at <jump
+ href="http://www.w3.org/Library/">http://www.w3.org/Library/</jump>.</li>
+ </ul>
+
+ <p>All required changes in Xerces-C are restricted to the Project file
+ settings for the XercesLib. To simplify, we will make certain assumptions
+ about how LibWWW binaries (.lib) and header files are installed on your
+ machine.</p>
+
+ <ol>
+
+ <li>First generate all the LibWWW binaries by using the project
+ file supplied. Create a top level (say) <code>\libWWW</code>
+ directory on the same disk drive where you installed the
+ Xerces-C sources. Copy all the <code>.lib</code> files to
+ <code>\libWWW\lib</code> directory. Next, copy all the
+ <code>.dll</code> files to <code>\libWWW\bin</code> directory
+ and all the header (<code>*.h</code>) files to
+ <code>\libWWW\include</code> directory.</li>
+
+ <li>Next make the following changes to the Xerces-C lib project
+ settings. Invoke the project settings dialog box.</li>
+
+ <ol>
+ <li>In the 'C/C++ : Preprocessor : Preprocessor definitions' add
+ <code>XML_USE_NETACCESSOR_LIBWWW</code></li>
+
+ <li>In the 'C/C++ : Preprocessor : Additional include directories' add
+ <code>\libWWW\include</code>.</li>
+
+ </ol>
+
+ <li>Next, rather than listing all the 20 some LibWWW .lib files in the
+ link settings, add them as external files to the XercesLib project.
+ Right-Click on 'XercesLib files' and choose the 'Add Files to Project'
+ menu item. Next choose all the *.lib files in \libWWW\lib directory and
+ press 'ok'.</li>
+
+ <li>Next, create a new sub-folder in XercesLib:util folder, by
+ right-clicking on 'util' and choosing 'New Folder'. Call it 'libWWW'.</li>
+
+ <li>Add netaccessor files into this 'libWWW' folder again, by
+ right-clicking on 'libWWW' folder and choosing 'Add Files to
+ Folder'. Choose the four files in
+ <code><XercesCRoot>\src\util\NetAccessors\libWWW</code>
+ directory. These files are: <code>BinURLInputStream.[ch]pp and
+ LibWWWNetAccessor.[ch]pp</code>.</li>
+
+ <li>Rebuild the Xerces-C library.</li>
+
+ </ol>
+
+ <p>Make sure you have <code>\libWWW\bin</code> in your
+ <code>PATH</code> environment variable, before you run the
+ samples and refer to a XML file containing HTTP URL's to remote
+ resources.</p>
+
+ </s2>
+
+
+ <anchor name="LookForHelp"/>
+ <s2 title="Where can I look for more help?">
+ <p>If you have read this page, followed the instructions, and
+ still cannot resolve your problem(s), there is more help. You
+ can find out if others have
+ solved this same problem before you, by checking the
+ <jump href="http://xml-archive.webweaving.org/xml-archive-xerces/">
+ &XercesCProjectName; mailing list archives</jump>.</p>
+
+ <p>If all else fails, you may ask for help by subscribing to the
+ <jump href="mailto:&XercesCEmailAddress;">&XercesCName; mailing list</jump>.</p>
+ </s2>
+
+</s1>
diff --git a/doc/caveats.xml b/doc/caveats.xml
new file mode 100644
index 0000000..09dabd0
--- /dev/null
+++ b/doc/caveats.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE s1 SYSTEM "./dtd/document.dtd">
+
+<s1 title="Caveats and Limitations">
+ <s2 title="Miscellaneous">
+ <ul>
+ <li>SAXPrint does not output the <?XML ... ?> 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>Αλφαβητικός</li>
+ </ul>
+ </s2>
+</s1>
diff --git a/doc/html/apiDocs/XercesApi.css b/doc/html/apiDocs/XercesApi.css
index 2344de0..99fbb9d 100644
--- a/doc/html/apiDocs/XercesApi.css
+++ b/doc/html/apiDocs/XercesApi.css
@@ -12,4 +12,10 @@
TD.md { background-color: #f2f2ff }
DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold }
DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller }
-
+FONT.keyword { color: #008000 }
+FONT.keywordtype { color: #604020 }
+FONT.keywordflow { color: #e08000 }
+FONT.comment { color: #800000 }
+FONT.preprocessor { color: #806020 }
+FONT.stringliteral { color: #002080 }
+FONT.charliteral { color: #008080 }
diff --git a/doc/html/apiDocs/header.html b/doc/html/apiDocs/header.html
index 70cb4bf..9fe5f76 100644
--- a/doc/html/apiDocs/header.html
+++ b/doc/html/apiDocs/header.html
@@ -1,8 +1,5 @@
-<HTML><HEAD><SCRIPT language="JavaScript" src="../resources/script.js" type="text/javascript"></SCRIPT>
-<TITLE>API Documentation</TITLE>
-</HEAD>
-<BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="../resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="../resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="../resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="../graphics/api-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="../resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','../resources/button-xml-hi.gif','../resources/button-xml-lo.gif');" src="../resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','../resources/button-asf-hi.gif','../resources/button-asf-lo.gif');" src="../resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','../resources/button-w3c-hi.gif','../resources/button-w3c-lo.gif');" src="../resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="../resources/join.gif" vspace="0" width="120"><BR>
- <A href="../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG alt="Home" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','../graphics/ext-2-label-2.jpg','../graphics/ext-2-label-3.jpg');" src="../graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
+<HTML><HEAD><SCRIPT language="JavaScript" src="../resources/script.js" type="text/javascript"></SCRIPT><TITLE>$title</TITLE><link href="XercesApi.css" rel="stylesheet" type="text/css"></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="../resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="../resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="../resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="../graphics/api-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="../resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','../resources/button-xml-hi.gif','../resources/button-xml-lo.gif');" src="../resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','../resources/button-asf-hi.gif','../resources/button-asf-lo.gif');" src="../resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','../resources/button-w3c-hi.gif','../resources/button-w3c-lo.gif');" src="../resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="../resources/join.gif" vspace="0" width="120"><BR>
+ <A href="../../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG alt="Home" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','../graphics/ext-2-label-2.jpg','../graphics/ext-2-label-3.jpg');" src="../graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
@@ -37,5 +34,6 @@
<A href="http://xml.apache.org/websrc/cvsweb.cgi/xml-xerces/c/" onMouseOut="rolloverOff('side-ext-40');" onMouseOver="rolloverOn('side-ext-40');"><IMG alt="CVS Repository" border="0" height="12" hspace="0" name="side-ext-40" onLoad="rolloverLoad('side-ext-40','../graphics/ext-40-label-2.jpg','../graphics/ext-40-label-3.jpg');" src="../graphics/ext-40-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="http://xml-archive.webweaving.org/" onMouseOut="rolloverOff('side-ext-42');" onMouseOver="rolloverOn('side-ext-42');"><IMG alt="Mail Archive" border="0" height="12" hspace="0" name="side-ext-42" onLoad="rolloverLoad('side-ext-42','../graphics/ext-42-label-2.jpg','../graphics/ext-42-label-3.jpg');" src="../graphics/ext-42-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="14" hspace="0" src="../resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
- <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="../resources/void.gif" vspace="0" width="2"><B>API Docs for SAX and DOM</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10"> </TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#FFFFFF" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="../resources/void.gif" vspace="0" width="2"><B>API Docs for SAX and DOM</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10"> </TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
+ <P>
diff --git a/scripts/packageBinaries.pl b/scripts/packageBinaries.pl
index 63b980c..8844b7e 100644
--- a/scripts/packageBinaries.pl
+++ b/scripts/packageBinaries.pl
@@ -252,9 +252,9 @@
}
-
# Populate the samples directory
print ("\n\nCopying sample files ...\n");
+ system("cp $XERCESCROOT/version.incl $targetdir");
system("cp -Rfv $XERCESCROOT/samples/Projects/* $targetdir/samples/Projects");
system("cp -Rfv $XERCESCROOT/samples/SAXCount/* $targetdir/samples/SAXCount");
@@ -283,14 +283,16 @@
# Populate the docs directory
print ("\n\nCopying documentation ...\n");
system("cp -Rfv $XERCESCROOT/doc/* $targetdir/doc");
- # system("cp -Rfv $XERCESCROOT/doc/html/apiDocs/* $targetdir/doc/html/apiDocs");
system("cp $XERCESCROOT/Readme.html $targetdir");
system("cp $XERCESCROOT/credits.txt $targetdir");
system("cp $XERCESCROOT/LICENSE.txt $targetdir");
+
if (length($ICUROOT) > 0) {
system("cp $XERCESCROOT/license.html $targetdir");
system("cp $XERCESCROOT/license-IBM-public-source.html $targetdir");
}
+ system("rm -f $targetdir/doc/Doxyfile");
+ system("rm -rf $targetdir/doc/dtd");
system("rm -f $targetdir/doc/*.xml");
system("rm -f $targetdir/doc/*.ent");
system("rm -f $targetdir/doc/*.gif");
@@ -506,6 +508,8 @@
system("cp -Rf $XERCESCROOT/src/framework/*.hpp $targetdir/include/framework");
system("cp -Rf $XERCESCROOT/src/dom/D*.hpp $targetdir/include/dom");
+ system("cp -Rf $XERCESCROOT/version.incl $targetdir");
+
system("rm -f $targetdir/include/dom/*Impl.hpp");
system("rm -f $targetdir/include/dom/DS*.hpp");
system("cp -Rf $XERCESCROOT/src/internal/*.hpp $targetdir/include/internal");
@@ -581,6 +585,9 @@
system("rm -f $targetdir/samples/StdInParse/Makefile");
system("cp -Rf $XERCESCROOT/samples/EnumVal/* $targetdir/samples/EnumVal");
system("rm -f $targetdir/samples/EnumVal/Makefile");
+ if ($platform = "solaris") {
+ system("rm -Rf $targetdir/samples/EnumVal/Templates.DB");
+ }
system("cp -Rf $XERCESCROOT/samples/CreateDOMDocument/* $targetdir/samples/CreateDOMDocument");
system("rm -f $targetdir/samples/CreateDOMDocument/Makefile");
system("rm -f $targetdir/samples/Makefile");
@@ -588,7 +595,6 @@
# Populate the docs directory
print ("\n\nCopying documentation ...\n");
system("cp -Rf $XERCESCROOT/doc/* $targetdir/doc");
- # system("cp -Rf $XERCESCROOT/doc/html/apiDocs/* $targetdir/doc/html/apiDocs");
system("cp $XERCESCROOT/Readme.html $targetdir");
system("cp $XERCESCROOT/credits.txt $targetdir");
system("cp $XERCESCROOT/LICENSE.txt $targetdir");
@@ -596,6 +602,8 @@
system("cp $XERCESCROOT/license.html $targetdir");
system("cp $XERCESCROOT/license-IBM-public-source.html $targetdir");
}
+ system("rm -f $targetdir/doc/Doxyfile");
+ system("rm -rf $targetdir/doc/dtd");
system("rm -f $targetdir/doc/*.xml");
system("rm -f $targetdir/doc/*.ent");
system("rm -f $targetdir/doc/*.gif");
diff --git a/src/parsers/DOMParser.cpp b/src/parsers/DOMParser.cpp
index 096248b..323eb26 100644
--- a/src/parsers/DOMParser.cpp
+++ b/src/parsers/DOMParser.cpp
@@ -621,6 +621,7 @@
for (unsigned int index = 0; index < attrCount; ++index) {
const XMLAttr* oneAttrib = attrList.elementAt(index);
AttrImpl *attr = elemImpl->setAttribute(oneAttrib->getName(), oneAttrib->getValue());
+ attr->setSpecified(oneAttrib->getSpecified());
// Attributes of type ID. If this is one, add it to the hashtable of IDs
// that is constructed for use by GetElementByID().
diff --git a/tools/jars/style-apachexml.jar b/tools/jars/style-apachexml.jar
index 21e3f74..18d2ab4 100644
--- a/tools/jars/style-apachexml.jar
+++ b/tools/jars/style-apachexml.jar
Binary files differ
diff --git a/tools/jars/stylebook-1.0-b2.jar b/tools/jars/stylebook-1.0-b2.jar
index 80717e9..6093a25 100644
--- a/tools/jars/stylebook-1.0-b2.jar
+++ b/tools/jars/stylebook-1.0-b2.jar
Binary files differ