@hackage HaXml1.19.2

Utilities for manipulating XML documents

    HaXml - Haskell utilities for processing XML
    --------------------------------------------

Installation instructions: We currently support nhc98, ghc, and Hugs. The automatic configuration detects which compilers/interpreters you have, and prepares a build tree for each. Installation requires write-permission on the system directories of the compiler/interpreter - the libraries and interfaces can then be used as "-package HaXml" (for ghc/nhc98 - no extra options required for Hugs). The standalone tools are installed to a directory of your choice.

For newer compilers, use Cabal to build and install:

runhaskell Setup.hs configure
runhaskell Setup.hs build
runhaskell Setup.hs install

For older compilers, use the traditional sequence:

./configure
make
make install

Options to configure are: --buildwith=... e.g. ghc-6.2, to build for a specific compiler --prefix=... e.g. /usr/local/bin, installation location for HaXml tools

Complaints to: :-) Malcolm.Wallace@cs.york.ac.uk

P.S. For those building on Windows /without/ Cygwin, you can avoid the need for configure/make steps by simply running the minimal build script in Build.bat You will need to edit it for the location of your compiler etc.


What this package contains:

docs/ Some rudimentary HTML documentation about the libraries. docs/HaXml/ Haddock-generated API documentation. examples/ Some small examples of how the libraries/tools are used.

src/Text/XML/HaXml/ Numerous support modules for processing XML. (The main APIs are as follows:) Types.hs Defines a (generic) representation for any XML document. Parse.hs Parses an XML document into the generic representation. ParseLazy.hs A more space-efficient parser. Pretty.hs Pretty-prints an XML document. Validate.hs Validates an XML document against a DTD. Combinators.hs Provides the combinators described in the ICFP'99 paper together with some other useful functions. SAX.hs A simple SAX-like stream-event-parser. Wrappers.hs Simple top-level wrappers for processing a single document using the combinators. XmlContent.hs A replacement class for Show/Read, to translate Haskell values to/from XML documents. Can be derived by DrIFT and/or DtdToHaskell. TypeMapping.hs Defines an explicit representation for Haskell types, allowing generation of a DTD from a Haskell value. OneOfN.hs Some support types (OneOf2 - OneOf20) for code generated by tools/DtdToHaskell.

src/Text/XML/HaXml/Html Extra support modules for processing HTML. Parse.hs An error-correcting HTML parser, produces the generic XML representation. Pretty.hs An HTML-specific pretty-printer. Generate.hs Some useful combinators for generating HTML content.

src/tools/ Standalone tools based on the library above. DtdToHaskell Translates an XML doc containing a DTD into a Haskell module containing data/newtype definitions. Xtract A structured 'grep' for XML docs, loosely based on the XPath and XQL query languages. Validate A simple validation tool for XML docs. Give it a DTD file and an XML file, and it reports all validation errors it can find. Canonicalise A 'cat' filter for XML docs, shows our "standard" parsing and pretty-printing behaviour. MkOneOf Generates a OneOfN type, given an N, together with its required instance of XmlContent. Sometimes types larger than OneOf20 are required in code generated by DtdToHaskell.

src/Text/XML/HaXml/Xtract Internal APIs of the Xtract tool. Parse.hs Parse an XPath query to produce a filter. Combinators.hs Modified version of the standard combinators.

src/Text/XML/HaXml/DtdToHaskell Internal APIs of the DtdToHaskell tool. TypeDef.hs A representation of the Haskell types corresponding to an XML DTD, and a pretty printer for them. Convert.hs Convert the standard DTD representation to the Haskell-like TypeDef representation. Instance.hs Generate appropriate XmlContent class instances for the TypeDefs.