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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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`