HaXml

What is HaXml?
How do I use it?
Downloads
Recent news
Contacts
Related Work

What is HaXml?

HaXml is a collection of utilities for parsing, filtering, transforming, and generating XML documents using Haskell. Its basic facilities include:

For processing XML documents, the following components are provided:


How do I use it?

Detailed documentation of the HaXml APIs is generated automatically by Haddock directly from the source code.

An introduction to HaXml for people who know more about XML than about Haskell can be found at IBM DeveloperWorks.

A paper describing and comparing the generic Combinators with the typed representation (DtdToHaskell/Xml2Haskell) is available here: (12 pages of double-column A4)

Some additional info about using the various facilities is here:

Known problems:


Downloads

Current version: HaXml-1.13.2, release date 2006.09.08
By HTTP: .tar.gz, .zip.
By FTP: ftp://ftp.cs.york.ac.uk/pub/haskell/HaXml/
FreeBSD port: http://freshports.org/textproc/haxml/

Development version: The development version of HaXml is available separately. See http://www.cs.york.ac.uk/fp/HaXml-devel/

Older versions:
By FTP: ftp://ftp.cs.york.ac.uk/pub/haskell/HaXml/

Installation

To install HaXml, you must have a Haskell compiler: ghc-5.02 or later, and/or nhc98-1.14/hmake-3.06 or later, and/or Hugs98 (Sept 2003) or later. Use

    ./configure [--prefix=...] [--buildwith=...]
    make
    make install
to configure, build, and install HaXml as a package for your compiler(s). You need write permission on the library installation directories of your compiler(s). Afterwards, to gain access to the HaXml libraries, you only need to add the option -package HaXml to your compiler commandline (no option required for Hugs). Various stand-alone tools are also built - DtdToHaskell, Xtract, Validate, MkOneOf - and copied to the final installation location specified by the --prefix=... option to configure.

To build/install on a Windows system without the Cygwin shell and utilities, you can avoid the configure/make steps by simply using the minimal Build.bat script. Edit it first for the location of your compiler etc.


Recent news

Graham Klyne has extended the 1.12 version of HaXml significantly, in particular to ensure that the parser passes a large XML acceptance test suite, and to deal more correctly with Unicode, namespaces, and parameter entity expansion. His modifications will eventually be merged back in to the main tree, but in the meantime, you can get his version here: http://www.ninebynine.org/Software/HaskellUtils/

The latest stable version (1.13.2) has the following features and fixes:

The prior version (1.13.1) has the following features and fixes:

Version 1.13 has the following features and fixes:


Complete Changelog

Contacts

We are interested in hearing your feedback on these XML facilities - suggestions for improvements, comments, criticisms, bug reports. Please mail

Development of these XML libraries was originally funded by Canon Research Europe Ltd.. Subsequent maintenance and development has been partially supported by the EPSRC, and the University of York.

Licence: The library is Free and Open Source Software, i.e., the bits we wrote are copyright to us, but freely licensed for your use, modification, and re-distribution, provided you don't restrict anyone else's use of it. The HaXml library is distributed under the GNU Lesser General Public Licence (LGPL) - see file LICENCE-LGPL for more details. We allow one special exception to the LGPL - see COPYRIGHT. The HaXml tools are distributed under the GNU General Public Licence (GPL) - see LICENCE-GPL. (If you don't like any of these licensing conditions, please contact us to discuss your requirements.)


Related work