So the essence of XML is this: the problem it solves is not hard, and it does not solve the problem well.
The Essence of XML by Jerome Simeon and Philip Wadler, ACM Principles of Programming Languages, January 2003
I collected the references on this web page in preparation for a commentary on XML that I've been intending to write. As you can see, this commentary does not exist yet. However, the references are still useful even though the commentary has not been started.
MXP1: Xml Pull Parser, 3ed Edition
The Xerces DOMParser and the DOM object provide a nice way to process XML. The only problem is that the DOM object uses a lot of memory and building the DOM object can be time consuming, especially for large documents.
Then there is the SAX Parser. The SAX Parser uses callbacks, which means that the parsers calls "you" rather than "you" calling it. For anything but simple XML documents this makes SAX relatively useless.
Then there are XML "pull" parsers. These are parsers that "you" call to get the next token. The XML Pull parser linked above was developed by Indiana University at Bloomington. There is also an XmlPull web page at xmlpull.org.
XML is too hard for programmers by Tim Bray, March 16, 2003
Why XML Doesn't Suck by Tim Bray, March 24, 2003
Apparently after Tim Bray wrote the original article suggesting that all was not wonderful in the XML world he got enough flack that he wrote this article.
Xml Sucks on Ward Cunningham's www.c2.com Wiki Web site. As with many Wiki web pages, this web page reads a bit like a commentary annotated with graffiti. Cunningham is a member of the eXtreme Programming cult, of which Kent Beck is the prophet.
www.xmlsucks.org. This site has a link to a couple of essays on XML. My favorite is titled Does XML Suck? Or: Why XML is technologically terrible, but you have to use it anyway. That pretty much summarizes my view on XML and XML schemas.
www.xmlsuck.com This seems to be an on-line discussion of XML, its faults and its virtues. As is usually the case with such a forum, there is lots of heat and a little light.
The Expat XML Parser developed by James Clark (no, not the Netscape guy).
The main claim to fame, at least originally, for Expat, was speed. I don't know if this remains true compared to later versions of Xerces. However, this is the parser that was used for the Mozilla browser.
Using Expat by Clark Cooper, September 1999, published on www.xml.com.
This is James Clarks proposal for a language to describe XML documents. Relax NG is a competing proposal with XML schemsa.
This is an XML Security Library implemented in C. Of particular interest is code that implements the canonicalization features in the W3C XML security standard that allow digital signatures to be generated using cryptographic hashes, like MD5 or SHA-1.
Ian Kaplan
August 2004
Revised: