SAX2 RFD: LexicalHandler draft v.1.1

David Megginson david at megginson.com
Sun Mar 21 18:29:06 GMT 1999


Lars Marius Garshol writes:
 > 
 > * David Megginson
 > |
 > |     public abstract void xmlDecl (String version,
 > | 				  String encoding,
 > | 				  String standalone)
 > | 	throws SAXException;
 > 
 > Should we perhaps make standalone a boolean instead?  It can only have
 > two values anyway, and this will spare us a lot of
 > standalone.equals(this or that).

Duh! <sound effect="loud slap on forehead"/> &hellip; thanks for
catching that one.

 > |     public abstract void startDTD (String doctype,
 > | 				   String publicID,
 > | 				   String systemID)
 > | 	throws SAXException;
 > 
 > I think naming doctype docelem or rootelem would be better. It took me
 > a couple of seconds to figure out what it meant.

Agreed -- I'll rename it to "root".

 > |     public abstract void startEntity (String name)
 > | 	throws SAXException;
 > 
 > Is this sufficient? Now we don't even know whether it's internal or
 > external. I know EntityResolver can be used to get that information
 > (including sysid and pubid), but I'd much rather see it included here
 > as well, since IMHO EntityResolver fills a separate role from the data
 > handlers. Often one would want to plug in a separate component there.

Actually, this is a sin of omission, but of a different kind -- I was
intending to add an extra note saying that entity declarations will be
reported through the DTDDeclHandler, which I'll be posting next.  In
other words, if the parser supports
http://xml.org/sax/handlers/dtd-decl, you'll already have obtained the
information about the attribute declaration and all you need here is
the name.

 > How about this?
 > 
 >       public abstract void startEntity (String name, String publicID,
 >                                         String systemID)
 >         throws SAXException;
 >  
 > If systemID is null we know it is an external entity. Alternatively,
 > we could have a separate callback for external entities.

(You mean "If systemID is null we know it is an *internal* entity").
The problem is that a non-validating parser that does not read the
external DTD subset might not have seen the declaration for the
entity, so a null systemID is no guarantee that the entity was
declared internal.


Thanks, and all the best,


David

-- 
David Megginson                 david at megginson.com
           http://www.megginson.com/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list