Interface ResourceResolver
- All Known Implementing Classes:
CatalogResourceResolver
,ChainedResourceResolver
,DirectResourceResolver
,ProtocolRestrictor.RestrictedResourceResolver
,ResourceResolverDelegate
,ResourceResolverWrappingLSResourceResolver
,ResourceResolverWrappingURIResolver
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
It is a common feature of existing resolver APIs that they chain together. For example,
it is often the case that when a new EntityResolver
is added to an XMLReader
,
it is configured so that the existing (possibly underlying, implementation defined) resolver will be called
if the newly specified resolver fails to resolve the URI. Two ResourceResolvers
can be chained
together into a single ResourceResolver
by using the ChainedResourceResolver
class.
The resolver methods in this class will generally return null
if the requested resource
could not be found. If instead the caller wants a failure to get the resource to be treated as an error,
it is possible to request this by setting a property on the CatalogResourceResolver
.
The usual mechanism for resolving a URI is to create a ResourceRequest
, and pass it to a sequence
of ResourceResolver
s using the method ResourceRequest.resolve(net.sf.saxon.lib.ResourceResolver...)
. This will invoke each resolver
in turn until one of them returns a non-null result.
-
Method Summary
Modifier and TypeMethodDescriptionresolve
(ResourceRequest request) Process a resource request to deliver a resource
-
Method Details
-
resolve
Process a resource request to deliver a resource- Parameters:
request
- the resource request- Returns:
- the returned Source; or null to delegate resolution to another resolver. The type of Source
must correspond to the type of resource requested: for non-XML resources, it should generally be a
StreamSource
. - Throws:
XPathException
- if the request is invalid in some way, or if the identified resource is unsuitable, or if resolution is to fail rather than being delegated to another resolver.
-