
Over the past few weeks I've been working on the HaXml library with a view to: creating a regression test suite improving handling of diagnostics separating stand-alone functionality from functionality requiring I/O laying groundwork for XML namespace processing improving conformance to the XML specification support for UTF-8 and UTF-18 input, as required by the XML spec access to external entities via HTTP This phase of work is pretty much done (though the code could still be much tidied up in many places, particularly the removal of code in the parser and lexer that is now effectively unused). The work has involved some small but extensive changes to the HaXml source code, including fairly radical restructuring in a couple of areas (notably the introduction of a new layer between the lexer and parser to handle parameter entity subsitution). The package now depends on Network.HTTP and my revised version of Network.URI (which in turn uses the Parsec parser combinators) [Two separate parser libraries required. Oh well.] The regression tests use HUnit. I'd like to think the improvements are sufficient to warrant their eventual folding back into the hierarchical library components, despite some small interface changes (mainly to type declarations rather than function interfaces). Also, I've not done any of the re-packaging work for incorporation into (say) the GHC distribution -- that's still rather a black art to me. I've created a snapshot of my work at: http://www.ninebynine.org/Software/HaskellUtils/20040609-Haxml-1.12.zip http://www.ninebynine.org/Software/HaskellUtils/20040609-Network.zip in the hope that folks can check it out and see if I've introduced any unacceptable incompatibilities with the existing HaXml package. The former ZIP file includes a copy of the W3C XML test suite, parts of which I'm using for my regression tests. A more detailed list of changes made can be found in the file: http://www.ninebynine.org/Software/HaskellUtils/HaXml-1.12/TODO.txt (and also in CVS logs that I've included at the end of each source file I've changed.) I should also note that all my development/testing has been done under Windows using Hugs, so there may possible be some wrinkles to iron out on other platforms (but I've generally not messed with likely platform-dependent code). I plan to push ahead with the various aspects of new functionality that I require for my applications, but I'll be happy to help where I can to fold these changes into the mainstream version of HaXml. #g ------------ Graham Klyne For email: http://www.ninebynine.org/#Contact
participants (1)
-
Graham Klyne