Login
User name:
Password:
Remember me 
Powered by BlogHarbor
Powered by BlogHarbor
Re: Push and Pull parsing
by Cowtowncoder
Hi Michael! Thank you for your results -- although results between the parsers in questions varies quite a bit depending on types of documents, your results are well within range I have seen. I was also initially surprised by the good performance of Xerces, but it has been consistently amongst fastest implementations, esp. for bigger documents. Sjsxp is also based on Xerces internals (I think; using XNI interface to low-level parsing aspects), which would indicate that sjsxp authors considered it well-performing. As to conformance, Xerces still has the best overall xml conformance, but from my testing with xmltest/saxtest, Woodstox appears at this point more conformant than Piccolo (75% pass rate vs. 50% pass rate; Xerces had ~90%). There is also on-going work to really close down remaining uncatched well-formedness issues (esp. regarding less commonly encountered cases -- basic WFC as nesting constraints and namespace collisions have been checked since 1.0), so I am hopeful that the performance difference is not just based on omitting checks that Xerces does (esp. checking of names should be fully xml 1.1 compliant, but not yet 1.0 compliant -- upgrading those should not significantly degrade performance. Anyway, I hope you will found it useful to use pull parsers for certain things -- I do know that for some tasks SAX is perfectly adequate (building full DOM[-like] trees, and by extension activities that rely on in-memory trees, which is probably the case for many XSLT tasks), but for others pull parsing (data binding, serialization) has its benefits.
Post comment:
  Receive comment notifications for this article
Subject: 
Comment: 
Comment verification:

Please enter the text you see inside the graphic to post your comment:
This blog does not allow anonymous comments. Please provide your username and password along with your comment.
Login information:
Username: 
Password: 
If you would like to post contact information on your comment, please enter your information into the optional fields below:
Contact information:
URL:  example: http://yourdomain.com