Package org.apache.catalina.util
Class SchemaResolver
- java.lang.Object
-
- org.apache.catalina.util.SchemaResolver
-
- All Implemented Interfaces:
EntityResolver
public class SchemaResolver extends Object implements EntityResolver
This class implements a local SAX'sEntityResolver. 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
Fields Modifier and Type Field Description protected DigesterdigesterThe digester instance for which this class is the entity resolver.protected HashMap<String,String>entityValidatorThe URLs of dtds and schemas that have been registered, keyed by the public identifier that corresponds.protected StringschemaExtensionExtension to make the difference between DTD and Schema.
-
Constructor Summary
Constructors Constructor Description SchemaResolver(Digester digester)Create a newEntityResolverthat will redirect all remote dtds and schema to a local destination.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.static voidsetForceLocalSchema(boolean flag)
-
-
-
Field Detail
-
digester
protected Digester digester
The digester instance for which this class is the entity resolver.
-
entityValidator
protected HashMap<String,String> entityValidator
The URLs of dtds and schemas that have been registered, keyed by the public identifier that corresponds.
-
schemaExtension
protected String schemaExtension
Extension to make the difference between DTD and Schema.
-
-
Constructor Detail
-
SchemaResolver
public SchemaResolver(Digester digester)
Create a newEntityResolverthat will redirect all remote dtds and schema to a local destination.- Parameters:
digester- schemaLocation the XML Schema used to validate xml 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 toparse(). 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 resolvedentityURL- The URL to use for reading this DTD
-
resolveEntity
public InputSource resolveEntity(String publicId, String systemId) throws SAXException
Resolve the requested external entity.- Specified by:
resolveEntityin interfaceEntityResolver- Parameters:
publicId- The public identifier of the entity being referencedsystemId- The system identifier of the entity being referenced- Throws:
SAXException- if a parsing exception occurs
-
setForceLocalSchema
public static void setForceLocalSchema(boolean flag)
-
-