## xdoclet.util
Class XmlValidator

    java.lang.Object
      org.xml.sax.helpers.DefaultHandler
          xdoclet.util.XmlValidator

All Implemented Interfaces:
  ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class XmlValidator
extends 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 ClassLoader` `classLoader`
`static String` `DEFAULT_XML_READER_CLASSNAME` The crimson implementation is shipped with ant.
`protected String` `readerClassName`
`protected XMLReader` `xmlReader` XMLReader used for validation

Constructor Summary
`XmlValidator(ClassLoader classLoader)` Describe what the XmlValidator constructor does

Method Summary
`void` `error(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.
`void` `registerSchema(URL schemaURL)` Registers a local XSD document by its public id.
`void` `reset()` Resets the Validator
`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(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 String DEFAULT_XML_READER_CLASSNAME

  The crimson implementation is shipped with ant.

  See Also:
    Constant Field Values

### classLoader

    protected ClassLoader classLoader

### xmlReader

    protected 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

### registerSchema

    public void registerSchema(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 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(SAXParseException e)
               throws SAXParseException

  Called by parser if a error occurs

  Parameters:
    `e` - an exception describing the error
  Throws:
    `SAXParseException` - every time this method is called by the parser

### warning

    public void warning(SAXParseException e)
                 throws SAXParseException

  Called by parser if a warning occurs

  Parameters:
    `e` - an exception describing the warning
  Throws:
    `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

### reset

    public void reset()

  Resets the Validator

http://xdoclet.sourceforge.net/