Frequently Asked Questions about Expat
Where can I get the latest version of expat?
The latest version of expat 1.X is available from ftp://ftp.jclark.com/pub/xml/expat/zipftp://ftp.jclark.com/pub/xml/expat.zip .  New versions of expat
will be available from 
http://expat.sourceforge.netexpat.sourceforge.net .
Where can I get help in using expat?
Try the xml-dev mailing list (subscribe by mailing to mailto:majordomo@xml.org&BODY=subscribe xml-devmajordomo@xml.org with the message 
subscribe xml-dev).  Alternatively try
the mailing lists hosted by 
http://expat.sourceforge.netsourceforge.net .
Where is expat's API documented?
In xmlparse/xmlparse.h.  There's also an advanced,
low-level API you can use which is documented in
xmltok/xmltok.h.
There's also an excellent http://www.xml.com/pub/1999/09/expat/index.htmlarticle about expat on XML.com by Clark Cooper.
Is there a simple example of using expat's API?
See sample/elements.c
How can I get expat to deal with non-ASCII characters?
By default, expat assumes that documents are encoded in UTF-8.  In
UTF-8, ASCII characters are represented by a single byte as they would
be in ASCII, but non-ASCII characters are represented by a sequence of
two or more bytes all with the 8th bit set.  The encoding most widely
used for European languages is ISO 8859-1 which is not compatible with
UTF-8.  To use this encoding, expat must be told either by supplying
an argument of 
"iso-8859-1" to
XML_ParserCreate, or by starting the document with
<?xml version="1.0" encoding="iso-8859-1"?>.
What encodings does expat support?
expat has built in support for the following encodings:
utf-8utf-16iso-8859-1us-asciiAdditional encodings can be supported by using
XML_SetUnknownEncodingHandler.
How can I get expat to validate my XML documents?
You can't.  expat is not a validating parser.
How can I get expat to read my DTD?
Compile with -DXML_DTD and call
XML_SetParamEntityParsing.
How can I get expat to recover from errors?
You can't.  All well-formedness errors stop processing.  Note that
the XML Recommendation does not permit conforming XML processors to
continue normal processing after a fatal error.
How do I get at the characters between tags?
Use XML_SetCharacterDataHandler.
How can I minimize the size of expat?
Compile with -DXML_MIN_SIZE. With Visual C++, use the
Win32 MinSize configuration: this creates an
xmlparse.dll that does not require
xmltok.dll.
mailto:jjc@jclark.comJames Clark 