[
Lists Home |
Date Index |
Thread Index
]
- From: David Megginson <david@megginson.com>
- To: "'xml-dev@xml.org'" <xml-dev@xml.org>
- Date: Tue, 14 Mar 2000 20:44:47 -0500 (EST)
Box, Don writes:
> 0) I think that the independence of ContentHandler, LexicalHandler,
> DTDHandler and ErrorHandler are carried a bit too far. In general,
> I would like to be able to ask the content handler for the lexical
> handler interface (a la Java's cast operator or COM's
> QueryInterface). To allow two distinct objects to be used, I would
> bake in the getter method instead of relying on the underlying type
> system.
I have often worried about the same thing, but there are a few reasons
for the approach:
1. In Java, it's not possible to use multiple class inheritance, so a
class that needs to inherit from something else (say, HashMap)
cannot also inherit from HandlerBase (SAX1) or DefaultHandler
(SAX2); that means that many implementors have to implement *every*
method in the interface. My own assumption in SAX1 was that many
people would need to implement DocumentHandler, but that very few
would be interested in DTDHandler, so it was an unfair burden to
make everyone implement all of the callback methods.
2. In SAX2, LexicalHandler and DeclHandler are not required interfaces
-- that is, implementations are free not to support them -- and I
expect that among those who do use them, LexicalHandler will be
much more heavily used than DeclHandler, so again, it makes sense
to separate them.
In Java, it's no problem for a single application class to implement
all of the interfaces -- I've been very careful to avoid method-name
collisions. In COM, are you required to use a separate class to
implement each interface? If so, maybe a different approach would
make sense for the COM implementation.
(I'll answer other points in separate replies.)
All the best,
David
--
David Megginson david@megginson.com
http://www.megginson.com/
***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************
|