306 lines
12 KiB
HTML
306 lines
12 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>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>
|