|
Expat is an XML parser library written in C. It is a
stream-oriented parser in which an application registers handlers for
things the parser might find in the XML document (like start tags).
An introductory article on using Expat is available on
xml.com.
This project aims to maintain Expat for both current and future
users while improving the API to allow more reliable and robust access
from "scripting" languages such as Python and Perl. We invite the
community to participate on the mailing lists to help shape the future
of Expat.
News
- 11 January 2006,
Expat 2.0.0 released.
Release 2.0.0 of the Expat XML parser is the end point of the
1.95.X series of releases. The goal was to solidify and stabilize
the implementation of the given API, to add desirable features as
long as they fit with the API, and to keep the API backwards compatible
if extensions were required. Changes include:
- Fixed headers for use from C++.
- XML_GetCurrentLineNumber() and XML_GetCurrentColumnNumber()
now return unsigned integers.
- Added XML_LARGE_SIZE switch to enable 64-bit integers for
byte indexes and line/column numbers.
- Added support for AmigaOS.
- Some mostly minor bug fixes. SF issues include: 1006708,
1021776, 1023646, 1114960, 1156398, 1221160, 1271642.
- 27 December 2005,
Final Expat 2.0 pre-release snapshot made available.
-
This
pre-release distribution is based on the feedback we got from the
Dec. 23 snapshot and represents the final opportunity for
feedback before the actual release goes out.
We plan to release after the New Year.
- 23 December 2005,
Expat 2.0 pre-release snapshot (another one) made available.
-
As nothing happened here for a long time, we've posted another
pre-release
distribution snapshot of the code currently in CVS on
libexpat.org. Please try this out and report any problems you
have. We'd like to get Expat 2.0 out soon.
A late addition was the new (optional) XML_LARGE_SIZE
feature to enable 64-bit integers on some API members. Please check
how it builds and works for you.
- 28 January 2005,
Expat pre-release snapshot made available.
-
We've posted a pre-release
distribution snapshot of the code currently in CVS on
libexpat.org. Please try this out and report any problems you
have. We'd like to get a release out soon.
The coming release will either be 1.95.9 or 2.0, depending
primarily on the response to this snapshot. If we do decide to
make this 1.95.9, then we'll try to follow up with 2.0 in about a
month.
- 23 July 2004,
Expat 1.95.8 released.
-
The release schedule described in the previous news item didn't
work out. As a compensation, we've fixed a number of the
nuissance warnings generated on many platforms, and added a nice
new suspend/resume feature to the parser.
- Major new feature: suspend/resume. Handlers can now request
that a parse be suspended for later resumption or aborted
altogether. See "Temporarily Stopping Parsing" in the
documentation for more details.
- Some mostly minor bug fixes, but compilation should no
longer generate warnings on most platforms. SF issues
include: 827319, 840173, 846309, 888329, 896188, 923913,
928113, 961698, 985192.
Old news archive
References & 3rd-party Wrappers
If you know of any additional articles or resources which should be
linked to from this page, please send email to Fred Drake (fdrake@acm.org).
We're especially interested in links to tutorial information and open
source interfaces to Expat from languages other than C.
-
James Clark's original Expat page, for Expat 1.2 and
earlier
-
Introductory article on using Expat on
xml.com
-
LuaExpat is a
wrapper around Expat for the Lua
programming language. The LuaSOAP library is a SOAP implementation
built on top of LuaExpat.
-
Perl's
XML::Parser module is a wrapper built around a
binding to Expat in the XML::Parser::Expat module.
-
Documentation for the Python interface to Expat, part of the
standard documentation for Python.
-
SAXExpat.NET, a .NET
wrapper for Expat, conforming to the
SAX for .NET specifications.
-
The Simple C Expat Wrapper
is a wrapper around Expat that provides a light-weight object model
somewhat like a DOM.
-
C++ Wrappers
for the Expat XML Parser, an article by Tim Smith
providing object-oriented wrappers for Expat. The wrappers use
some MFC-biased naming, but look interesting.
-
Arabica -- an XML Parser toolkit for C++ programmers, with
SAX2 implementations based on several parsers, including Expat.
-
expatpp -- C++ interface to Expat
-
SAX2 Wrapper for using Expat in Delphi,
based on
"SAX for Pascal"
interface specs
-
The TclXML project includes a Tcl binding for Expat
-
tDOM is an alternate package providing XML support for Tcl, based in part on
Expat.
-
Article on using Expat from PHP on
<?PHPBuilder?>
(broken into lots of tiny pieces)
-
Objective-C interface to Expat
-
OCaml Expat is a
wrapper around Expat for the Objective Caml language.
-
Ruby interface to Expat
-
XML Tools
2 is an AppleScript scripting addition that allows AppleScript
applications to work with XML data; it is based on Expat.
-
Simkin is an open source
scripting language available under the GNU LGPL. It can be embedded
in XML and supports a DOM-like API backed by Expat.
-
EasySoap is a C++
SOAP implementation which uses Expat.
-
A discussion of another way to manage stateful callbacks, using
Expat as a sample library.
-
The GOBO
project is working on an Eiffel binding for Expat. Development
is active and the package is fully supported in GOBO 3.0 and 3.1,
though there isn't much status information about the Expat bindings
on the website. (Most activity is reportedly on the relevant
mailing lists.)
-
Expat4D is a plug-in
for the 4th Dimension application
framework.
|