org.apache.catalina.util
Class SchemaResolver

java.lang.Object
  extended by org.apache.catalina.util.SchemaResolver
All Implemented Interfaces:
org.xml.sax.EntityResolver

public class SchemaResolver
extends java.lang.Object
implements org.xml.sax.EntityResolver

This class implements a local SAX's EntityResolver. All DTDs and schemas used to validate the web.xml file will re-directed to a local file stored in the servlet-api.jar and jsp-api.jar.

Author:
Jean-Francois Arcand

Field Summary
protected  Digester digester
          The disgester instance for which this class is the entity resolver.
protected  java.util.HashMap entityValidator
          The URLs of dtds and schemas that have been registered, keyed by the public identifier that corresponds.
protected  java.lang.String publicId
          The public identifier of the DTD we are currently parsing under (if any).
protected  java.lang.String schemaExtension
          Extension to make the difference between DTD and Schema.
 
Constructor Summary
SchemaResolver(Digester digester)
          Create a new EntityResolver that will redirect all remote dtds and schema to a locat destination.
 
Method Summary
 void register(java.lang.String publicId, java.lang.String entityURL)
          Register the specified DTD/Schema URL for the specified public identifier.
 org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
          Resolve the requested external entity.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

digester

protected Digester digester
The disgester instance for which this class is the entity resolver.


entityValidator

protected java.util.HashMap entityValidator
The URLs of dtds and schemas that have been registered, keyed by the public identifier that corresponds.


publicId

protected java.lang.String publicId
The public identifier of the DTD we are currently parsing under (if any).


schemaExtension

protected java.lang.String schemaExtension
Extension to make the difference between DTD and Schema.

Constructor Detail

SchemaResolver

public SchemaResolver(Digester digester)
Create a new EntityResolver that will redirect all remote dtds and schema to a locat destination.

Parameters:
digester - The digester instance.
Method Detail

register

public void register(java.lang.String publicId,
                     java.lang.String entityURL)
Register the specified DTD/Schema URL for the specified public identifier. This must be called before the first call to parse(). When adding a schema file (*.xsd), only the name of the file will get added. If two schemas with the same name are added, only the last one will be stored.

Parameters:
publicId - Public identifier of the DTD to be resolved
entityURL - The URL to use for reading this DTD

resolveEntity

public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
                                             java.lang.String systemId)
                                      throws org.xml.sax.SAXException
Resolve the requested external entity.

Specified by:
resolveEntity in interface org.xml.sax.EntityResolver
Parameters:
publicId - The public identifier of the entity being referenced
systemId - The system identifier of the entity being referenced
Throws:
org.xml.sax.SAXException - if a parsing exception occurs


Copyright © 2000-2009 Apache Software Foundation. All Rights Reserved.