About XML Parsers

A couple of statement about XML parsers:

o Xerces is a state of the art XML parser from the Apache Software Foundation. It supports all important XML features and is actively maintained. Features include support for DTDs and XML Schema, Namespace support, SAX-2 support, DOM 2 and partially DOM 3 support. This parser is used by the Tamino API for Java.

o XP was developed by James Clark. The last available version is 0.5. There has been no further development so far. It supports SAX1 and DOM1 which does not include namespace or XML Schema support. This XML parser is used by the HTTP Client API for Java along with the DOM implementation from Docuverse.

o Of course there is also the MSXML parser from Microsoft, which is used by the Windows APIs (JScript API, ActiveX API).

o The XML parser (XP) of the HTTP Client API for Java is faster than the one used by the new Tamino API for Java (Xerces). However XP is deprecated and will not be developed any further. XP does not supply many of the new features (namespaces, XML Schema support etc.) that other parsers have.

o New XML parsers like Piccolo or XPP promise improved performance times. However, while comparing new XML parsers like Piccolo or XPP against other parsers, like Xerces, we couldn?t really measure so much difference. XPP also
requires you to switch to yet another object model for representing your documents (XmlNodes) which makes it not recommendable for most cases. Xerces as a parser is not bad after all. It is used for DOM and JDOM object model. DOM and JDOM perform on the same level (sometimes one is better, sometimes the other).

o Xerces and DOM use the not very well known feature of deferred node creation. That means that sub nodes are only created when they are accessed. This feature is ON by default and it?s impossible to see from the API which nodes actually have already been created. However, while this really saves time when reading large documents (with a lot of nodes) without actually accessing every node, the time is spend anyway once you touch the nodes because then the nodes are created.

[This message was edited by Christian Gengenbach on 27 Nov 2002 at 10:34.]