xdoclet.util
Class XmlValidator

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by xdoclet.util.XmlValidator
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class XmlValidator
extends org.xml.sax.helpers.DefaultHandler

This handler implementation is capable of providing dtds from a local storage instead of accessing them over the net. Further, it will throw an exception if the parsed xml is not acording to the DTD it specifies.

Version:
$Revision: 1.19 $
Author:
Aslak Helles???y
created
September 18, 2001
To do:
Deal with Translator.getString()'s exception better in resolveEntity(String, String)

Field Summary
protected  java.lang.ClassLoader classLoader
           
static java.lang.String DEFAULT_XML_READER_CLASSNAME
          The crimson implementation is shipped with ant.
protected  java.lang.String readerClassName
           
protected  org.xml.sax.XMLReader xmlReader
          XMLReader used for validation
 
Constructor Summary
XmlValidator(java.lang.ClassLoader classLoader)
          Describe what the XmlValidator constructor does
 
Method Summary
 void error(org.xml.sax.SAXParseException e)
          Called by parser if a error occurs
static XmlValidator getInstance()
          Gets the Instance attribute of the XmlValidator class
 void registerDTD(java.lang.String publicId, java.net.URL dtdURL)
          Registers a local DTD document by its public id.
 void registerSchema(java.net.URL schemaURL)
          Registers a local XSD document by its public id.
 void reset()
          Resets the Validator
 org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
          Called by parser when a DTD declaration is encountered in the parsed XML document
static void setInstance(XmlValidator instance)
          Sets the Instance attribute of the XmlValidator class
 void validate(java.io.File xmlFile)
          Validates an XML file for conformance to a declared DTD or XMLSchema.
 void warning(org.xml.sax.SAXParseException e)
          Called by parser if a warning occurs
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_XML_READER_CLASSNAME

public static final java.lang.String DEFAULT_XML_READER_CLASSNAME
The crimson implementation is shipped with ant.

See Also:
Constant Field Values

classLoader

protected java.lang.ClassLoader classLoader

xmlReader

protected org.xml.sax.XMLReader xmlReader
XMLReader used for validation


readerClassName

protected java.lang.String readerClassName
Constructor Detail

XmlValidator

public XmlValidator(java.lang.ClassLoader classLoader)
Describe what the XmlValidator constructor does

Parameters:
classLoader - Describe what the parameter does
Method Detail

getInstance

public static XmlValidator getInstance()
Gets the Instance attribute of the XmlValidator class

Returns:
The Instance value

setInstance

public static void setInstance(XmlValidator instance)
Sets the Instance attribute of the XmlValidator class

Parameters:
instance - The new Instance value

registerDTD

public void registerDTD(java.lang.String publicId,
                        java.net.URL dtdURL)
Registers a local DTD document by its public id. This is necessary to avoid DTD loading over the net.

Parameters:
publicId - the publicId of the DTD
dtdURL - the URL of the local DTD, which must be loadable by the class passed in the constructor. This URL typically points inside a local jar file

registerSchema

public void registerSchema(java.net.URL schemaURL)
Registers a local XSD document by its public id. This is necessary to avoid loading XML Schemas over the net.

Parameters:
schemaURL -

resolveEntity

public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
                                             java.lang.String systemId)
Called by parser when a DTD declaration is encountered in the parsed XML document

Specified by:
resolveEntity in interface org.xml.sax.EntityResolver
Overrides:
resolveEntity in class org.xml.sax.helpers.DefaultHandler
Parameters:
publicId - the public id of the DTD
systemId - the system id of the DTD
Returns:
an InputSource from containing the DTD document, provided it has been previously registered via the registerDTD(java.lang.String, java.net.URL) method. If not, null will be returned, and the parser will atempt to load the DTD from the systemId value, Usually an Internet http URL.

error

public void error(org.xml.sax.SAXParseException e)
           throws org.xml.sax.SAXParseException
Called by parser if a error occurs

Specified by:
error in interface org.xml.sax.ErrorHandler
Overrides:
error in class org.xml.sax.helpers.DefaultHandler
Parameters:
e - an exception describing the error
Throws:
org.xml.sax.SAXParseException - every time this method is called by the parser

warning

public void warning(org.xml.sax.SAXParseException e)
             throws org.xml.sax.SAXParseException
Called by parser if a warning occurs

Specified by:
warning in interface org.xml.sax.ErrorHandler
Overrides:
warning in class org.xml.sax.helpers.DefaultHandler
Parameters:
e - an exception describing the warning
Throws:
org.xml.sax.SAXParseException - every time this method is called by the parser

validate

public void validate(java.io.File xmlFile)
              throws XDocletException
Validates an XML file for conformance to a declared DTD or XMLSchema. This method is useful for subclasses that wish to verify that a generated XML file is ok. Please note that the callers should make sure to register any DTDs required for validation on the handler object.

Parameters:
xmlFile - Description of Parameter
Throws:
XDocletException - Description of Exception

reset

public void reset()
Resets the Validator


http://xdoclet.sourceforge.net/