320 lines
13 KiB
HTML
320 lines
13 KiB
HTML
<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>28 January 2005</em>,
|
||
Expat pre-release snapshot made available.
|
||
</dt>
|
||
<dd>
|
||
<p>We've posted a <a href=
|
||
"http://www.libexpat.org/expat-2005-01-28.tar.gz" >pre-release
|
||
distribution snapshot</a> 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.</p>
|
||
<p>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.</p>
|
||
</dd>
|
||
<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
|
||
expat-2003-10-15.tar.gz (no longer available);
|
||
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 & 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@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>
|
||
<a href="http://www.keplerproject.org/luaexpat/">LuaExpat</a> is a
|
||
wrapper around Expat for the <a href="http://www.lua.org/">Lua</a>
|
||
programming language. The <a href=
|
||
"http://www.keplerproject.org/luasoap/">LuaSOAP</a> library is a <a
|
||
href="http://xml.coverpages.org/soap.html">SOAP</a> implementation
|
||
built on top of <a href= "http://www.keplerproject.org/luaexpat/"
|
||
>LuaExpat</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 for .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/"><?PHPBuilder?></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://www.xs4all.nl/~mmzeeman/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&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>
|