⇒ Index (Frames) |  ⇒ Index (No Frames) |  ⇒ Package |  ⇒ Package Tree |  ⇒ Full Tree 
gnu.xml.aelfred2

Class XmlReader

java.lang.Object
|
+--gnu.xml.aelfred2.XmlReader

All Implemented Interfaces:
XMLReader


public final class XmlReader
extends java.lang.Object
implements XMLReader

This SAX2 parser optionally layers a validator over the Ælfred2 SAX2 parser. While this will not evaluate every XML validity constraint, it does support all the validity constraints that are of any real utility outside the strict SGML-compatible world. See the documentation for the SAXDriver class for information about the SAX2 features and properties that are supported, and documentation for the ValidationConsumer for information about what validity constraints may not be supported. (Ælfred2 tests some of those, even in non-validating mode, to achieve better conformance.)

Note that due to its internal construction, you can't change most handlers until parse() returns. This diverges slightly from SAX, which expects later binding to be supported. Early binding involves less runtime overhead, which is an issue for event pipelines as used inside this parser. Rather than relying on the parser to handle late binding to your own handlers, do it yourself.

Author:
David Brownell
See Also:
SAXDriver
gnu.xml.pipeline.ValidationConsumer

Constructor Summary

XmlReader()

Constructs a SAX Parser.

XmlReader(boolean invalidIsFatal)

Constructs a SAX Parser, optionally treating validity errors as if they were fatal errors.

Method Summary

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(java.lang.String featureId)

SAX2: Tells whether this parser supports the specified feature.

java.lang.Object

getProperty(java.lang.String propertyId)

SAX2: Returns the specified property.

void

parse(java.lang.String systemId)

SAX1: Preferred API to parse an XML document, using a system identifier (URI).

void

parse(InputSource source)

SAX1: Underlying API to parse an XML document, used directly when no URI is available.

void

setContentHandler(ContentHandler handler)

SAX2: Assigns the object used to report the logical content of an XML document.

void

setDTDHandler(DTDHandler handler)

SAX1 Assigns DTD handler

void

setEntityResolver(EntityResolver handler)

SAX1 Assigns parser's entity resolver

void

setErrorHandler(ErrorHandler handler)

SAX1 Assigns error handler

void

setFeature(java.lang.String featureId, boolean state)

SAX2: Sets the state of features supported in this parser.

void

setLocale(java.util.Locale locale)

SAX1: Sets the locale used for diagnostics; currently, only locales using the English language are supported.

void

setProperty(java.lang.String propertyId, java.lang.Object value)

SAX2: Assigns the specified property.

Constructor Details

XmlReader

public XmlReader()

Constructs a SAX Parser.


XmlReader

public XmlReader(boolean invalidIsFatal)

Constructs a SAX Parser, optionally treating validity errors as if they were fatal errors.

Parameters:
invalidIsFatal

Method Details

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(java.lang.String featureId)

SAX2: Tells whether this parser supports the specified feature. At this time, this directly parallels the underlying SAXDriver, except that validation is optionally supported.

Parameters:
featureId
See Also:
SAXDriver

getProperty

public Object getProperty(java.lang.String propertyId)

SAX2: Returns the specified property.

Parameters:
propertyId

parse

public void parse(java.lang.String systemId)

SAX1: Preferred API to parse an XML document, using a system identifier (URI).

Parameters:
systemId

parse

public void parse(InputSource source)

SAX1: Underlying API to parse an XML document, used directly when no URI is available. When this is invoked, and the parser is set to validate, some features will be automatically reset to appropriate values: for reporting namespace prefixes, and incorporating external entities.

Parameters:
source - The XML input source.
Throws:
java.lang.IllegalStateException - if called mid-parse
SAXException - The handlers may throw any SAXException, and the parser normally throws SAXParseException objects.
java.io.IOException - IOExceptions are normally through through the parser if there are problems reading the source document.

setContentHandler

public void setContentHandler(ContentHandler handler)

SAX2: Assigns the object used to report the logical content of an XML document.

Parameters:
handler
Throws:
java.lang.IllegalStateException - if called mid-parse

setDTDHandler

public void setDTDHandler(DTDHandler handler)

SAX1 Assigns DTD handler

Parameters:
handler
Throws:
java.lang.IllegalStateException - if called mid-parse

setEntityResolver

public void setEntityResolver(EntityResolver handler)

SAX1 Assigns parser's entity resolver

Parameters:
handler

setErrorHandler

public void setErrorHandler(ErrorHandler handler)

SAX1 Assigns error handler

Parameters:
handler
Throws:
java.lang.IllegalStateException - if called mid-parse

setFeature

public void setFeature(java.lang.String featureId, boolean state)

SAX2: Sets the state of features supported in this parser. Note that this parser requires reporting of namespace prefixes when validating.

Parameters:
featureId
state

setLocale

public void setLocale(java.util.Locale locale)

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(java.lang.String propertyId, java.lang.Object value)

SAX2: Assigns the specified property.

Parameters:
propertyId
value
Throws:
java.lang.IllegalStateException - if called mid-parse