[fptools/libraries/HaXml: changeset 2002-08-08 12:52:45 by malcolm malcolm**20020808125245 Significant improvements to the documentation. ] { addfile ./docs/changelog.html hunk ./docs/Combinators.html 16 -Text.Xml.HaXml.Combinators is a combinator library for -generating, editing, and transforming XML documents in a generic -setting. It includes a small library for functions specifically -for generating HTML from XML. Input files are parsed as HTML if the -filename ends in .html or .htm - otherwise they are parsed as XML. +Text.Xml.HaXml.Combinators is a combinator library +for generating, editing, and transforming XML documents in +a generic setting. Text.Xml.HaXml.Html.Generate is a +small library of functions specifically for generating HTML +from XML. Text.Xml.HaXml.Wrappers contains the wrapper +precessXmlWith, in which input files are parsed as HTML if +the filename ends in .html or .htm - otherwise they are parsed as XML. hunk ./docs/Haskell2Xml.html 11 -Haskell2Xml is a library for translating Haskell data from any -program into a valid XML document (and back again), by generating a DTD -and the appropriate functions to write and write the XML format. In -principle, it gives an alternative to the standard Read and Show -classes, and allows you to use other standard XML-processing tools on -your Haskell datafiles. +Text.Xml.HaXml.Haskell2Xml is a library for translating Haskell +data from any program into a valid XML document (and back again), by +generating a DTD and the appropriate functions to write and write the +XML format. In principle, it gives an alternative to the standard Read +and Show classes, and allows you to use other standard XML-processing +tools on your Haskell datafiles. hunk ./docs/Haskell2Xml.html 21 -classes: you must create an instance of the Haskell2Xml class -for every datatype you wish to use for I/O. However, because this class -is not a standard one, no Haskell compilers support the -deriving clause for it yet. Fear not! There is a -pre-processor tool called DrIFT which derives class instances -automatically. We have extended DrIFT's ruleset to include the -Haskell2Xml class. The only remaining thing is to ensure that -you import the Haskell2Xml module everywhere you use it. +classes: you must create an instance of the Haskell2Xml +class for every datatype you wish to use for I/O. However, because +this class is not a standard one, no Haskell compilers support +the deriving clause for it yet. Fear not! There is a +pre-processor tool called +DrIFT +which derives class instances automatically. We have extended +DrIFT's ruleset to include the Haskell2Xml class. +The only remaining thing is to ensure that you import the +Text.Xml.HaXml.Haskell2Xml module everywhere you use it. hunk ./docs/Xml2Haskell.html 16 -DtdToHaskell is a tool (and Xml2Haskell provides the class -framework) for translating any valid XML DTD into equivalent Haskell -types. 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. +DtdToHaskell is a tool (and Text.Xml.HaXml.Xml2Haskell +provides the class framework) for translating any valid XML DTD +into equivalent Haskell types. 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. hunk ./docs/Xml2Haskell.html 23 -Usage: DtdToHaskell [xmlfile [outfile]]
+Usage: DtdToHaskell [dtdfile [outfile]]
hunk ./docs/Xml2Haskell.html 28 -The program reads and parses a DTD from xmlfile (in earlier -versions, it had to be a full XML file including both DTD and some -content - but now only the DTD is required). It generates into -outfile a Haskell module containing a collection of type -definitions plus some class instance declarations for I/O. +The program reads and parses a DTD from dtdfile (which may be +either just a DTD, or a full XML document containing an internal DTD). +It generates into outfile a Haskell module containing a +collection of type definitions plus some class instance declarations +for I/O. hunk ./docs/Xml2Haskell.html 35 -In order to use the resulting module, you need to import it, and also to -import Xml2Haskell. To read and write XML files as values of -the declared types, use the functions +In order to use the resulting module, you need to import it, and also +to import Text.Xml.HaXml.Xml2Haskell. To read and write +XML files as values of the declared types, use the functions hunk ./docs/Xml2Haskell.html 74 -External subset. As of 2000-11-16 (HaXml release 1.0), we support the +External subset. Since HaXml release 1.00, we support the hunk ./docs/Xml2Haskell.html 77 -IGNORE conditional sections. These were previously not supported by us. +IGNORE conditional sections. hunk ./docs/Xml2Haskell.html 79 -There are some fringe parts of the DTD we may not respect entirely -correctly - Tokenised Types and Notation Types. These cases are -not very common at the moment, but you might just trip over them. -If you find a problem, mail us: Malcolm.Wallace@cs.york.ac.uk +There are some fringe parts of the DTD we are not entirely sure +about - Tokenised Types and Notation Types. In particular, there +is no validity checking of these external references. If you find +a problem, mail us: Malcolm.Wallace@cs.york.ac.uk hunk ./docs/changelog.html 1 + + + + HaXml change log + + + + + +
+

HaXml change log

+
+
+ +

Changes for 1.06

+

+

+ +
+

+I didn't keep detailed changelogs for versions before 1.06, but +here are the highlights. + +

Changes for 1.05

+ + +

Changes for 1.04

+ + +

Changes for 1.03

+ + +

Changes for 1.02

+ + +

Changes for 1.01

+ + +

Changes for 1.00

+ + +

Changes for 0.9

+ + +

Changes for 0.8b

+ + +

Changes for 0.8a

+ + +

Changes for 0.8

+ + +

Changes for 0.7

+ + +

Changes for 0.6

+ + +

Changes for 0.5

+ + +

Changes for 0.4

+ + +

Changes for 0.3

+ + +

Changes for 0.2

+ + +

Release 0.1

+ + + + hunk ./docs/index.html 11 -

HaXml


+

HaXml

+
hunk ./docs/index.html 15 -Who wrote HaXml?
-Where can I get a copy?
+Downloads
+
+Recent news
+Contacts
+Related Work
+
hunk ./docs/index.html 26 -HaXml is a collection of utilities for using Haskell and XML +HaXml is a collection of utilities for using +Haskell and +XML hunk ./docs/index.html 46 - - http://homer.netmar.com/~john/computer/haskell/DrIFT/) + + http://repetae.net/~john/computer/haskell/DrIFT/) hunk ./docs/index.html 56 - loosely based on the XQL query language. + loosely based on the XPath and XQL query languages. hunk ./docs/index.html 68 +Some comparisons between functional language approaches to processing +XML can be found in + +Bijan Parsia's article on xml.com + +

hunk ./docs/index.html 96 -

  • index.html +
  • HaXml/index.html hunk ./docs/index.html 112 -

    Who wrote HaXml?

    +

    Downloads

    hunk ./docs/index.html 114 +Current version: +HaXml-1.06, release date 2002.07.xx
    +By HTTP: +.tar.gz, +.zip, +FreeBSD port. +
    +By FTP: + +ftp://ftp.cs.york.ac.uk/pub/haskell/HaXml/ + +

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

    Installation

    +

    +To install HaXml, you must have a Haskell compiler or interpreter: +ghc-5.02 or later, nhc98-1.14 or later, Hugs98-Dec2001 or later. If you +are using either of the compilers, you also need hmake-3.05 or later. +Use +

    +    ./configure  [ -hc=... ]
    +    make
    +    make install
    +
    +to configure, build, and install HaXml as a package for your compiler +or interpreter. Afterwards, to gain access to the HaXml libraries, +you only need to add the option -package HaXml to your +compiler commandline (not required for Hugs). Various stand-alone +tools are also built - DtdToHaskell, Xtract, Validate - if you are +going to use them, you should copy these to your final preferred +installation location by hand. + +
    +

    Recent news

    +

    +The latest version (1.06) has the following new features:
    +

    + +
    +Complete Changelog
    + +
    +

    Contacts

    +

    hunk ./docs/index.html 183 -suggestions for improvements, comments, criticisms. Please mail +suggestions for improvements, comments, criticisms, bug reports. Please mail hunk ./docs/index.html 196 -

    License: The library is Open Source, 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. - -

    -Related work: Christian Lindig has written an XML parser in O'Caml: - -here. Andreas Neumann of the University of Trier has written a -validating XML parser in Standard ML: -here. -Erik Meijer and Mark Shields have a design for a functional programming -language that treats XML documents as basic data types: -XMLambda. -Benjamin Pierce and Haruo Hosoya have a different but similar design in -XDuce, which is -also implemented. - - -


    -

    Where can I get a copy?

    -Current version
    - -HaXml version 1.06 release, 2002.07.xx -.tar.gz, -.zip, -Hugs .tar.gz, -Hugs .zip, -FreeBSD port.
    -(Use the new hierarchical namespace for modules. Add a validator for -checking generic document content against a DTD.) -
    +

    License: The library is Open Source, 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. HaXml is distributed under the Artistic License - see file +LICENSE for more details. (If you don't like the +licensing conditions, please contact us to discuss your requirements.) hunk ./docs/index.html 204 -Older versions
    - -

    -HaXml version 1.05 release, 2002.05.28 -.tar.gz, -.zip, -Hugs .tar.gz, -Hugs .zip, -FreeBSD port.
    -(In DtdToHaskell, fix some more bugs with empty PE References at the end -of an element content specification.) -
    - -

    -HaXml version 1.04 release, 2002.04.22 -.tar.gz, -.zip, -Hugs .tar.gz, -Hugs .zip.
    -(In DtdToHaskell, fixed a bug whereby an empty PE Reference at the end -of an element content specification caused a parse error - the DTD is now -accepted.) -
    - -

    -HaXml version 1.03 release, 2002.04.02 -.tar.gz, -.zip, -Hugs .tar.gz, -Hugs .zip.
    -(In DtdToHaskell, added tagname prefixes to the attribute names of -enumeration types, to disambiguate when attributes of the same name -have different value-sets within different tags. DtdToHaskell also -now accepts Tokenized and Notation types, mapping them to Strings. -Added an instance of Xml2Haskell for the Maybe type.) -
    - -

    -HaXml version 1.02 release, 2001.05.03
    -Complete source code and documents: -.tar.gz, -.zip, -Hugs .tar.gz, -Hugs .zip.
    -(Added instances of Haskell2Xml for Float and Double. Fixed a fault -in DtdToHaskell's treatment of default attribute values. Dtd parser -now accepts (#PCDATA)* as a valid element content specification.) -
    - -

    -HaXml version 1.01 release, 2001.01.24
    -Complete source code and documents: -.tar.gz -.zip
    -(Fixed DtdToHaskell's treatment of default values for attributes.) -
    - -

    -HaXml version 1.00, gold release, 2000.11.16
    -Complete source code and documents: -.tar.gz -.zip
    -(Finally added support for the external subset of DTDs.) -
    - -

    -HaXml version 0.9, beta release, 2000.02.22
    -Complete source code and documents: -.tar.gz -.zip
    -(Reworked the Haskell2Xml and Xml2Haskell modules.) -
    - -

    -HaXml version 0.8b, beta release, 2000.01.26
    -Complete source code and documents: -.tar.gz -.zip
    -(Some minor bugfixes to DrIFT, ensuring H'98 compatibility.) -
    - -

    -HaXml version 0.8a, beta release, 2000.01.12
    -Complete source code and documents: -.tar.gz -.zip
    -(No code changes - just some restructuring of the build tree.) -
    - -

    -HaXml version 0.8, beta release, 2000.01.05 -.tar.gz -.zip
    -(Bugfix: some PERefs didn't work.) -
    - -

    -HaXml version 0.7, beta release, 1999.10.12 -.tar.gz
    -(Fixed imports for GHC.) -
    - -

    -HaXml version 0.6, beta release, 1999.08.31 -.tar.gz
    -(Fixed preprocessor symbols to use the new standard __HASKELL98__.) -
    - -

    -HaXml version 0.5, beta release, 1999.08.27 -.tar.gz
    -(Added GE entity reference-handling to parser, tweaked the pretty-printer, -ensured Haskell'98 compliance.) -
    - -

    -HaXml version 0.4, alpha release, 1999.04.26 -.tar.gz
    -(Added separate HTML parser, some other bugfixes.) -
    - -

    -HaXml version 0.3, alpha release, 1999.04.20 -.tar.gz
    -(Bugfix release.) -
    - hunk ./docs/index.html 205 -HaXml version 0.2, alpha release, 1999.04.15 -.tar.gz
    -(Added Haskell2Xml and Xml2Haskell. Improved XML parser and printer.) -
    +

    Related work

    + hunk ./docs/index.html 229 -

    -XmlLib version 0.1, alpha release, 1999.01.12 -.tar.gz
    -(Initial release.) -
    +


    }