org.brownell.xml.aelfred2
Class Validator

java.lang.Object
  |
  +--org.brownell.xml.aelfred2.Validator

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

This SAX2 parser layers a validation component over the standards-enhanced SAX2 version of Ælfred. While it can't evaluate every XML validity constraint, it does support all the validity constraints that seem to be of any substantial utility outside the strict SGML-compatible world.

See the documentation for the SAXDriver class for information about the SAX2 features and properties supported; the only difference between these two classes is that this one supports validation (which feature value is currently immutable, though that could easily change).

Note that due to its internal construction, you can't change any handlers except the ErrorHandler and the EntityResolver until parse() returns. This diverges from SAX, which specifies later binding for handlers. Early binding involves less runtime overhead, which is an issue for composite objects such as this. Rather than relying on the parser to perform late binding to your own handlers, do it yourself.

Version:
$Date: 2000/02/12 16:03:22 $
Author:
David Brownell
See Also:
SAXDriver, ValidationConsumer

Constructor Summary
Validator()
          Constructs a SAX Parser.
Validator(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(InputSource source)
          SAX1: Auxiliary API to parse an XML document, used mostly when no URI is available.
 void parse(java.lang.String systemId)
          SAX1: Preferred API to parse an XML document, using a system identifier (URI).
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Validator

public Validator()
Constructs a SAX Parser.

Validator

public Validator(boolean invalidIsFatal)
Constructs a SAX Parser, optionally treating validity errors as if they were fatal errors.
Method Detail

getContentHandler

public ContentHandler getContentHandler()
SAX2: Returns the object used to report the logical content of an XML document.
Specified by:
getContentHandler in interface XMLReader
Tags copied from interface: XMLReader
Returns:
The current content handler, or null if none has been registered.
See Also:
XMLReader.setContentHandler(org.xml.sax.ContentHandler)

setContentHandler

public void setContentHandler(ContentHandler handler)
SAX2: Assigns the object used to report the logical content of an XML document.
Specified by:
setContentHandler in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
handler - The content handler.
Throws:
java.lang.NullPointerException - If the handler argument is null.
See Also:
XMLReader.getContentHandler()

getDTDHandler

public DTDHandler getDTDHandler()
SAX2: Returns the object used to process declarations related to notations and unparsed entities.
Specified by:
getDTDHandler in interface XMLReader
Tags copied from interface: XMLReader
Returns:
The current DTD handler, or null if none has been registered.
See Also:
XMLReader.setDTDHandler(org.xml.sax.DTDHandler)

setDTDHandler

public void setDTDHandler(DTDHandler handler)
SAX1 Assigns DTD handler
Specified by:
setDTDHandler in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
handler - The DTD handler.
Throws:
java.lang.NullPointerException - If the handler argument is null.
See Also:
XMLReader.getDTDHandler()

getEntityResolver

public EntityResolver getEntityResolver()
SAX2: Returns the object used when resolving external entities during parsing (both general and parameter entities).
Specified by:
getEntityResolver in interface XMLReader
Tags copied from interface: XMLReader
Returns:
The current entity resolver, or null if none has been registered.
See Also:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)

setEntityResolver

public void setEntityResolver(EntityResolver handler)
SAX1 Assigns parser's entity resolver
Specified by:
setEntityResolver in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
resolver - The entity resolver.
Throws:
java.lang.NullPointerException - If the resolver argument is null.
See Also:
XMLReader.getEntityResolver()

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;
Specified by:
getErrorHandler in interface XMLReader
Tags copied from interface: XMLReader
Returns:
The current error handler, or null if none has been registered.
See Also:
XMLReader.setErrorHandler(org.xml.sax.ErrorHandler)

setErrorHandler

public void setErrorHandler(ErrorHandler handler)
SAX1 Assigns error handler
Specified by:
setErrorHandler in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
handler - The error handler.
Throws:
java.lang.NullPointerException - If the handler argument is null.
See Also:
XMLReader.getErrorHandler()

setProperty

public void setProperty(java.lang.String propertyId,
                        java.lang.Object value)
                 throws SAXNotRecognizedException,
                        SAXNotSupportedException
SAX2: Assigns the specified property.
Specified by:
setProperty in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
name - The property name, which is a fully-qualified URI.
state - The requested value for the property.
Throws:
SAXNotRecognizedException - When the XMLReader does not recognize the property name.
SAXNotSupportedException - When the XMLReader recognizes the property name but cannot set the requested value.

getProperty

public java.lang.Object getProperty(java.lang.String propertyId)
                             throws SAXNotRecognizedException
SAX2: Returns the specified property.
Specified by:
getProperty in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
name - The property name, which is a fully-qualified URI.
Returns:
The current value of the property.
Throws:
SAXNotRecognizedException - When the XMLReader does not recognize the property name.
SAXNotSupportedException - When the XMLReader recognizes the property name but cannot determine its value at this time.
See Also:
XMLReader.setProperty(java.lang.String, java.lang.Object)

setFeature

public void setFeature(java.lang.String featureId,
                       boolean state)
                throws SAXNotRecognizedException,
                       SAXNotSupportedException
SAX2: Sets the state of features supported in this parser.
Specified by:
setFeature in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
name - The feature name, which is a fully-qualified URI.
state - The requested state of the feature (true or false).
Throws:
SAXNotRecognizedException - When the XMLReader does not recognize the feature name.
SAXNotSupportedException - When the XMLReader recognizes the feature name but cannot set the requested value.
See Also:
XMLReader.getFeature(java.lang.String)

getFeature

public boolean getFeature(java.lang.String featureId)
                   throws SAXNotRecognizedException
SAX2: Tells whether this parser supports the specified feature. At this time, this directly parallels the underlying SAXDriver, except that validation is always supported.
Specified by:
getFeature in interface XMLReader
See Also:
SAXDriver

setLocale

public void setLocale(java.util.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

parse

public void parse(java.lang.String systemId)
           throws SAXException,
                  java.io.IOException
SAX1: Preferred API to parse an XML document, using a system identifier (URI).
Specified by:
parse in interface XMLReader
Tags copied from interface: XMLReader
Parameters:
systemId - The system identifier (URI).
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
java.io.IOException - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.
See Also:
XMLReader.parse(org.xml.sax.InputSource)

parse

public void parse(InputSource source)
           throws SAXException,
                  java.io.IOException
SAX1: Auxiliary API to parse an XML document, used mostly when no URI is available.
Specified by:
parse in interface XMLReader
Parameters:
source - The XML input source.
Throws:
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.