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