Home page of XML Pull Parser (XPP)

Why yet another API for XML (or why pull parsing is exciting)?

Xml Pull Parser (in short XPP) is a streaming pull XML parser and should be used when there is a need to process quickly and efficiently all input elements (for example in SOAP processors). Pull parsing is just one level up from tokenizing XML (and that is actually how XPP2 default implementation is done). This means that XPP is representing the simplest way of processing XML that you can get (working with tokenizer would be even lower level but is not simple and most of applications would be much more complex to extract useful information from XML tokens ...). With XPP pull parser it is easy to build a next layer on top of it such as standard SAX2 push model (a prototype SAX2 driver for XPP2 is available). Every SAX2 parser has a tokenizer and a pull interface buried inside and XPP2 exposes this layer allowing for faster XML processing - and that is what I wanted to achieve in XPP2 and what makes this project interesting :-)

XPP2 (the second version of XPP) consists of two parts: generic API and its implementations. The implementations are pluggable and currently available default one is optimized for size and speed and is not exposing DTD, entities, comments, or processing instructions to the user. Another one that will be using Xerces 2 XNI is under development. On top of XPP2 parser I have built a very simple XML document model API that allows to create XML node tree incrementally (so only parts of XML document that user read from input are actually in memory). As incremental and non-incremental node tree APIs are almost identical the user may access incremental tree node not knowing that it is constructed on demand! Please see an article on IBM developerWorks where XPP2 document model is compared with other leading Java implementations.

            -- Alek (XPP author)

Latest changes:

XPP3 is a successor of XPP2 (see below) that implements XmlPull API (for API documentation and samples see http://www.xmlpull.org). However XPP3/MXP1 currently supports only parsing and does not support incremental node tree from XPP2. XPP3 is currently in beta stage. Please download XPP3 and give it try!

XPP2 is our production quality a second version of completely redesigned and re-implemented XML Pull Parser. XPP2 is no longer developed and XPP3 should be used instead.

There is also available XML Software Autoupdate (XSA) file for XML Pull Parser.

The previous 1.1 version of XML Pull Parser is still available for download but no longer under development.

Please post your comments, suggestions for improvements (and bug reports!) to SoapRMI mailing list.


Aleksander Slominski @ Extreme! Computing Lab


[ IU CS ] [ Extreme! Computing ] [ XGWS ] [ XSOAP ]
Aleksander Andrzej Slominski
Last modified: $Id: index.html,v 1.12 2004/03/15 20:54:17 aslom Exp $