<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://expat.cvs.sourceforge.net"
     >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>5 June 2007</em>,
      Expat 2.0.1 released.
    </dt>
  <dd><p>Release 2.0.1 of the Expat XML parser is a bugfix release
    resolving both code and build related issues. Changes include:
    <ul>
      <li>Fixed: The character data handler's calling of XML_StopParser()
        was not handled properly; if the parser was stopped and the handler
        set to NULL, the parser would segfault.</li>
      <li>Fixed: Expat failed on EBCDIC systems as it assumed some character
        constants to be ASCII encoded.</li>
      <li>Minor cleanups of the test harness.</li>
      <li>Minor fixes for xmlwf and example programs.</li>
      <li>Fixes and improvements for the Windows platform.
        New Windows directory structure.</li>
      <li>Build fixes for various platforms: HP-UX, Tru64, Solaris 9.</li>
      <li>Build fixes for Unix:<br/>
        - Refreshed config.sub/config.guess.<br/>
        - Support both, DESTDIR and INSTALL_ROOT, without relying on GNU-Make specific features.<br/>
        - Patched configure.in to work better with Intel compiler.<br/>
        - Fixes to Makefile.in to have make check work correctly.</li>
      <li>Added Open Watcom support.</li>
    </ul>
  </p></dd>
</dl>
<dl>
  <dt><em>11 January 2006</em>,
      Expat 2.0.0 released.
    </dt>
  <dd><p>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:
    <ul><li>Fixed headers for use from C++.</li>
      <li>XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
        now return unsigned integers.</li>
      <li>Added XML_LARGE_SIZE switch to enable 64-bit integers for
        byte indexes and line/column numbers.</li>
      <li>Added support for AmigaOS.</li>
      <li>Some mostly minor bug fixes. SF issues include: 1006708,
        1021776, 1023646, 1114960, 1156398, 1221160, 1271642.</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>
  <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://devzone.intellitree.com/projects/expatmm/"
     >ExpatMM -- 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://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&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://sflogo.sourceforge.net/sflogo.php?group_id=10127&amp;type=2"
              width="125" height="37" border="0" alt="SourceForge.net Logo" />
          </a>
        </td>
      </tr>
    </table>
  </body>
</html>
