IU Extreme Computing Lab soaprmi@extreme.indiana.edu http://www.extreme.indiana.edu/ XML Pull Parser 2 (XPP2) 2.1.8 20030307 http://www.extreme.indiana.edu/soap/xpp/ XPP2 is now no longer developed instead see XPP3/MXP1 at http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/ 2003-03-07 (XPP_2_1_9) * added standard JAR output that has no JAXP11 or SAX2 driver as requested by Ben Walding who wanted to be able to use JAXP11 parser and XPP2 and not worry about conflicts in CLASSPATH .. * fixed bug in XmlNoe.removeAttributeBy* that was showing if the attribute was first removed and then added - slot at position n in attribute array was incorrectly pointing to the same location as slot n-1 ... * changed readName to be more XML 1.0 and 1.1 compatible to allow full range of possible name characters and not rely on Java Character.isLower/uppercase ... * NOTE: backward incompatible change: fixed typo in method XmlStartTag.removeAtttributes -> removeAttributes name reported by Yogesh * added to XmlStartTag two new methods: removeAttributeByName(String uri, String localName) and removeAttributeByRawName(String rawName) * compiled and tested against latest Xerces 2 from CVS (bug with duplicated xmlns seems to be fixed in X2 CVS) * improved X2 cumulative reader to correctly support unshrinkable buffer 2002-04-03 (XPP_2_1_8) * fixed a bug in tokenizer: it was trying always to fill buffer even though one byte was still available - now it will use buffer to the end and then read new chunk from Reader * updated XPP2 implementation to compile with patched latest Xerces2.0.1 * added build and run scripts (finally ...) 2001-12-10 (XPP_2_1_7) * fixed SAX2 driver to correctly report prefixes and better handle invalid input for parsing * improved Xerces 2 driver to use Augmentations (working with BETA3 of Xerces2) 2001-11-21 (XPP_2_1_6_ALPHA) * fixed bug in default implementation of PullParser that prevented it from reading list of decalred namespaces when END_TAG is current event * added SAX2 driver that translates pull events into SAX2 push callbacks * added JAXP11 driver (based on code from Xerces 2 except for minimal changes) 2001-11-20 (XPP_2_1_5_ALPHA) * split XmlPullParser interface into proper XmlPullParser and separate "feature" interfaces XmlPullParserBufferControl and XmlPullParserEventPosition that clearly mark optional interfaces. NOTE: for XmlPullParser pp use if(pp instanceof XmlPullParserBufferControl) to check if an optional interface is implemented by pull parser 2001-10-18 (VER_2_1_4_ALPHA) * X2 driver is no integrated with latest Xerces 2 XNI and the problem with EOL normalization is gone however there is another problem related to attribute value normalization - reported to Xerces 2 mailing list. * added more tests and removed some namespace bugs 2001-10-18 (VER_2_1_3_ALPHA) * X2 driver is becoming quite stable and passes almost all tests except two reported bugs in Xerces 2 and lack of support for low level parsing (control of input buffer and event position): 1. [major] handling of end-of-line normalization is incosistent with XML spec ... (commented out checks in testNormalizeLine() from ParserTest for now) 2. [minor] apparently Xerces allows duplicate attribute with namespaces to be declared (commented one line checking it in testAttribUniq from ParserTest for now) * it is also very easy to switch between X2 driver and default XPP2 driver implementation or even control it by system property (similarly to JAXP). when both drivers are on CLASSPATH normally first on CLASSPATH will be used but the selection can be forced with system property by writing: XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserF actory.DEFAULT_PROPERTY_NAME)); 2001-10-10 (VER_2_1_2_ALPHA) * a first milestone towards support of other parser engines in XPP2 and SAX2 driver. initial X2 driver can run simple count sample but does not pass internal XPP2 unit tests (yet!) 2001-08-20 (XPP_VER_2_0_2 is the same as VER_2_0_1_BETA8) Stable 2.0.2 version released and frozen! Summary of changes since initial 2.x version: * reduced memory footprint of node tree by 50% (both Node and PullNode), * increased performance tree node build by 20% * improved and optimized output (Formatter and Recorder) * much more of JUnit tests * added PalmOS Midlet sample * small changes and improvement in API * fixed few bugs ... 2001-08-20 (VER_2_0_1_BETA8) * fixed bug that prevented to add first attribute to StartTag (ensureCapacity called with 2*size where size == 0 ... ) reported by Dennis Sosnoski. bug was introduced when fine tuning memory footprint in BETA6... * XmlPullNode.getPullParser() will now correctly parse unfinished children before returning parser, add JUnit tests... * changed XmlPullParser.getCurrentEvent() to getEventType() * switch to use in build.xml tar/gzip instead of zip (much smaller output archive!) Complete list of changes available at: http://www.extreme.indiana.edu/xgws/xsoap/xpp/download/PullParser2/doc/changes.html