org.springframework.beans.factory.xml
Class PluggableSchemaResolver

java.lang.Object
  extended by 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
static String DEFAULT_SCHEMA_MAPPINGS_LOCATION
          The location of the file that defines schema mappings.
 
Constructor Summary
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
 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