SAX2: pull interface

Miles Sabin msabin at cromwellmedia.co.uk
Tue Jan 18 17:24:46 GMT 2000


Stefan Haustein wrote,
> Actually, I have already implemented a "Pull Wrapper" on 
> top of SAX.
<snip/>
> My wrapper is LGPL-available at http://www.trantor.de/xml

Hmm ... interesting.

I guess that you must being running a plain SAX push parser in a
separate thread, and adding ParseEvents to a queue for
consumption by the pull client. At least, that's the usual
way of adapting push to pull.

I must admit that if I needed a pull parser I'd rather have
one that could run in a single thread and didn't have the
queueing overhead. But that means I'd have to have a state-
machine rather than recursive descent based parser. I think that
most SAX parsers are RD, so that'd mean new parsers ... and if
I needed a new parser I'd probably take the opportunity to
design an API that suited the task well rather than trying to
bolt it onto SAX.

OTOH, once you've got a pull parser it's very easy to construct
a push API on top of it and drive it,

  while(puller.hasNext())
    pushClient.handleEvent(puller.getNext());

So maybe we've been doing things back to front ;-)

> If someone else is implementing a pull parser, we should 
> try to agree on a common, parser independent interface.
> (e.g. org.xml.pullparser.* ?).

I think this would be a useful initiative.

Cheers,


Miles

-- 
Miles Sabin                       Cromwell Media
Internet Systems Architect        5/6 Glenthorne Mews
+44 (0)20 8817 4030               London, W6 0LJ, England
msabin at cromwellmedia.com          http://www.cromwellmedia.com/


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.





More information about the Xml-dev mailing list