]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/pxp/pxp/doc/PRERELEASE
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / doc / PRERELEASE
1 ******************************************************************************
2 README - PXP, the XML parser for O'Caml
3 ******************************************************************************
4
5
6 ==============================================================================
7 Pre-release of PXP, the XML parser for O'Caml
8 ==============================================================================
9
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. 
14
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 
22 namespaces). 
23
24 The current development goals of PXP are:
25
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 
34    definitions. 
35    
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 
39    be extended.
40    
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.
45    
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.
54    
55 ==============================================================================
56 Download the PXP pre-release
57 ==============================================================================
58
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.
63
64 Please note that this is work in progress; it may still contain bugs and 
65 irregularities.
66
67 The parser works only with OCaml-3. The parser needs the netstring package [3], 
68 at least version 0.9.1. 
69
70 I am very interested in your opinion to PXP; please contact me [4].
71
72 ==============================================================================
73 Author, Credits, Copying
74 ==============================================================================
75
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. 
80
81 ==============================================================================
82 Where to find the stable release
83 ==============================================================================
84
85 Here. [6]
86
87
88 --------------------------
89
90 [1]   see http://www.ocaml-programming.de/packages/pxp-pre-0.99.8.tar.gz
91
92 [2]   see http://www.ocaml-programming.de/packages/documentation/markup/manual
93
94 [3]   see http://www.ocaml-programming.de/packages/documentation/netstring
95
96 [4]   see mailto:gerd@gerd-stolpmann.de
97
98 [5]   see mailto:gerd@gerd-stolpmann.de
99
100 [6]   see http://www.ocaml-programming.de/packages/documentation/markup
101
102
103