                     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 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>\Unistall\   The uninstaller and its data files.
