Lists Home |
Date Index |
- From: Tyler Baker <firstname.lastname@example.org>
- To: David Megginson <email@example.com>
- Date: Tue, 24 Feb 1998 15:11:08 -0500
David Megginson wrote:
> Michael Kay writes:
> > >In a private message, one SAX user raised the issue again of multiple
> > >handlers
> > >Any further thoughts on this issue?
> > >
> > I've implemented a layer on top of SAX that provides not only multiple
> > handlers, but also per-element-type handlers. Since it is trivial to
> > implement this on top of SAX, I suggest it shouldn't go into SAX itself.
> I had this same thought when I was walking my girls to school after
> lunch. Unlike a GUI, which spends most of its time waiting for the
> user to do something interesting, an XML parser has to deal with
> hundreds or thousands of events each second, and perhaps millions of
> events in a hefty XML document.
> Upon reflection, I am becoming more inclined to agree with the
> arguments that people made in the first round, that the overhead of
> walking through a vector of handlers and delivering each event to each
> one can be excessive. Besides, as Michael rightly points out,
> implementing a multi-listener interface on top of SAX is trivial if
> you really need it.
You don't need to actually use a Vector, but you could instead use an array or
just a single object if the Vector was of length one. You may initially use a
Vector to store your the handlers, but when you are about to parse you could just
turn this into an array of handlers or else just a single handler. There are a
lot of ways to go about this so any performance loss would be a function of how
many handlers you are using. Nevertheless, SAX could just have a standard
MulticastHandler implementation that dispatches events to multiple handlers. I
think it would be useful to include in the Java SAX distribution a generic class
to do this sort of thing.
xml-dev: A list for W3C XML Developers. To post, mailto:firstname.lastname@example.org
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:email@example.com the following message;
To subscribe to the digests, mailto:firstname.lastname@example.org the following message;
List coordinator, Henry Rzepa (mailto:email@example.com)