org.apache.xml.resolver.tools
Class CatalogResolver

java.lang.Object
  extended by org.apache.xml.resolver.tools.CatalogResolver
All Implemented Interfaces:
URIResolver, EntityResolver

public class CatalogResolver
extends java.lang.Object
implements EntityResolver, URIResolver

A SAX EntityResolver/JAXP URIResolver that uses catalogs.

This class implements both a SAX EntityResolver and a JAXP URIResolver.

This resolver understands OASIS TR9401 catalogs, XCatalogs, and the current working draft of the OASIS Entity Resolution Technical Committee specification.

Version:
1.0
Author:
Norman Walsh Norman.Walsh@Sun.COM
See Also:
Catalog, EntityResolver, URIResolver

Field Summary
 boolean namespaceAware
          Make the parser Namespace aware?
 boolean validating
          Make the parser validating?
 
Constructor Summary
CatalogResolver()
          Constructor
CatalogResolver(boolean privateCatalog)
          Constructor
CatalogResolver(CatalogManager manager)
          Constructor
 
Method Summary
 Catalog getCatalog()
          Return the underlying catalog
 java.lang.String getResolvedEntity(java.lang.String publicId, java.lang.String systemId)
          Implements the guts of the resolveEntity method for the SAX interface.
 Source resolve(java.lang.String href, java.lang.String base)
          JAXP URIResolver API
 InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
          Implements the resolveEntity method for the SAX interface.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

namespaceAware

public boolean namespaceAware
Make the parser Namespace aware?


validating

public boolean validating
Make the parser validating?

Constructor Detail

CatalogResolver

public CatalogResolver()
Constructor


CatalogResolver

public CatalogResolver(boolean privateCatalog)
Constructor


CatalogResolver

public CatalogResolver(CatalogManager manager)
Constructor

Method Detail

getCatalog

public Catalog getCatalog()
Return the underlying catalog


getResolvedEntity

public java.lang.String getResolvedEntity(java.lang.String publicId,
                                          java.lang.String systemId)
Implements the guts of the resolveEntity method for the SAX interface.

Presented with an optional public identifier and a system identifier, this function attempts to locate a mapping in the catalogs.

If such a mapping is found, it is returned. If no mapping is found, null is returned.

Parameters:
publicId - The public identifier for the entity in question. This may be null.
systemId - The system identifier for the entity in question. XML requires a system identifier on all external entities, so this value is always specified.
Returns:
The resolved identifier (a URI reference).

resolveEntity

public InputSource resolveEntity(java.lang.String publicId,
                                 java.lang.String systemId)
Implements the resolveEntity method for the SAX interface.

Presented with an optional public identifier and a system identifier, this function attempts to locate a mapping in the catalogs.

If such a mapping is found, the resolver attempts to open the mapped value as an InputSource and return it. Exceptions are ignored and null is returned if the mapped value cannot be opened as an input source.

If no mapping is found (or an error occurs attempting to open the mapped value as an input source), null is returned and the system will use the specified system identifier as if no entityResolver was specified.

Specified by:
resolveEntity in interface EntityResolver
Parameters:
publicId - The public identifier for the entity in question. This may be null.
systemId - The system identifier for the entity in question. XML requires a system identifier on all external entities, so this value is always specified.
Returns:
An InputSource for the mapped identifier, or null.
See Also:
InputSource

resolve

public Source resolve(java.lang.String href,
                      java.lang.String base)
               throws TransformerException
JAXP URIResolver API

Specified by:
resolve in interface URIResolver
Parameters:
href - An href attribute, which may be relative or absolute.
base - The base URI against which the first argument will be made absolute if the absolute URI is required.
Returns:
A Source object, or null if the href cannot be resolved, and the processor should try to resolve the URI itself.
Throws:
TransformerException - if an error occurs when trying to resolve the URI.