| <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> |