## org.apache.catalina.util
Class SchemaResolver

    java.lang.Object
      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 org.apache.commons.digester.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(org.apache.commons.digester.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 org.apache.commons.digester.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(org.apache.commons.digester.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-2003 Apache Software Foundation. All Rights Reserved.