Browse thread
ANNOUNCE: Xmlm 1.0.0
- Bünzli_Daniel
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Bünzli_Daniel <daniel.buenzli@e...> |
| Subject: | ANNOUNCE: Xmlm 1.0.0 |
Hello, A new version of Xmlm is available. It is incompatible with the previous one. The callback interface was dropped in favour of a streaming (pull) interface. The tree interface was dropped in favour of a custom tree construction interface tightly integrated with the streaming interface. This has the following advantages : * The input and output processes become symmetric. * Reclaim your recursion ! There no inversion of control, the client drives the parsing process. * Makes it easy to create tag level parsers and use parser combinator approaches. * Allows to use the custom tree api on specific parts of the document only. You can get a feel of the new interface by looking at the examples at http://erratique.ch/software/xmlm/doc/Xmlm#ex Other significant changes are : * Namespace support, all names are now expanded names (attributes pertaining to namespaces are preserved in the result). * Whitespace stripping respects the xml:space attribute. * Xmlm is functorized on string and internal buffer types. Among other things this can be used to perform hash-consing, to overcome caml string limitations or to process the character stream, e.g. to normalize unicode characters or to convert to a custom encoding. * UTF-8 documents can start with an UTF-8 encoded BOM. * The file test/xhtml.ml couples each XHTML character entity with its corresponding UTF-8 encoded character string. You can use it to program a suitable entity callback to parse xhtml. (New) project homepage : http://erratique.ch/software/xmlm As always, your (possibly negative yet constructive) feedback is welcome, Daniel