SAX: Next Round (Lexical Event Handler)

James Clark jjc at
Sun Jan 24 03:49:32 GMT 1999

david at wrote:

>   public interface LexicalHandler
>   {
>     public void startDTD (String name, String pubid, String sysid)
>       throws SAXException;
>     public void endDTD (String name);
>     public void startExternalEntity (String name, String pubid, String sysid)
>       throws SAXException;
>     public void endExternalEntity (String name) throws SAXException;
>     public void startCDATA () throws SAXException;
>     public void endCDATA () throws SAXException;
>     public void comment (String data) throws SAXException;
>   }
> I haven't checked, but I think that this gives us everything we need
> for DOM level one.

I wonder whether LexicalHandler ought to extend DocumentHandler.  The
events it reports are synchronous with the events reported by
DocumentHandler.  It seems to me that applications are always going to
want to implement either DocumentHandler or both DocumentHandler and

I would prefer different callbacks for external general and external
parameter entities, or at least a parameter to say whether it's general
or external. This information can be inferred from start/endDTD, but
that's seems unnecessarily obtuse. I think users will be surprised to
find both general and parameter entities getting reporting by
start/endExternalEntity with no distinction.

Doesn't the DOM allow access to internal entities as well?  This would
be tough to support because internal entities can be referenced in
attribute values.  What's the point of reporting just external entities?

What is the thinking behind giving endExternalEntity() a single name
argument (as opposed to, say, no arguments, three arguments, or a single
sysid argument)?  Similarily for endDTD()?

What's the point of the pubid and sysid arguments to startDTD()?  This
information will be provided via the call to startExternalEntity() for
the reference to the external subset.


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