OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   SAX2: Handler Interfaces

[ 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 Megginson                 david@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/


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS