Package org.springframework.beans.factory.xml

# Class ResourceEntityResolver

java.lang.Object
org.springframework.beans.factory.xml.DelegatingEntityResolver
org.springframework.beans.factory.xml.ResourceEntityResolver

All Implemented Interfaces:
  `EntityResolver`

public class ResourceEntityResolver extends DelegatingEntityResolver
`EntityResolver` implementation that tries to resolve entity references through a `ResourceLoader` (usually, relative to the resource base of an `ApplicationContext`), if applicable. Extends `DelegatingEntityResolver` to also provide DTD and XSD lookup.

Allows to use standard XML entities to include XML snippets into an application context definition, for example to split a large XML file into various modules. The include paths can be relative to the application context's resource base as usual, instead of relative to the JVM working directory (the XML parser's default).

Note: In addition to relative paths, every URL that specifies a file in the current system root, i.e. the JVM working directory, will be interpreted relative to the application context too.

Since:
  31.07.2003
Author:
  Juergen Hoeller
See Also:
  - `ResourceLoader`
  - `org.springframework.context.ApplicationContext`

## Field Summary

### Fields inherited from class org.springframework.beans.factory.xml.DelegatingEntityResolver

`DTD_SUFFIX, XSD_SUFFIX`

## Constructor Summary

Constructors
Constructor
Description
`ResourceEntityResolver(org.springframework.core.io.ResourceLoader resourceLoader)`
Create a ResourceEntityResolver for the specified ResourceLoader (usually, an ApplicationContext).

## Method Summary

Modifier and Type
Method
Description
`InputSource`
`resolveEntity(String publicId, String systemId)`
`protected InputSource`
`resolveSchemaEntity(String publicId, String systemId)`
A fallback method for `resolveEntity(String, String)` that is used when a "schema" entity (DTD or XSD) cannot be resolved as a local resource.

### Methods inherited from class org.springframework.beans.factory.xml.DelegatingEntityResolver

`toString`

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

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

## Constructor Details

### ResourceEntityResolver

public ResourceEntityResolver(org.springframework.core.io.ResourceLoader resourceLoader)
Create a ResourceEntityResolver for the specified ResourceLoader (usually, an ApplicationContext).

Parameters:
  `resourceLoader` - the ResourceLoader (or ApplicationContext) to load XML entity includes with

## Method Details

### resolveEntity

@Nullable public InputSource resolveEntity(@Nullable String publicId, @Nullable String systemId) throws SAXException, IOException

Specified by:
  `resolveEntity` in interface `EntityResolver`
Overrides:
  `resolveEntity` in class `DelegatingEntityResolver`
Throws:
  `SAXException`
  `IOException`

### resolveSchemaEntity

@Nullable protected InputSource resolveSchemaEntity(@Nullable String publicId, String systemId)
A fallback method for `resolveEntity(String, String)` that is used when a "schema" entity (DTD or XSD) cannot be resolved as a local resource. The default behavior is to perform remote resolution over HTTPS.

Subclasses can override this method to change the default behavior.

- Return `null` to fall back to the parser's default behavior.
- Throw an exception to prevent remote resolution of the DTD or XSD.

Parameters:
  `publicId` - the public identifier of the external entity being referenced, or null if none was supplied
  `systemId` - the system identifier of the external entity being referenced, representing the URL of the DTD or XSD
Returns:
  an InputSource object describing the new input source, or null to request that the parser open a regular URI connection to the system identifier
Since:
  6.0.4