Class DefaultEntityResolver

java.lang.Object
org.apache.commons.configuration2.resolver.DefaultEntityResolver
All Implemented Interfaces:
EntityRegistry, EntityResolver

public class DefaultEntityResolver extends Object implements EntityResolver, EntityRegistry
The DefaultEntityResolver used by XML Configurations.
Since:
1.7
  • Field Details

    • registeredEntities

      private final Map<String,URL> registeredEntities
      Stores a map with the registered public IDs.
  • Constructor Details

    • DefaultEntityResolver

      public DefaultEntityResolver()
  • Method Details

    • getRegisteredEntities

      public Map<String,URL> getRegisteredEntities()
      Gets a map with the entity IDs that have been registered using the registerEntityId() method.
      Specified by:
      getRegisteredEntities in interface EntityRegistry
      Returns:
      a map with the registered entity IDs
    • registerEntityId

      public void registerEntityId(String publicId, URL entityURL)

      Registers the specified URL for the specified public identifier.

      This implementation maps PUBLICID's to URLs (from which the resource will be loaded). A common use case for this method is to register local URLs (possibly computed at runtime by a class loader) for DTDs and Schemas. This allows the performance advantage of using a local version without having to ensure every SYSTEM URI on every processed XML document is local. This implementation provides only basic functionality. If more sophisticated features are required, either calling XMLConfiguration.setDocumentBuilder(DocumentBuilder) to set a custom DocumentBuilder (which also can be initialized with a custom EntityResolver) or creating a custom entity resolver and registering it with the XMLConfiguration is recommended.

      Specified by:
      registerEntityId in interface EntityRegistry
      Parameters:
      publicId - Public identifier of the Entity to be resolved
      entityURL - The URL to use for reading this Entity
      Throws:
      IllegalArgumentException - if the public ID is undefined
    • resolveEntity

      public InputSource resolveEntity(String publicId, String systemId) throws SAXException
      Resolves the requested external entity. This is the default implementation of the EntityResolver interface. It checks the passed in public ID against the registered entity IDs and uses a local URL if possible.
      Specified by:
      resolveEntity in interface EntityResolver
      Parameters:
      publicId - the public identifier of the entity being referenced
      systemId - the system identifier of the entity being referenced
      Returns:
      an input source for the specified entity
      Throws:
      SAXException - if a parsing exception occurs