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

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

  • From: David Megginson <ak117@f...>
  • To: xml-dev Mailing List <xml-dev@i...>
  • Date: Sat, 3 Jan 1998 09:47:09 -0500

sax document
[SAX is a proposal for a simple, event-based XML API, using
callbacks.  This is one in a series of ten design questions that we
need to answer to implement the API.]

In addition to the core events, should SAX have additional callbacks
for the start and end of a document?

  public startDocument ()
  public endDocument ()


CON
---

- two additional methods will make the API slightly larger; 

- the start of an XML document can be inferred from the first event
  (element or possibly PI or comment), and any start/end handling
  could be done outside of the callback interface (say, before and
  after running the parse); however, the end cannot be easily
  inferred within an event handler.


PRO
---

- avoids an "if/then" test in handlers to see if they are the
  first events;

- provides an easy and obvious place for initialization and cleanup,
  if startDocument() is always the first event reported and
  endDocument() is always the last;

- these are very easy to implement in a separate SAX front end,
  without modifying any of the core parsers.


MY RECOMMENDATION
-----------------

Yes.  

These events will make code using SAX much simpler and cleaner, and
they come at a very low cost.  Furthermore, if a SAX-based application
extends the XmlAppBase base class, then it can simply ignore these if
they are not needed.


OTHER CONSIDERATIONS
--------------------

Should either of the events take arguments?  For example, the
startDocument event handler could take Strings giving the public ID
(if any) and URI of the document, and the endDocument event handler
could take integers giving the number of errors and warnings:

  public void startDocument (String publicID, String systemID);
  public void endDocument (int errors, int warnings);

The latter, however, is very easy to track, and the former can be
supplied to the constructor when the SAX event-handler is created, so
both are redundant (if slightly convenient).


All the best,


David

-- 
David Megginson                 ak117@f...
Microstar Software Ltd.         dmeggins@m...
      http://home.sprynet.com/sprynet/dmeggins/

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.