org.apache.catalina.util

Class SchemaResolver

Implemented Interfaces:
EntityResolver

public class SchemaResolver
extends java.lang.Object
implements 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 HashMap
entityValidator
The URLs of dtds and schemas that have been registered, keyed by the public identifier that corresponds.
protected String
publicId
The public identifier of the DTD we are currently parsing under (if any).
protected 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(String publicId, String entityURL)
Register the specified DTD/Schema URL for the specified public identifier.
InputSource
resolveEntity(String publicId, String systemId)
Resolve the requested external entity.

Field Details

digester

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


entityValidator

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


publicId

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


schemaExtension

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

Constructor Details

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 Details

register

public void register(String publicId,
                     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 InputSource resolveEntity(String publicId,
                                 String systemId)
            throws SAXException
Resolve the requested external entity.

Parameters:
publicId - The public identifier of the entity being referenced
systemId - The system identifier of the entity being referenced


Copyright B) 2000-2003 Apache Software Foundation. All Rights Reserved.