OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

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

[ Lists Home | Date Index | Thread Index ]
  • From: David Megginson <ak117@freenet.carleton.ca>
  • To: xml-dev Mailing List <xml-dev@ic.ac.uk>
  • Date: Sat, 3 Jan 1998 09:47:09 -0500

[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@freenet.carleton.ca
Microstar Software Ltd.         dmeggins@microstar.com
      http://home.sprynet.com/sprynet/dmeggins/

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





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS