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 overridden using the PluggableSchemaResolver(ClassLoader, String) constructor.

Since:
2.0
Author:
Rob Harrop, Juergen Hoeller
  • Field Details

    • 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:
  • Constructor Details

    • PluggableSchemaResolver

      public PluggableSchemaResolver(@Nullable 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(@Nullable 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 Details