A SAX helper class: multiple document handlers

Michael Kay (M.H.Kay@eng.icl.co.uk)
Wed, 29 Apr 1998 17:02:21 +0100


There was discussion during the SAX specification debate of
the requirement to notify multiple handlers of the same
event.

I have written a simple (trivial!) handler which does this
(for document events only) and offer it as a candidate for a
standard "helper" class.

It is called MultiHandler, it implements the DocumentHandler
interface, and in addition supports the method:

addDocumentHandler(DocumentHandler d)

which allows the "real" application to register any number
of "real" DocumentHandlers to receive notification of the
events.

The registered handlers are called in the order they were
registered, except for endElement and endDocument, which are
called in the reverse order. This may seem strange, but I
found this useful when the handlers were generating XML or
HTML to the same output stream and I wanted it properly
nested.

You can find the java source on
http://home.iclweb.com/icl2/mhkay/MultiHandler.java

Any comments appreciated.

Regards, Mike Kay