                     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 Microsoft Visual C++.
                      The source code includes the parser, the well-
                      formedness checker, and a couple of small sample
                      applications.


