                     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>\              The XML well-formedness checker and some general
                        information files.

    <top>\Doc\          API documentation for developers.

    <top>\Libs\         Pre-compiled dynamic libraries for developers.

    <top>\StaticLibs\   Pre-compiled static libraries for developers.

    <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.

    <top>\Unistall\     The uninstaller and its data files.
