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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: ANNOUNCEMENT: Proposed SAX Revisions

[ Lists Home | Date Index | Thread Index ]
  • From: Tyler Baker <tyler@infinet.com>
  • To: David Megginson <ak117@freenet.carleton.ca>
  • Date: Sat, 21 Mar 1998 10:18:23 -0500

David Megginson wrote:

> The draft version of the Simple API for XML (SAX) came out just over
> two months ago, and it has proven far more successful than I expected
> -- hundreds of developers have downloaded the Java interface, four of
> the six Java-based XML parsers now contain native SAX drivers (I have
> written temporary drivers for the other two), and many people are
> designing applications built around SAX.
>
> After two months' experience with the draft interface, however, users
> have discovered four serious omissions in the original design:
>
> 1) there is no standard way to read an XML document from an input
>    stream;
>
> 2) there is no way to obtain contextual information (system id, line
>    number, etc.) for reporting application errors;
>
> 3) there is no way to obtain external identifiers for an attribute of
>    type NOTATIONS or ENTITIES when more than one notation or entity
>    name is provided; and
>
> 4) there is no way to distinguish between recoverable and
>    unrecoverable errors, as required by the XML REC.
>
> People have also rightly complained that the AttributeMap interface is
> too complicated.  I have put together a web page containing my
> suggestions for revisions to fix these problems and generally to clean
> up the SAX interface; you will find the proposed revisions at the
> following URL:
>
>   http://www.microstar.com/XML/SAX/proposed-changes.html

One thing which would be invaluable to may people from a performance perspective
is to change:

void startElement(String name, AttributeList attributes, Location loc) to:

boolean startElement(String name, AttributeList attributes, Location loc).

The boolean return value would indicate to the parser whether or not all sub
elements and sub content should be ignored which would let the parser arbitrarily
skip to the end element tag (if the element is not an empty element).  For
documents which only represent some sort of data storage mechanism where if one
element is unknown then all its child elements should be unknown, this would be
something very nice to have.

Also another change I would propose would be:

void endElement(String name, Location loc) to:

Also, it would be nice if Parser had some sort of pause/resume feature so you
could explicitly stop and start parsing at any point.  In this case you might
have every method return a boolean instead of void so that you could return true
to continue parsing or false to pause.

When dealing with multiple threads, this idea would be very nice as a control
mechanism since the InputStream that is passed as an argument might be being
filled up as you parse the document.  You don't want to stop parsing until you
know that the stream is closed.

Tyler


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