org.apache.catalina.util

Class SchemaResolver

public class SchemaResolver extends 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 Digesterdigester
The disgester instance for which this class is the entity resolver.
protected HashMapentityValidator
The URLs of dtds and schemas that have been registered, keyed by the public identifier that corresponds.
protected StringpublicId
The public identifier of the DTD we are currently parsing under (if any).
protected StringschemaExtension
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
voidregister(String publicId, String entityURL)
Register the specified DTD/Schema URL for the specified public identifier.
InputSourceresolveEntity(String publicId, String systemId)
Resolve the requested external entity.

Field Detail

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 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(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)
Resolve the requested external entity.

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

Throws: SAXException if a parsing exception occurs

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