http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Installation

API Docs
Samples
Programming
FAQs

Releases
Caveats
Feedback

Questions
 

Answers
 
Which DLL's do I need to distribute with my application?
 

The current Xerces distribution contains TWO shared libraries, xerces-c_1_0.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 libxerces-c1_0.a and libicu-uc.a, on Solaris/Linux it is called libxerces-c1_0.so and libicu-uc.so while on HP-UX it is called libxerces-c1_0.sl and libicu-uc.sl.


How do I package the sources to create a binary drop?
 

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 \<Xerces>\scripts directory, and type:

perl packageBinaries.pl

You will get a message that looks like:

Usage is: packageBinaries <options>
          options are:  -s <source_directory>
                        -o <target_directory>
                        -c <C compiler name> (e.g. gcc or xlc)
                        -x <C++ compiler name> (e.g. g++ or xlC)
                        -m <message loader> can be 'inmem', 'icu' or 'iconv'
                        -n <net accessor> can be 'fileonly' or 'libwww'
                        -t <transcoder> can be 'icu' or 'native'
                        -r <thread option> 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

Make sure that your compiler can be invoked from the command line and follow the instructions to produce a binary drop.


When will a port to my platform be available?
 

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.

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.

All such changes may be sent to <xerces-dev@xml.apache.org >.


How can I port Xerces to my favourite platform?
 

All platform dependent code in Xerces 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 Xerces.

  1. The directory 'src/util/Platforms' contains the platform sensitive files while 'src/util/Compilers' contains all development environment sensitive files. Each operating system has a file of its own and each development environment has another one of its own too.

    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.
  2. 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.
  3. Now edit 'AutoSense.hpp'. Here we set canonical Xerces internal #define tokens which indicate the platform and compiler. These definitions are based on known platform and compiler defines.
    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.
    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.
  4. 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.
  5. 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.

That is the work required in a nutshell.


I'm interested to know what application you used to create the documentation?
 

We have used an internal XML based application to create the documentation. The documentation files are all written in XML and the application, internally codenamed StyleBook, makes use of XSL to transform it into an HTML document that you are seeing right now.

The API documentation was created using DOC++ which is available from

http://www.zib.de/Visual/software/doc++/index.html


Can I get the source code for the C++ Builder TreeViewer application?
 

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.

This demo application parses the XML file, using Xerces, and displays the data as a tree.

The URL is: http://www.alphaWorks.ibm.com

We welcome your additional feedback at: <xerces-dev@xml.apache.org >


Can I use Xerces in my product?
 

Yes! Read the license agreement first and contact us at <xerces-dev@xml.apache.org > if you need assistance.




Copyright © 1999 The Apache Software Foundation. All Rights Reserved.