expat FAQ
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/zip
ftp://ftp.jclark.com/pub/xml/expat.zip
.  New versions of expat
will be available from
http://expat.sourceforge.net
expat.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%20xml-dev
majordomo@xml.org
with the message
subscribe xml-dev
).  Alternatively try
the mailing lists hosted by
http://expat.sourceforge.net
sourceforge.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.html
article
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-8
utf-16
iso-8859-1
us-ascii
Additional 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.com
James Clark
