com.thaiopensource.validate
Class ValidationDriver

java.lang.Object
  |
  +--com.thaiopensource.validate.ValidationDriver

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

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
 

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
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
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
MalformedURLException