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