OSR » Standard API for XML Processors

Status - Retracted

After much discussion on the mailing list and individuals involved in the development of some of the XML libraries I am retracting this proposal. It is not clear that having a standard XML API will help further the cause of OCaml and, it is conceivable, that it would actually hinder things.


XML, in today's world, is a very common means for expressing data for many different purposes such as configuration, message exchange, SOAP, and many other uses. One of the first programming tasks many developers attempt to do while learning a language is to read an XML document and handle its contents. OCaml has a rich and varied set of modules for processing XML. Each brings a unique set of capabilities and strengths. To an individual that is new to the language, this can be overwhelming for what, to them, should be a trivial task. Acceptance of OCaml as a pragmatic language is hampered from the start by the question 'which Xml library?'

The rationale for having a common API for XML processing modules is to remove the need for a new user to require experience in OCaml to determine which XML processing module to use. By having a common API that meets many of the simple uses of the XML format. From this common API generic documentation can be developed that steps a user through simply manipulation of parsed XML documents through the more complex use of accumulators in parsing documents.

API Recommendation

A first pass at the recommendation for a recommendation is located at http://alastor.bittwiddlers.com/~gmiller/XmlApi.html. The majority of this material was taken from the XML Light and Xmlm packages. This version attempts to address issues that were raised after a first version was posted by Gordon Miller. Specifically this version introduces

and a few other issues.