Hello Tobias, Would you mind posting some example source of each?
Thanks, Nicholas -----Original Message----- From: Tobias [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 18, 2008 1:03 AM To: [email protected] Subject: Re: pull parser I've implemented a pull parser on top of xercesc's internal XMLScanner interface and a corresponding push-based writer by using XMLFormatter. It's quite simple to implement pulling by using an event queue, getting the various read...-methods right was the laborious task. regards tobias ----- Original Message ----- From: "Boris Kolpackov" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Tuesday, June 17, 2008 11:02 PM Subject: Re: pull parser > David Bertoni <[EMAIL PROTECTED]> writes: > >> You can try the "progressive" parsing APIs, which report SAX events >> incrementally. See: >> >> SAX2XMLReader::parseFirst() >> SAX2XMLReader::parseNext() >> >> However, there is no control over the granularity of the parsing, so you >> should test to make sure what it produces will work for you. > > Interesting. I didn't know about this API. Looking at the documentation > it says that each call to parseNext() covers just one XML token (as > defined by the spec). Based on this it should be pretty straight- > forward to implement a custom pull parser on top of SAX2XMLReader, > e.g., something along these lines: > > - Have a queue of events. > - When SAX handlers are called they add corresponding events to the queue. > - When the user calls next(), the parser check if the queue is empty. > If it is the parser calls parseNext and the handlers add some event(s) > to the queue with the first one then returned to the user. > > Boris > > -- > Boris Kolpackov, Code Synthesis Tools > http://codesynthesis.com/~boris/blog > Open source XML data binding for C++: > http://codesynthesis.com/products/xsd > Mobile/embedded validating XML parsing: > http://codesynthesis.com/products/xsde
