Package 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceValidationDriver.SaxProducerA producer of SAX events.
-
Constructor Summary
Constructors Constructor Description 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static InputSourcefileInputSource(File file)Returns anInputSourcefor aFile.static InputSourcefileInputSource(String filename)Returns anInputSourcefor a filename.PropertyMapgetSchemaProperties()Get the actual properties of the loaded schemabooleanloadSchema(InputSource in)Loads a schema.static InputSourceuriOrFileInputSource(String uriOrFile)Returns anInputSourcefor a string that represents either a file or an absolute URI.booleanvalidate(ValidationDriver.SaxProducer saxProducer)Validates the events of a producer against the currently loaded schema.booleanvalidate(InputSource in)Validates a document against the currently loaded 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 benullinstanceProperties- a PropertyMap specifying properties controlling validation; must not benullschemaReader- the SchemaReader to use; if this isnull, 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).
-
ValidationDriver
public ValidationDriver(PropertyMap properties, SchemaReader sr)
Equivalent to ValidationDriver(properties, properties, sr).
-
ValidationDriver
public ValidationDriver(PropertyMap properties)
Equivalent to ValidationDriver(properties, properties, null).
-
ValidationDriver
public ValidationDriver(SchemaReader sr)
Equivalent to ValidationDriver(PropertyMap.EMPTY, PropertyMap.EMPTY, null).
-
ValidationDriver
public ValidationDriver()
Equivalent to ValidationDriver(PropertyMap.EMPTY, PropertyMap.EMPTY, null).
-
-
Method Detail
-
loadSchema
public boolean loadSchema(InputSource in) throws SAXException, IOException
Loads a schema. Subsequent calls tovalidatewill 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:
trueif the schema was loaded successfully;falseotherwise- Throws:
IOException- if an I/O error occurredSAXException- 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:
trueif the document is valid;falseotherwise- Throws:
IllegalStateException- if there is no currently loaded schemaIOException- if an I/O error occurredSAXException- if an XMLReader or ErrorHandler threw a SAXException
-
validate
public boolean validate(ValidationDriver.SaxProducer saxProducer) throws SAXException, IOException
Validates the events of a producer against the currently loaded schema. This can be called multiple times in order to validate multiple documents.- Parameters:
producer- a producer that delivers SAX events to the handlers.- Returns:
trueif the document is valid;falseotherwise- Throws:
IllegalStateException- if there is no currently loaded schemaIOException- if an I/O error occurredSAXException- if an XMLReader or ErrorHandler threw a SAXException
-
getSchemaProperties
public PropertyMap getSchemaProperties()
Get the actual properties of the loaded schema- Returns:
- a PropertyMap with the schema properties
- Throws:
IllegalStateException- if there is no currently loaded schema
-
fileInputSource
public static InputSource fileInputSource(String filename)
Returns anInputSourcefor a filename.- Parameters:
filename- a String specifying the filename- Returns:
- an
InputSourcefor the filename
-
fileInputSource
public static InputSource fileInputSource(File file)
Returns anInputSourcefor aFile.- Parameters:
file- theFile- Returns:
- an
InputSourcefor the filename
-
uriOrFileInputSource
public static InputSource uriOrFileInputSource(String uriOrFile)
Returns anInputSourcefor 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- aStringrepresenting either a file or an absolute URI- Returns:
- an
InputSourcefor the file or absolute URI
-
-