com.thaiopensource.validate.Validator Maven / Gradle / Ivy
Show all versions of wicketstuff-jing Show documentation
package com.thaiopensource.validate;
import org.xml.sax.ContentHandler;
import org.xml.sax.DTDHandler;
/**
* Validates an XML document with respect to a schema. The schema is
* determined when the Validator
is created and cannot be
* changed. The XML document is provided to the Validator
* by calling methods of the ContentHandler
object returned
* by getContentHandler
; the methods must be called in
* the sequence specified by the ContentHandler
* interface. If the getDTDHandler
method returns
* a non-null object, then method calls must be made on it
* reporting DTD information.
*
* Any errors will be reported to the ErrorHandler
* specified when the Validator
was created. If, after the
* call to the endDocument
method, no errors have been
* reported, then the XML document is valid.
*
*
A single Validator
object is not safe for
* concurrent access from multiple threads. A single
* ValidatorHandler
can be used to validate only a single
* document at a time.
*
*
After completing validation of an XML document (i.e. after calling
* the endDocument
on the ContentHandler
),
* reset
can be called to allow validation of another
* document. The reset
method may create new ContentHandler
* and DTDHandler
objects or may simply reinitialize the
* state of the existing objects. Therefore, getContentHandler
* and getDTDHandler
must be called after reset
* to retrieve the objects to which the XML document to be validated
* must be provided.
*
* @author James Clark
*/
public interface Validator {
/**
* Returns the ContentHandler that will receive the XML document.
* Information about the XML document to be validated must be
* reported by calling methods on the returned ContentHandler.
* When validation of an XML document has been completed (either
* endDocument() has been called or validation has been abandoned
* prematurely), reset() must be called. If no calls are made
* on the ContentHandler, then reset() need not be called.
* Implementations should allocate resources that require
* cleanup (e.g. threads, open files) lazily, typically
* in startDocument().
*
* This method does not change the state of the Validator: the same
* object will always be returned unless reset
is called.
*
* @see #reset()
* @return a ContentHandler, never null
*/
ContentHandler getContentHandler();
/**
* Returns a DTDHandler. Information about the DTD must be reported
* by calling methods on the returned object, unless null
* is returned. The same object will always be returned unless
* reset
is called: this method does not change the state
* of the Validator.
*
* @return a DTDHandler, maybe null
if DTD information is
* not significant to the Validator
*/
DTDHandler getDTDHandler();
/**
* Cleans up after validating a document. After completing validation
* of a document, reset
must be called. After calling
* reset(), another document may be validated. Calling this method
* may create new ContentHandler and DTDHandler objects or may simply
* reinitialize the state of the existing objects.
*/
void reset();
}