<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">

<HTML>

<TITLE>expat</TITLE>

<BODY>

<H1>expat - XML Parser Toolkit</H1>

<H3>Version 19990728</H3>

<P>Copyright (c) 1998, 1999 James Clark.  Expat is subject to the <A
HREF="http://www.mozilla.org/NPL/NPL-1_1Final.html">Mozilla Public
License Version 1.1</A>.  Alternatively you may use expat under the <A
href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
License</A> instead.  Please contact me if you wish to negotiate an
alternative license.</P>

<P>This is a test version of expat which adds support for parsing
external DTDs and parameter entities.  Compiling with -DXML_DTD
enables this support.  There's a new <CODE>-p</CODE> option for xmlwf
which will cause it to process external DTDs and parameter entities;
this implies the <CODE>-x</CODE> option.  See the comment above
<CODE>XML_SetParamEntityParsing</CODE> in <CODE>xmlparse.h</CODE> for
the API addition that enables this.</P>

<P>Expat is an <A
HREF="http://www.w3.org/TR/1998/REC-xml-19980210">XML 1.0</A> parser
written in C. It aims to be fully conforming.  It is currently not a
validating XML processor.  The current production version of expat can
be downloaded from <A href = "ftp://ftp.jclark.com/pub/xml/expat.zip"
>ftp://ftp.jclark.com/pub/xml/expat.zip</A>.</P>

<P>The directory <SAMP>xmltok</SAMP> contains a low-level library for
tokenizing XML.  The interface is documented in
<SAMP>xmltok/xmltok.h</SAMP>.</P>

<P>The directory <SAMP>xmlparse</SAMP> contains an XML parser library
which is built on top of the <SAMP>xmltok</SAMP> library.  The
interface is documented in <SAMP>xmlparse/xmlparse.h</SAMP>.  The
directory <SAMP>sample</SAMP> contains a simple example program using
this interface; <SAMP>sample/build.bat</SAMP> is a batch file to build
the example using Visual C++.</P>

<P>The directory <SAMP>xmlwf</SAMP> contains the <SAMP>xmlwf</SAMP>
application, which uses the <SAMP>xmlparse</SAMP> library. The
arguments to <SAMP>xmlwf</SAMP> are one or more files which are each
to be checked for well-formedness. An option <SAMP>-d
<VAR>dir</VAR></SAMP> can be specified; for each well-formed input
file the corresponding <A
href="http://www.jclark.com/xml/canonxml.html">canonical XML</A> will
be written to <SAMP>dir/<VAR>f</VAR></SAMP>, where
<SAMP><VAR>f</VAR></SAMP> is the filename (without any path) of the
input file.  A <CODE>-x</CODE> option will cause references to
external general entities to be processed.  A <CODE>-s</CODE> option
will make documents that are not standalone cause an error (a document
is considered standalone if either it is intrinsically standalone
because it has no external subset and no references to parameter
entities in the internal subset or it is declared as standalone in the
XML declaration).</P>

<P>The <SAMP>bin</SAMP> directory contains Win32 executables.  The
<SAMP>lib</SAMP> directory contains Win32 import libraries.</P>

<P>Answers to some frequently asked questions about expat can be found
in the <A HREF="http://www.jclark.com/xml/expatfaq.html">expat
FAQ</A>.</P>

<P></P>

<ADDRESS>

<A HREF="mailto:jjc@jclark.com">James Clark</A>

</ADDRESS>

</BODY>

</HTML>
