HaXml is a collection of utilities for parsing, filtering, transforming and generating XML documents using Haskell. Its basic facilities include: * A parser for XML. * A separate error-correcting parser for HTML. * An XML validator. * Pretty-printers for XML and HTML. For processing XML documents, the following components are provided: * Combinators is a combinator library for generic XML document processing, including transformation, editing, and generation. * Haskell2Xml is a replacement class for Haskell's Show/Read classes: it allows you to read and write ordinary Haskell data as XML documents. The DrIFT tool can automatically derive this class for you. * DtdToHaskell is a tool for translating any valid XML DTD into equivalent Haskell types. * In conjunction with the Xml2Haskell class framework, this allows you to generate, edit, and transform documents as normal typed values in programs, and to read and write them as human-readable XML documents. * Finally, Xtract is a grep-like tool for XML documents, loosely based on the XPath and XQL query languages. It can be used either from the command-line, or within your own code as part of the library.