[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: SAX: Next Round (Lexical Event Handler)

  • From: David Brownell <db@E...>
  • To: James Clark <jjc@j...>, david@m...
  • Date: Fri, 29 Jan 1999 12:25:44 -0800

jjc handler
Glad to see this SAX discussion!


James Clark wrote:
> 
> david@m... 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.

Doesn't quite ... there's some more DTD information needed to:

	*  ensure that PIs within the DTD (e.g. internal subset)
	   don't show up anywhere in the DOM tree (ugh);
	*  see declarations of external general entities;
	*  expose values of defaults so that the DOM can ensure
	   that defaulted attributes always have values;
	*  distinguish attributes which were defaulted from those
	   that were explicitly in the document.

See "com.sun.xml.parser.AttributeListEx" and, in the same package,
"DtdEventListener" for that additional info.  (An upcoming version
supports full recreation of the <!DOCTYPE ...> declaration, which
a number of users have needed.)

(In addition the above, if XML namespaces are to be layerable over
a normal XML 1.0 parser, declarations of all other entities need to
be exposed so they can be examined for conformance:  they must not
contain colons!)


> 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
> LexicalHandler.

That's my logic, and have done it for the extended DTD event reporting
provided in Sun's parser (to support DOM and a few other features that
folk have persuaded me are important).



> 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.

Actually, I would rather not expose parameter entities at all,
but am certainly open to them being useful.

I'd rather just see a single callback for the general entities,
passing only the name (the ID info was provided already through
the DTD handler, doesn't need repeating).


> 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?

DOM allows but does not require this stuff (both internal and external).

- Dave


> 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.
> 
> James
>

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i...
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@i... the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@i... the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@i...)


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.