blob: e18c7b6bfad7cd3681824bb1cc8a3c3ebba6ae55 [file] [log] [blame]
<html>
<head>
<title>The Expat XML Parser</title>
<link rel="STYLESHEET" href="style.css" type="text/css" />
</head>
<body marginwidth="0" marginheight="0">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="corner"><img src="expat.png" alt="(Expat logo)" /></td>
<td class="banner"><h2>The Expat XML Parser</h2></td>
</tr>
<tr>
<td class="navbar"></td>
<td class="content">
<p>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 <a href="http://www.xml.com/pub/1999/09/expat/index.html"
>introductory article</a> on using Expat is available on
<a href="http://www.xml.com/">xml.com</a>.</p>
<ul>
<li>
<a href="http://sourceforge.net/projects/expat/"
>Expat project page (includes downloads)</a></li>
<li>
<a href="http://mail.libexpat.org/mailman/listinfo/"
>Mailing lists</a></li>
<li>
<a href="#wrappers"
>3rd-party wrappers (SAX, DOM, other language bindings)</a></li>
<li>
<a href="dev/cvs.html"
>CVS repository</a>
(<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/expat/"
>browse online</a>)</li>
<li>
<a href="http://sourceforge.net/bugs/?group_id=10127"
>Bug reports</a></li>
<li>
<a href="dev/">Notes for Expat maintainers</a></li>
</ul>
<p>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.</p>
<h3 id="news">News</h3>
<dl>
<dt><em>23 July 2004</em>,
Expat 1.95.8 released.
</dt>
<dd>
<p>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.</p>
<ul>
<li> 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. </li>
<li> 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.</li>
</ul>
</dd>
<dt><em>20 October 2003</em>,
Expat 1.95.7 released.
</dt>
<dd>
<ul>
<li> Fixed <code>enum XML_Status</code> issue (reported on
SourceForge many times), so compilers that are properly
picky will be happy. </li>
<li> Introduced an <code>XMLCALL</code> macro to control the
calling convention used by the Expat API; this macro should
be used to annotate prototypes and definitions of callback
implementations in code compiled with a calling convention
other than the default convention for the host
platform. </li>
<li> Improved ability to build without the
<b>configure</b>-generated <span
class="filename">expat_config.h</span> header. This is
useful for applications which embed Expat rather than
linking in the library. </li>
<li> Fixed a variety of bugs: see SF issues 458907, 609603,
676844, 679754, 692878, 692964, 695401, 699323, 699487,
820946. </li>
<li> Improved hash table lookups. </li>
<li> Added more regression tests and improved documentation. </li>
</ul>
<p>Our plan is to wait for a short while and re-release this
version as the long-awaited Expat 2.0 if no major problems are
identified. If significant problems are found, additional
iterative releases will be made as fixes are made.</p>
</dd>
<dt><em>15 October 2003</em>,
Upcoming release.
</dt>
<dd>
<p>We're working on getting the long-delayed Expat 1.95.7 out the
door. A snapshot of the current source code is available as <a
href= "expat-2003-10-15.tar.gz" >expat-2003-10-15.tar.gz</a>;
please give this a try on your platform and report how it works
for you to the <a href=
"http://mail.libexpat.org/mailman/listinfo/expat-discuss"
>expat-discuss</a> mailing list. Our goals for this release are
portability and stability.
</p>
</dd>
<dt><em>28 January 2003</em>,
Expat 1.95.6 released.
</dt>
<dd>
<ul>
<li> Added <code>XML_FreeContentModel()</code>. </li>
<li> Added <code>XML_MemMalloc()</code>,
<code>XML_MemRealloc()</code>,
<code>XML_MemFree()</code>. </li>
<li> Fixed a variety of bugs: see SF issues 615606, 616863,
618199, 653180, 673791. </li>
<li> Enhanced the regression test suite. </li>
<li> Man page improvements: includes SF issue 632146. </li>
</ul>
<p />
</dd>
<dt><em>6 September 2002</em>,
Expat 1.95.5 released.
</dt>
<dd>
<ul>
<li> Added <code>XML_UseForeignDTD()</code> for improved SAX2
support. </li>
<li> Added <code>XML_GetFeatureList()</code>. </li>
<li> Defined <code>XML_Bool</code> type and the values
<code>XML_TRUE</code> and <code>XML_FALSE</code>. </li>
<li> Use an incomplete struct instead of a <code>void*</code>
for the parser. </li>
<li> Fixed UTF-8 decoding bug that caused legal UTF-8 to be
rejected. </li>
<li> Finally fixed bug where default handler would report DTD
events that were already handled by another handler.
Initial patch contributed by Darryl Miles. </li>
<li> Removed unnecessary <code>DllMain()</code> function that
caused static linking into a DLL to be difficult. </li>
<li> Added VC++ projects for building static libraries. </li>
<li> Reduced line-length for all source code and headers to be
no longer than 80 characters, to help with AS/400
support. </li>
<li> Reduced memory copying during parsing (SF patch #600964). </li>
<li> Fixed a variety of bugs: see SF issues 580793, 434664,
483514, 580503, 581069, 584041, 584183, 584832, 585537,
596555, 596678, 598352, 598944, 599715, 600479, 600971. </li>
</ul>
<p />
</dd>
<dt><em>4 September 2002</em>,
<a href="dev/roadmap.html">Development roadmap</a> published.
</dt>
<dd>
<ul>
<li> The initial version of the development roadmap was released
for comment. </li>
</ul>
<p />
</dd>
</dl>
<p><a href="oldnews.html">Old news archive</a></p>
<h3 id="wrappers">References &amp; 3rd-party Wrappers</h3>
<p>If you know of any additional articles or resources which should be
linked to from this page, please send email to <a
href="mailto:fdrake@acm.org">Fred Drake (fdrake&#64;acm.org)</a>.
We're especially interested in links to tutorial information and open
source interfaces to Expat from languages other than C.</p>
<ul>
<li>
<a href="http://www.jclark.com/xml/expat.html"
>James Clark's original Expat page</a>, for Expat 1.2 and
earlier</li>
<li>
<a href="http://www.xml.com/pub/1999/09/expat/index.html"
>Introductory article</a> on using Expat on
<a href="http://www.xml.com/">xml.com</a></li>
<li>
Perl's <code>XML::Parser</code> module is a wrapper built around a
binding to Expat in the <code>XML::Parser::Expat</code> module.</li>
<li>
<a href="http://www.python.org/doc/current/lib/module-xml.parsers.expat.html"
>Documentation for the Python interface to Expat</a>, part of the
standard documentation for Python.</li>
<li>
<a href="http://saxdotnet.sourceforge.net/saxexpat.html"
>SAXExpat.NET</a>, a <a href="http://www.microsoft.com/net/">.NET</a>
wrapper for Expat, conforming to the
<a href="http://saxdotnet.sourceforge.net">SAX.NET</a> specifications.</li>
<li>
The <a href="http://www.nongnu.org/scew/">Simple C Expat Wrapper</a>
is a wrapper around Expat that provides a light-weight object model
somewhat like a DOM.</li>
<!-- Alex Conchillo Flaque: aconchillo at acm.org -->
<li>
<em><a href="http://www.codeproject.com/soap/expatimpl.asp"
title="C++ Wrappers for the Expat XML Parser">C++ Wrappers
for the Expat XML Parser</a></em>, an article by Tim Smith
providing object-oriented wrappers for Expat. The wrappers use
some MFC-biased naming, but look interesting.</li>
<li>
<a href="http://www.jezuk.co.uk/cgi-bin/view/arabica" title="Arabica"
>Arabica</a> -- an XML Parser toolkit for C++ programmers, with
SAX2 implementations based on several parsers, including Expat.</li>
<li>
<a href="http://www.expatpp.com/"
>expatpp -- C++ interface to Expat</a></li>
<li>
<a href="http://sourceforge.net/projects/kdsxml"
>SAX2 Wrapper for using Expat in Delphi,</a>
based on
<a href="http://saxforpascal.sourceforge.net"
>"SAX for Pascal"</a>
interface specs</li>
<li>
The <a href="http://tclxml.sourceforge.net/"
>TclXML project</a> includes a <a href="http://tcl.activestate.com/"
>Tcl</a> binding for Expat</li>
<li>
<a href="http://www.tdom.org/"
>tDOM</a> is an alternate package providing XML support for <a
href="http://tcl.activestate.com/" >Tcl</a>, based in part on
Expat.</li>
<li>
<a href="http://www.phpbuilder.com/columns/justin20000428.php3"
>Article on using Expat from PHP</a> on
<a href="http://www.phpbuilder.com/">&lt;?PHPBuilder?&gt;</a>
<br />(broken into lots of tiny pieces)</li>
<li>
<a href="http://expatobjc.sourceforge.net/"
>Objective-C interface to Expat</a></li>
<li>
<a href="http://home.wanadoo.nl/maas/ocaml/">OCaml Expat</a> is a
wrapper around Expat for the <a href="http://www.ocaml.org"
>Objective Caml</a> language.</li>
<li>
<a href="http://www.yoshidam.net/Ruby.html#xmlparser"
>Ruby interface to Expat</a></li>
<li>
<a href="http://www.latenightsw.com/freeware/XMLTools2/">XML Tools
2</a> is an AppleScript scripting addition that allows AppleScript
applications to work with XML data; it is based on Expat.</li>
<li>
<a href="http://www.simkin.co.uk/">Simkin</a> 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.</li>
<li>
<a href="http://easysoap.sourceforge.net/">EasySoap</a> is a C++
SOAP implementation which uses Expat.</li>
<li>
<a href=
"http://www.codepedia.com/wiki/display.aspx?WikiID=1&amp;pagename=thunks"
>A discussion</a> of another way to manage stateful callbacks, using
Expat as a sample library.</li>
<li>
The <a href="http://sourceforge.net/projects/gobo-eiffel/">GOBO
project</a> 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.)</li>
<li>
<a href="http://www.mitchenall.com/expat4d">Expat4D</a> is a plug-in
for the <a href="http://www.4duk.com/">4th Dimension</a> application
framework.</li>
</ul>
</td>
</tr>
<tr>
<td class="corner">
<a href="http://sourceforge.net/">
<img src="http://cvs.sourceforge.net/sourceforge_whitebg.gif"
width="136" height="79" border="0" alt="SourceForge
Logo" />
</a>
</td>
</tr>
</table>
</body>
</html>