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

Re: SAX2 RFD: Inheritance vs. Modification vs. Amalgamation

  • From: Arkin <arkin@t...>
  • Date: Wed, 19 May 1999 11:30:55 -0400

Re: SAX2 RFD: Inheritance vs. Modification vs. Amalgamation
Empty adpater class called ParserProp and an extended interface called
ParserEx.

The application will create a ParserProp instance by passing it a
reference to Parser. The application will then try to set a feature or a
property. If Parser implements ParserEx, it would work nicely. If Parser
does not implement ParserEx (an old version), then ParserProp will throw
an exception.

Thus:

  ParserProp  prop;

  prop = new ParserProp( myParser );
  try
  {
    prop.setFeature( "xyz" );
  }
  catch ( SAXException except )
  {
    // Do something about it, or do nothing about it.
  }

Arkin



David Megginson wrote:
> 
> (I'd like to hear from as many people as possible on this issue.)
> 
> For SAX2, we need to add at least four methods to the SAX 1.0 Parser
> interface:
> 
>   public void setFeature (String featureId, boolean state)
>     throws SAXException;
> 
>   public boolean getFeature (String featureId)
>     throws SAXException;
> 
>   public void setProperty (String propertyId, Object value)
>     throws SAXException;
> 
>   public Object getProperty (String propertyId)
>     throws SAXException;
> 
> There are three ways of doing this:
> 
> 1. Create a new interface, org.xml.sax.Parser2, that extends
>    org.xml.sax.Parser.
> 
>    PRO: - provides nice, two-way compatibility
>         - easy to write adapters for existing SAX 1.0 drivers.
>    CON: - subclassing always leads to crime (see the GOF book for
>           copious warnings).
> 
> 2. Add the methods to org.xml.sax.Parser, and require applications to
>    catch NoSuchMethodException when using the new methods, in case
>    they're concerned about what version they're dealing with.
> 
>    PRO: - doesn't limit options for subclassing in the future
>    CON: - very difficult to write adapters for existing SAX 1.0
>           drivers (slower acceptance and implementation of SAX2)
>         - can cause unexpected behaviour at deployment time, unless
>           the application designer knows to catch
>           NoSuchMethodException
> 
> 3. Create a separate interface org.xml.sax.ParserProps (or something
>    like that), and require SAX2 drivers to implement both interfaces.
> 
>    PRO: - easy to writer adapters for existing SAX 1.0 drivers
>         - fewer nasty deployment surprises
>    CON: - will require lots of casting
>         - conceptually ugly
> 
> Please, comment, comment, comment! I'm not smart enough to figure this
> out myself.
> 
> All the best,
> 
> David
> 
> --
> David Megginson                 david@m...
>            http://www.megginson.com/
> 
> 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...)


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.