****************************************************************************** README - PXP, the XML parser for O'Caml ****************************************************************************** ============================================================================== Pre-release of PXP, the XML parser for O'Caml ============================================================================== PXP is the new, completely revised and partly rewritten validating XML parser for O'Caml; the old name, "Markup", has been dropped. The current version of PXP is still a bit experimental because it is not fully tested; however, it is now stable enough to be used in experimental applications. PXP will retain most parts of Markup's API; the name PXP emphasizes the strengths of the API: it is the Polymorphic XML Parser. The document objects representing the parsed file have an interesting polymorphism which allows that the user of the parser can control which kind of objects are actually created. The current API supports the element type as criterion for object/class selection; future APIs will extend this concept such that arbitrary criterions are possible (e.g. you may want to have different classes for different namespaces). The current development goals of PXP are: - Full XML-1.0 conformance: The current pre-release is now very close to strict XML-1.0 conformance. The only bigger difference to the standard is that PXP sometimes accepts DTDs as legal while the standard forbids them (non-deterministic content models). One of the more important improvements since 0.2.10 is the possibility to represent XML documents internally as UTF-8 strings, not only as ISO-8859-1 strings. Thanks to Claudio Sacerdoti Coen who contributed a special lexer preprocessor hiding the details of the UTF-8 encoding in the lexer definitions. - Correctness of validation: The well-formedness and valididity constraints must be implemented as correct as possible. The last stable release had already a regression test covering many aspects of XML. The test suite will be extended. - Parsing performance: It should be possible to process large amounts of data in a reasoable period of time. The last stable release had many stages of processing that wasted time. The current pre-release is already 30 per cent faster than 0.2.10. - Simplicity of usage: Unlike parsers basing on imperative languages and DOM, the usage of PXP should be simple, even for complex tasks. The current parser API has already many advantages over DOM; especially it is well integrated into the functional and object-oriented language O'Caml. You do not have to deal with artificial representations like "node lists" while the programming environment already provides good support for list structures. The fact that O'Caml allows a functional programming style is interesting for programs transforming XML trees. ============================================================================== Download the PXP pre-release ============================================================================== The current pre-release is available under http://www.ocaml-programming.de/packages/pxp-pre-0.99.8.tar.gz [1]. There is currently no documentation for this version of the software; it is recommended to use the Markup manual [2] and compare it with the current module interfaces. Please note that this is work in progress; it may still contain bugs and irregularities. The parser works only with OCaml-3. The parser needs the netstring package [3], at least version 0.9.1. I am very interested in your opinion to PXP; please contact me [4]. ============================================================================== Author, Credits, Copying ============================================================================== PXP has been written by Gerd Stolpmann [5]; it contains contributions by Claudio Sacerdoti Coen. You may copy it as you like, you may use it even for commercial purposes as long as the license conditions are respected, see the file LICENSE coming with the distribution. It allows almost everything. ============================================================================== Where to find the stable release ============================================================================== Here. [6] -------------------------- [1] see http://www.ocaml-programming.de/packages/pxp-pre-0.99.8.tar.gz [2] see http://www.ocaml-programming.de/packages/documentation/markup/manual [3] see http://www.ocaml-programming.de/packages/documentation/netstring [4] see mailto:gerd@gerd-stolpmann.de [5] see mailto:gerd@gerd-stolpmann.de [6] see http://www.ocaml-programming.de/packages/documentation/markup