com.icl.saxon.aelfred

Class SAXDriver

Implemented Interfaces:
AttributeList, Attributes, Locator, Parser, XMLReader

public class SAXDriver
extends java.lang.Object
implements Locator, Attributes, XMLReader, Parser, AttributeList

An enhanced SAX2 version of Microstar's Ælfred XML parser. The enhancements primarily relate to significant improvements in conformance to the XML specification, and SAX2 support. Performance has been improved. However, the Ælfred proprietary APIs are no longer public. See the package level documentation for more information.
NameNotes
Features ... URL prefix is http://xml.org/sax/features/
(URL)/external-general-entitiesValue is fixed at true
(URL)/external-parameter-entitiesValue is fixed at true
(URL)/namespace-prefixesValue defaults to false (but XML 1.0 names are always reported)
(URL)/namespacesValue defaults to true
(URL)/string-interningValue is fixed at true
(URL)/validationValue is fixed at false
Handler Properties ... URL prefix is http://xml.org/sax/properties/
(URL)/declaration-handlerA declaration handler may be provided. Declaration of general entities is exposed, but not parameter entities; none of the entity names reported here will begin with "%".
(URL)/lexical-handlerA lexical handler may be provided. Entity boundaries and comments are not exposed; only CDATA sections and the start/end of the DTD (the internal subset is not detectible).

Note that the declaration handler doesn't suffice for showing all the logical structure of the DTD; it doesn't expose the name of the root element, or the values that are permitted in a NOTATIONS attribute. (The former is exposed as lexical data, and SAX2 beta doesn't expose the latter.)

Although support for several features and properties is "built in" to this parser, it support all others by storing the assigned values and returning them.

This parser currently implements the SAX1 Parser API, but it may not continue to do so in the future.

Version:
$Date: 2000/02/29 00:23:50 $
Authors:
Written by David Megginson <dmeggins@microstar.com> (version 1.2a from Microstar)
Updated by David Brownell <david-b@pacbell.net>
See Also:
org.xml.sax.Parser

Field Summary

(package private) static String
FEATURE
(package private) static String
HANDLER

Constructor Summary

SAXDriver()
Constructs a SAX Parser.

Method Summary

(package private) void
attribute(String aname, String value, boolean isSpecified)
(package private) void
charData(ch[] , int start, int length)
(package private) void
comment(ch[] , int start, int length)
(package private) void
doctypeDecl(String name, String publicId, String systemId)
(package private) void
endCDATA()
(package private) void
endDoctype()
(package private) void
endDocument()
(package private) void
endElement(String elname)
(package private) void
endExternalEntity(String systemId)
(package private) void
error(String message, String url, int line, int column)
int
getColumnNumber()
SAX Locator method (don't invoke on parser);
ContentHandler
getContentHandler()
SAX2: Returns the object used to report the logical content of an XML document.
DTDHandler
getDTDHandler()
SAX2: Returns the object used to process declarations related to notations and unparsed entities.
EntityResolver
getEntityResolver()
SAX2: Returns the object used when resolving external entities during parsing (both general and parameter entities).
ErrorHandler
getErrorHandler()
SAX2: Returns the object used to receive callbacks for XML errors of all levels (fatal, nonfatal, warning); this is never null;
boolean
getFeature(String featureId)
SAX2: Tells the value of the specified feature flag.
int
getIndex(String xmlName)
SAX2 Attributes method (don't invoke on parser);
int
getIndex(String uri, String local)
SAX2 Attributes method (don't invoke on parser);
int
getLength()
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);
int
getLineNumber()
SAX Locator method (don't invoke on parser);
String
getLocalName(int index)
SAX2 Attributes method (don't invoke on parser);
String
getName(int i)
SAX1 AttributeList method (don't invoke on parser);
Object
getProperty(String propertyId)
SAX2: Returns the specified property.
String
getPublicId()
SAX Locator method (don't invoke on parser);
String
getQName(int i)
SAX2 Attributes method (don't invoke on parser);
String
getSystemId()
SAX Locator method (don't invoke on parser);
String
getType(String xmlName)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);
String
getType(String uri, String local)
SAX2 Attributes method (don't invoke on parser);
String
getType(int i)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);
String
getURI(int index)
SAX2 Attributes method (don't invoke on parser);
String
getValue(String xmlName)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);
String
getValue(String uri, String local)
SAX Attributes method (don't invoke on parser);
String
getValue(int i)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);
(package private) void
ignorableWhitespace(ch[] , int start, int length)
void
parse(InputSource source)
SAX1, SAX2: Auxiliary API to parse an XML document, used mostly when no URI is available.
void
parse(String systemId)
SAX1, SAX2: Preferred API to parse an XML document, using a system identifier (URI).
(package private) void
processingInstruction(String target, String data)
(package private) Object
resolveEntity(String publicId, String systemId)
void
setContentHandler(ContentHandler handler)
SAX2: Assigns the object used to report the logical content of an XML document.
void
setDTDHandler(DTDHandler handler)
SAX1, SAX2: Set the DTD handler for this parser.
void
setDocumentHandler(DocumentHandler handler)
Deprecated. SAX2 programs should use the XMLReader interface and a ContentHandler.
void
setEntityResolver(EntityResolver resolver)
SAX1, SAX2: Set the entity resolver for this parser.
void
setErrorHandler(ErrorHandler handler)
SAX1, SAX2: Set the error handler for this parser.
void
setFeature(String featureId, boolean state)
SAX2: Sets the state of feature flags in this parser.
void
setLocale(Locale locale)
SAX1: Sets the locale used for diagnostics; currently, only locales using the English language are supported.
void
setProperty(String propertyId, Object property)
SAX2: Assigns the specified property.
(package private) void
startCDATA()
(package private) void
startDocument()
(package private) void
startElement(String elname)
(package private) void
startExternalEntity(String systemId)

Field Details

FEATURE

(package private) static final String FEATURE

HANDLER

(package private) static final String HANDLER

Constructor Details

SAXDriver

public SAXDriver()
Constructs a SAX Parser.

Method Details

attribute

(package private)  void attribute(String aname,
                                  String value,
                                  boolean isSpecified)
            throws SAXException

charData

(package private)  void charData(ch[] ,
                                 int start,
                                 int length)
            throws SAXException

comment

(package private)  void comment(ch[] ,
                                int start,
                                int length)
            throws SAXException

doctypeDecl

(package private)  void doctypeDecl(String name,
                                    String publicId,
                                    String systemId)
            throws SAXException

endCDATA

(package private)  void endCDATA()
            throws SAXException

endDoctype

(package private)  void endDoctype()
            throws SAXException

endDocument

(package private)  void endDocument()
            throws SAXException

endElement

(package private)  void endElement(String elname)
            throws SAXException

endExternalEntity

(package private)  void endExternalEntity(String systemId)
            throws SAXException

error

(package private)  void error(String message,
                              String url,
                              int line,
                              int column)
            throws SAXException

getColumnNumber

public int getColumnNumber()
SAX Locator method (don't invoke on parser);

getContentHandler

public ContentHandler getContentHandler()
SAX2: Returns the object used to report the logical content of an XML document.

getDTDHandler

public DTDHandler getDTDHandler()
SAX2: Returns the object used to process declarations related to notations and unparsed entities.

getEntityResolver

public EntityResolver getEntityResolver()
SAX2: Returns the object used when resolving external entities during parsing (both general and parameter entities).

getErrorHandler

public ErrorHandler getErrorHandler()
SAX2: Returns the object used to receive callbacks for XML errors of all levels (fatal, nonfatal, warning); this is never null;

getFeature

public boolean getFeature(String featureId)
            throws SAXNotRecognizedException
SAX2: Tells the value of the specified feature flag.

getIndex

public int getIndex(String xmlName)
SAX2 Attributes method (don't invoke on parser);

getIndex

public int getIndex(String uri,
                    String local)
SAX2 Attributes method (don't invoke on parser);

getLength

public int getLength()
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);

getLineNumber

public int getLineNumber()
SAX Locator method (don't invoke on parser);

getLocalName

public String getLocalName(int index)
SAX2 Attributes method (don't invoke on parser);

getName

public String getName(int i)
SAX1 AttributeList method (don't invoke on parser);

getProperty

public Object getProperty(String propertyId)
            throws SAXNotRecognizedException
SAX2: Returns the specified property.

getPublicId

public String getPublicId()
SAX Locator method (don't invoke on parser);

getQName

public String getQName(int i)
SAX2 Attributes method (don't invoke on parser);

getSystemId

public String getSystemId()
SAX Locator method (don't invoke on parser);

getType

public String getType(String xmlName)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);

getType

public String getType(String uri,
                      String local)
SAX2 Attributes method (don't invoke on parser);

getType

public String getType(int i)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);

getURI

public String getURI(int index)
SAX2 Attributes method (don't invoke on parser);

getValue

public String getValue(String xmlName)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);

getValue

public String getValue(String uri,
                       String local)
SAX Attributes method (don't invoke on parser);

getValue

public String getValue(int i)
SAX1 AttributeList, SAX2 Attributes method (don't invoke on parser);

ignorableWhitespace

(package private)  void ignorableWhitespace(ch[] ,
                                            int start,
                                            int length)
            throws SAXException

parse

public void parse(InputSource source)
            throws SAXException,
                   IOException
SAX1, SAX2: Auxiliary API to parse an XML document, used mostly when no URI is available. If you want anything useful to happen, you should set at least one type of handler.
Parameters:
source - The XML input source. Don't set 'encoding' unless you know for a fact that it's correct.

parse

public void parse(String systemId)
            throws SAXException,
                   IOException
SAX1, SAX2: Preferred API to parse an XML document, using a system identifier (URI).

processingInstruction

(package private)  void processingInstruction(String target,
                                              String data)
            throws SAXException

resolveEntity

(package private)  Object resolveEntity(String publicId,
                                        String systemId)
            throws SAXException,
                   IOException

setContentHandler

public void setContentHandler(ContentHandler handler)
SAX2: Assigns the object used to report the logical content of an XML document. If a document handler was set, this content handler will supplant it (but XML 1.0 style name reporting may remain enabled).

setDTDHandler

public void setDTDHandler(DTDHandler handler)
SAX1, SAX2: Set the DTD handler for this parser.
Parameters:
handler - The object to receive DTD events.

setDocumentHandler

public void setDocumentHandler(DocumentHandler handler)

Deprecated. SAX2 programs should use the XMLReader interface and a ContentHandler.

SAX1: Set the document handler for this parser. If a content handler was set, this document handler will supplant it. The parser is set to report all XML 1.0 names rather than to filter out "xmlns" attributes (the "namespace-prefixes" feature is set to true).
Parameters:
handler - The object to receive document events.

setEntityResolver

public void setEntityResolver(EntityResolver resolver)
SAX1, SAX2: Set the entity resolver for this parser.
Parameters:

setErrorHandler

public void setErrorHandler(ErrorHandler handler)
SAX1, SAX2: Set the error handler for this parser.
Parameters:
handler - The object to receive error events.

setFeature

public void setFeature(String featureId,
                       boolean state)
            throws SAXNotRecognizedException,
                   SAXNotSupportedException
SAX2: Sets the state of feature flags in this parser. Some built-in feature flags are mutable; all flags not built-in are motable.

setLocale

public void setLocale(Locale locale)
            throws SAXException
SAX1: Sets the locale used for diagnostics; currently, only locales using the English language are supported.
Parameters:
locale - The locale for which diagnostics will be generated

setProperty

public void setProperty(String propertyId,
                        Object property)
            throws SAXNotRecognizedException,
                   SAXNotSupportedException
SAX2: Assigns the specified property. Like SAX1 handlers, these may be changed at any time.

startCDATA

(package private)  void startCDATA()
            throws SAXException

startDocument

(package private)  void startDocument()
            throws SAXException

startElement

(package private)  void startElement(String elname)
            throws SAXException

startExternalEntity

(package private)  void startExternalEntity(String systemId)
            throws SAXException