SAX: Document Start and End (question 1 of 10)

James Clark jjc at
Mon Jan 5 04:59:40 GMT 1998

Tim Bray wrote:
> At 01:37 PM 04/01/98 -0500, David Megginson wrote:
> > > Agreed.  Could we change the first method to
> > > startDocument(String root, String DTDSysID, String DTDPubID)
> > > these obviously each being null in the event the document doesn't
> > > provide them? -Tim
> >
> >This is a great idea, but it will require an implementation to queue
> >events.  For example, if I have
> >
> >  <?foo bar?>
> >  <!DOCTYPE doc SYSTEM "doc.dtd">
> >
> >I have to queue the PI event(s) until I have found the DOCTYPE
> Why?  The PI is 'before' the doc in any meaningful sense... so they
> get some PI events before they get the startDocument event.  Is this
> a problem? -Tim

I think this is inconsistent with the XML spec:

document ::=  prolog element Misc* 
prolog ::=  XMLDecl? Misc* (doctypedecl Misc*)?

PIs before the doctypedecl are part of the document.

I also feel that it's wrong to give special treatment to the external
identifier in the doctypedecl.

<!DOCTYPE doc SYSTEM "doc.dtd">

is just a convenient shorthand for

<!DOCTYPE doc [
<!ENTITY % whatever SYSTEM "doc.dtd">


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