org.springframework.beans.factory.xml

## Class PluggableSchemaResolver

- java.lang.Object
- - org.springframework.beans.factory.xml.PluggableSchemaResolver

All Implemented Interfaces:
  EntityResolver

    public class PluggableSchemaResolver
    extends Object
    implements EntityResolver

`EntityResolver` implementation that attempts to resolve schema URLs into local `classpath resources` using a set of mappings files.

By default, this class will look for mapping files in the classpath using the pattern: `META-INF/spring.schemas` allowing for multiple files to exist on the classpath at any one time. The format of `META-INF/spring.schemas` is a properties file where each line should be of the form `systemId=schema-location` where `schema-location` should also be a schema file in the classpath. Since systemId is commonly a URL, one must be careful to escape any ':' characters which are treated as delimiters in properties files.

The pattern for the mapping files can be overidden using the `PluggableSchemaResolver(ClassLoader, String)` constructor

Since:
  2.0
Author:
  Rob Harrop, Juergen Hoeller

### Field Summary

Fields
`static String` `DEFAULT_SCHEMA_MAPPINGS_LOCATION` The location of the file that defines schema mappings.

### Constructor Summary

Constructors
Constructor and Description
`PluggableSchemaResolver(ClassLoader classLoader)` Loads the schema URL -> schema file location mappings using the default mapping file pattern "META-INF/spring.schemas".
`PluggableSchemaResolver(ClassLoader classLoader, String schemaMappingsLocation)` Loads the schema URL -> schema file location mappings using the given mapping file pattern.

### Method Summary

Methods
`InputSource` `resolveEntity(String publicId, String systemId)`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### DEFAULT_SCHEMA_MAPPINGS_LOCATION

    public static final String DEFAULT_SCHEMA_MAPPINGS_LOCATION

The location of the file that defines schema mappings. Can be present in multiple JAR files.

See Also:
  Constant Field Values

### Constructor Detail

#### PluggableSchemaResolver

    public PluggableSchemaResolver(ClassLoader classLoader)

Loads the schema URL -> schema file location mappings using the default mapping file pattern "META-INF/spring.schemas".

Parameters:
  `classLoader` - the ClassLoader to use for loading (can be `null`) to use the default ClassLoader)
See Also:
  `PropertiesLoaderUtils.loadAllProperties(String, ClassLoader)`

#### PluggableSchemaResolver

    public PluggableSchemaResolver(ClassLoader classLoader,
                           String schemaMappingsLocation)

Loads the schema URL -> schema file location mappings using the given mapping file pattern.

Parameters:
  `classLoader` - the ClassLoader to use for loading (can be `null`) to use the default ClassLoader)
  `schemaMappingsLocation` - the location of the file that defines schema mappings (must not be empty)
See Also:
  `PropertiesLoaderUtils.loadAllProperties(String, ClassLoader)`

### Method Detail

#### resolveEntity

    public InputSource resolveEntity(String publicId,
                            String systemId)
                              throws IOException

Specified by:
  `resolveEntity` in interface `EntityResolver`
Throws:
  `IOException`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`