SAX2: Parser interface

David Megginson david at megginson.com
Wed Dec 22 15:21:20 GMT 1999


Here is my current draft of the SAX2 Parser class:

  public interface Parser
  {
    public void setLocale (Locale locale)
      throws SAXNotSupportedException;

    public void setFeature (String feature, boolean state)
      throws SAXNotRecognizedException, SAXNotSupportedException;
    public boolean getFeature (String feature)
      throws SAXNotRecognizedException;

    public void setProperty (String property, Object value)
      throws SAXNotRecognizedException, SAXNotSupportedException;
    public Object getProperty (String property)  
      throws SAXNotRecognizedException;

    public void setEntityResolver (EntityResolver resolver);
    public void setDTDHandler (DTDHandler handler);
    public void setNamespaceDeclHandler (NamespaceDeclHandler handler);
    public void setDocumentHandler (DocumentHandler handler);
    public void setErrorHandler (ErrorHandler handler);

    public void setLexicalHandler (LexicalHandler handler)
      throws SAXNotSupportedException;
    public void setDeclHandler (DeclHandler handler)
      throws SAXNotSupportedException;

    public void parse (String systemId)
      throws IOException;

    public void parse (InputSource input)
      throws IOException;  
  }


Notes:

1. LexicalHandler and DeclHandler now have explicit setters, but the
   parser may throw a SAXNotSupportedException if it does not support
   them.

2. Extended handler types (for schemas, or what-have-you) can be set
   using the setProperty method with the appropriate URI identifier.

3. The first arguments to get/setFeature and get/setProperty are
   fully-qualified URIs (to be included in a future message).


Questions:

1. Should there be getters as well as setters for the handlers and the
   locale?

2. Should the parser be allowed to throw SAXNotSupportedException for
   NamespaceDeclHandler as well?

3. Should we just use setProperty to set the optional handlers?

4. Should we explicitly allow the systemId argument to parse() to be a 
   relative URI?  If so, what should it be relative to?


All the best,


David

-- 
David Megginson                 david at megginson.com
           http://www.megginson.com/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list