xdoclet.util
Class XmlValidator

java.lang.Object
  extended byorg.xml.sax.helpers.DefaultHandler
      extended byxdoclet.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.16 $
Author:
Aslak Helles�y
created
September 18, 2001
To do:
Deal with Translator.getString()'s exception better in resolveEntity(String, String)

Field Summary
protected  ClassLoader classLoader
           
static String DEFAULT_XML_READER_CLASSNAME
          The crimson implementation is shipped with ant.
protected  String readerClassName
           
protected  org.xml.sax.XMLReader xmlReader
          XMLReader used for validation
 
Constructor Summary
XmlValidator(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(String publicId, URL dtdURL)
          Registers a local DTD document by its public id.
 org.xml.sax.InputSource resolveEntity(String publicId, 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(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 String DEFAULT_XML_READER_CLASSNAME
The crimson implementation is shipped with ant.


classLoader

protected ClassLoader classLoader

xmlReader

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


readerClassName

protected String readerClassName
Constructor Detail

XmlValidator

public XmlValidator(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(String publicId,
                        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

resolveEntity

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

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

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

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