com.thaiopensource.validate
Class ValidationDriver

java.lang.Object
  extended by com.thaiopensource.validate.ValidationDriver
Direct Known Subclasses:
ValidationEngine

public class ValidationDriver
extends Object

Provides a simplified API for validating XML documents against schemas. This class is neither reentrant nor safe for access from multiple threads.

Author:
James Clark

Field Summary
private static Class[] defaultClasses
           
private  CountingErrorHandler eh
           
private  PropertyMap instanceProperties
           
private static PropertyId[] requiredProperties
           
private  Schema schema
           
private  PropertyMap schemaProperties
           
private  SchemaReader sr
           
private  Validator validator
           
private  XMLReader xr
           
private  XMLReaderCreator xrc
           
 
Constructor Summary
ValidationDriver()
          Equivalent to ValidationDriver(PropertyMap.EMPTY, PropertyMap.EMPTY, null).
ValidationDriver(PropertyMap properties)
          Equivalent to ValidationDriver(properties, properties, null).
ValidationDriver(PropertyMap schemaProperties, PropertyMap instanceProperties)
          Equivalent to ValidationDriver(schemaProperties, instanceProperties, null).
ValidationDriver(PropertyMap schemaProperties, PropertyMap instanceProperties, SchemaReader schemaReader)
          Creates and initializes a ValidationDriver.
ValidationDriver(PropertyMap properties, SchemaReader sr)
          Equivalent to ValidationDriver(properties, properties, sr).
ValidationDriver(SchemaReader sr)
          Equivalent to ValidationDriver(PropertyMap.EMPTY, PropertyMap.EMPTY, null).
 
Method Summary
static InputSource fileInputSource(File file)
          Returns an InputSource for a File.
static InputSource fileInputSource(String filename)
          Returns an InputSource for a filename.
 boolean loadSchema(InputSource in)
          Loads a schema.
static InputSource uriOrFileInputSource(String uriOrFile)
          Returns an InputSource for a string that represents either a file or an absolute URI.
 boolean validate(InputSource in)
          Validates a document against the currently loaded schema.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

requiredProperties

private static final PropertyId[] requiredProperties

defaultClasses

private static final Class[] defaultClasses

xrc

private final XMLReaderCreator xrc

xr

private XMLReader xr

eh

private final CountingErrorHandler eh

sr

private final SchemaReader sr

schemaProperties

private final PropertyMap schemaProperties

instanceProperties

private final PropertyMap instanceProperties

validator

private Validator validator

schema

private Schema schema
Constructor Detail

ValidationDriver

public ValidationDriver(PropertyMap schemaProperties,
                        PropertyMap instanceProperties,
                        SchemaReader schemaReader)
Creates and initializes a ValidationDriver.

Parameters:
schemaProperties - a PropertyMap specifying properties controlling schema creation; must not be null
instanceProperties - a PropertyMap specifying properties controlling validation; must not be null
schemaReader - the SchemaReader to use; if this is null, then the schema must be in XML, and the namespace URI of the root element will be used to determine what the schema language is

ValidationDriver

public ValidationDriver(PropertyMap schemaProperties,
                        PropertyMap instanceProperties)
Equivalent to ValidationDriver(schemaProperties, instanceProperties, null).

See Also:
ValidationDriver(PropertyMap,PropertyMap,SchemaReader)

ValidationDriver

public ValidationDriver(PropertyMap properties,
                        SchemaReader sr)
Equivalent to ValidationDriver(properties, properties, sr).

See Also:
ValidationDriver(PropertyMap,PropertyMap,SchemaReader)

ValidationDriver

public ValidationDriver(PropertyMap properties)
Equivalent to ValidationDriver(properties, properties, null).

See Also:
ValidationDriver(PropertyMap,PropertyMap,SchemaReader)

ValidationDriver

public ValidationDriver(SchemaReader sr)
Equivalent to ValidationDriver(PropertyMap.EMPTY, PropertyMap.EMPTY, null).

See Also:
ValidationDriver(PropertyMap,PropertyMap,SchemaReader)

ValidationDriver

public ValidationDriver()
Equivalent to ValidationDriver(PropertyMap.EMPTY, PropertyMap.EMPTY, null).

See Also:
ValidationDriver(PropertyMap,PropertyMap,SchemaReader)
Method Detail

loadSchema

public boolean loadSchema(InputSource in)
                   throws SAXException,
                          IOException
Loads a schema. Subsequent calls to validate will validate with respect the loaded schema. This can be called more than once to allow multiple documents to be validated against different schemas.

Parameters:
in - the InputSource for the schema
Returns:
true if the schema was loaded successfully; false otherwise
Throws:
IOException - if an I/O error occurred
SAXException - if an XMLReader or ErrorHandler threw a SAXException

validate

public boolean validate(InputSource in)
                 throws SAXException,
                        IOException
Validates a document against the currently loaded schema. This can be called multiple times in order to validate multiple documents.

Parameters:
in - the InputSource for the document to be validated
Returns:
true if the document is valid; false otherwise
Throws:
IllegalStateException - if there is no currently loaded schema
IOException - if an I/O error occurred
SAXException - if an XMLReader or ErrorHandler threw a SAXException

fileInputSource

public static InputSource fileInputSource(String filename)
                                   throws MalformedURLException
Returns an InputSource for a filename.

Parameters:
filename - a String specifying the filename
Returns:
an InputSource for the filename
Throws:
MalformedURLException

fileInputSource

public static InputSource fileInputSource(File file)
                                   throws MalformedURLException
Returns an InputSource for a File.

Parameters:
file - the File
Returns:
an InputSource for the filename
Throws:
MalformedURLException

uriOrFileInputSource

public static InputSource uriOrFileInputSource(String uriOrFile)
                                        throws MalformedURLException
Returns an InputSource for a string that represents either a file or an absolute URI. If the string looks like an absolute URI, it will be treated as an absolute URI, otherwise it will be treated as a filename.

Parameters:
uriOrFile - a String representing either a file or an absolute URI
Returns:
an InputSource for the file or absolute URI
Throws:
MalformedURLException