                     Overview of the Expat distribution

The Expat distribution creates several subdirectories on your system.
Some of these directories contain components of interest to all Expat
users, and some contain material of interest to developers who wish to
use Expat in their applications.  In the list below, <top> is the
directory you specified to the installer.

  Directory           Contents
  ---------------------------------------------------------------------
  <top>\              Some general information files.

  <top>\Doc\          API documentation for developers.

  <top>\Bin\          Pre-compiled dynamic libraries for developers.
                      Pre-compiled static libraries for developers (*MT.lib).
                      The XML well-formedness checker xmlwf.

  <top>\Source\       Source code, which may interest some developers,
                      including a workspace for Microsft Visual C++.
                      The source code includes the parser, the well-
                      formedness checker, and a couple of small sample
                      applications.

  <top>\Source\bcb5\  Project files for Borland C++ Builder 5 and BCC 5.5.


