SAX: do we want a base class (was Re: SAX: towards a solution)

David Ornstein davido at
Sat Jan 3 18:28:23 GMT 1998

You wrote [09:32 AM 1/3/98 ]:
>David Ornstein writes:
> > >I am also assuming that we will provide not only a callback interface,
> > >but also an (optional) base class with stub methods that implementors
> > >can override as needed; that means that novice users will not have to
> > >implement all of SAX, even if we do end up with nine or ten methods.
> > 
> > This worries me.  My interest is in implementations of SAX-clients in C++.
> > Will I have, as part of somebody's SAX implementation that I'm using, this
> > (optional) base class available to me too?  How about people working in
> > other languages (somebody mentioned tcl, for example)?  I'd assume not.
>Thank you for your feedback.  Right now, I am proposing SAX as two
>core interfaces (one for the parser and one for the user event

Good.  Sounds right.

>together with an optional base class.  Some OO languages do
>not support interfaces, in which case the interfaces themselves will
>have to be implemented as an abstract base classes.

Clearly.  In C++ I use interfaces all the time and think they are essential
to building good systems.

>I'm afraid that I do not understand why would it be difficult to
>implement the XmlAppBase base class in, say, C++, Perl5, or iTcl as
>well as Java?  I am certainly not depending on any Java-specific
>behaviour in it (there is no dynamic type checking or class loading).
>My goal is to design SAX to work in any OO language.

Good.  I think that's the right goal (though I suppose some others could
argue for C).

My point is not that implementing the base class would be hard in the other
languages.  It probably wouldn't be (depending, of course, on how fat it

My point is about a relationship: as the usefulness of the base class
climbs towards necessity, the probability of people using SAX-implementing
parsers *that don't come with the base class supplied* declines.  This is
only important iff the design of the API is influenced by the assumption of
the presence of the base class.  Some of the "design issue" posts seemed to
me to be heading in that direction.   If we divide the world into SAX
implementors and SAX clients, I think that the base class is a useful thing
for *clients* to build and use; it's how I'd do it.  As such, I think it
probably doesn't belong on the implementor side of the line.


David Ornstein
Pragmatica, Inc.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list