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

SAX RFD: ModSAX Predefined Features

  • From: David Megginson <david@m...>
  • To: "XML Developers' List" <xml-dev@i...>
  • Date: Sun, 7 Mar 1999 18:56:08 -0500 (EST)

modsax
What:   Four proposed predefined features for ModSAX
Action: Please read and comment (especially to propose core features
        I've missed)

Last month, I posted a proposal [1] for a backwards-compatible SAX
layer called ModSAX, which will allow parser and filter writers to
extend SAX and application writers to discover what extensions exist,
all in a well-defined and predictable way.

The relevant part of that interface for this posting is the following
method in ModParser (which extends org.xml.sax.Parser):

  public abstract void setFeature (String featureID, boolean state)
    throws SAXNotSupportedException;

The value of featureID will in some way piggyback on DNS, either by
using URIs or by using names similar to Java packages.  Although
people will be allowed (and encouraged) to invent their own features,
I'd like to predefine a core set of features for the next SAX
release.  Here's what I've thought of so far:

1. http://xml.org/sax/features/validation
  True means validate, false means don't validate.

2. http://xml.org/sax/features/external-entities
  True means expand external text entities, false means don't expand
  external text entities.

3. http://xml.org/sax/features/namespaces
  True means perform namespace processing -- munge element and
  attribute names and remove namespace declaration attributes -- and
  false means don't perform namespace processing.

4. http://xml.org/sax/features/unbuffered-input
  True means ensure that the parser does not buffer input from a
  Reader or InputStream supplied by the application (actually,
  one-character look-ahead will usually be required); false means do
  not ensure that the parser does not buffer input.  This feature might
  be useful for reading multiple documents from a single stream.

No SAX parsers will be *required* to support any of these -- they can
simply throw a SAXNotSupportedException for any request (as they
should for any other unrecognised feature request).  The earliest
ModSAX parser will probably be a general-purpose SAX 1.0 Parser
adapter, and that will certainly not be able to do anything useful
with these.

Unlike parsers, filters will ordinarily pass unrecognised feature
requests on up the chain of responsibility.


Examples
--------

If an application wants to ensure that the SAX parser is performing
validation, it can use

  try {
    parser.setFeature("http://xml.org/sax/features/validation", true);
  } catch (SAXNotSupportedException e) {
    // ...
  }

The parser may throw an exception for either of two reasons:

1. it cannot validation; or

2. it does not recognise the property.

If the application wants to determine which of the two is the case,
then it can try the following:

  try {
    parser.setFeature("http://xml.org/sax/features/validation", false);
  } catch (SAXNotSupportedException e) {
    // ...
  }

If the parser throws an exception again, then it does not recognise
the property name (in other words, it may or may not perform
validation, and the application has no way to tell); if the parser
does not throw and exception, then it simply does not support
validation.


[1] http://www.lists.ic.ac.uk/archives/xml-dev/9902/0627.html

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/ and on CD-ROM/ISBN 981-02-3594-1
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.