> =09- is it possible for an author to extend SAX with additional non-=
SAX
> calls? [In the same way as a C library may have the standard calls a=
nd some
> additional manufacturer-specific ones]. Thus if we agree that doNota=
tion
> functionality is not part of SAX, could a core SAX interface be exte=
nded by
> a parser writer without breaking the SAX bit? [I assume yes, but I d=
on't
> know about interface design].
If you're discussing the parser class, then it is free to implement
any functionality beyond the interface; if you are discussing the
application (call-back) class, then there are two choices:
1) it may implement another, tool-specific interface as well as SAX;
or
2) it may implement an interface that extends the SAX interface (say,
by adding lexical events like comments or by adding DTD events).
In either case, you could still use your application class with other
XML parsers, but the additional methods would never be called.
> =09- if it *is* possible to extend it in this way, can we make sure =
we get
> the core as simple as possible so we all agree on it? Parser writers=
can
> then add additional non-standard functionality [carefully documented=
, of
> course :-)]=20
> =09- there is enormous value for hackers like me to be able to find =
a simple
> core functionality and get that working rapidly. Then the additional=
> features can be gradually brought in. =20
True, but it's never quite so simple, because every parser writer
would implement the additional functionality in a different way. We
have to make certain that we have covered at least the core features,
and that means that we have to agree on what the core features are
(I'll follow up with a separate message).
> =09- what is the position on error handling? In GUI applications lik=
e JUMBO
> it's important to let the user know what is happening, so I have tra=
pped
> the AElfred errors.=20
I think that we may want to distinguish fatal errors from warnings
(although =C6lfred doesn't currently do so). Normally, a warning would=
print a message to a log or to STDERR, while an error would throw a
java.lang.Error or a java.lang.Exception.
All the best,
David
--=20
David Megginson ak117@freenet.carleton.ca
Microstar Software Ltd. dmeggins@microstar.com
http://home.sprynet.com/sprynet/dmeggins/