org.springframework.beans.factory.xml

Class PluggableSchemaResolver

  • java.lang.Object
    • org.springframework.beans.factory.xml.PluggableSchemaResolver
  • All Implemented Interfaces:
    org.xml.sax.EntityResolver


    public class PluggableSchemaResolver
    extends java.lang.Object
    implements org.xml.sax.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 java.lang.String DEFAULT_SCHEMA_MAPPINGS_LOCATION
      The location of the file that defines schema mappings.
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) 
      java.lang.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 java.lang.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(@Nullable
                                       java.lang.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
                                       java.lang.ClassLoader classLoader,
                                       java.lang.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

        @Nullable
        public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
                                                               @Nullable
                                                               java.lang.String systemId)
                                                        throws java.io.IOException
        Specified by:
        resolveEntity in interface org.xml.sax.EntityResolver
        Throws:
        java.io.IOException
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object