An extension to OASIS Open Catalog files, this class supports
suffix-based matching and an external RFC2483 resolver.
addEntry
public void addEntry(CatalogEntry entry)
Cleanup and process a Catalog entry.
This method processes each Catalog entry, changing mapped
relative system identifiers into absolute ones (based on the current
base URI), and maintaining other information about the current
catalog.
- addEntry in interface Catalog
entry
- The CatalogEntry to process.
queryResolver
protected Resolver queryResolver(String resolver,
String command,
String arg1,
String arg2)
Query an external RFC2483 resolver.
resolver
- The URL of the RFC2483 resolver.command
- The command to send the resolver.arg1
- The first argument to the resolver.arg2
- The second argument to the resolver, usually null.
- The Resolver constructed.
resolveAllSystem
public Vector resolveAllSystem(String systemId)
throws MalformedURLException,
IOException
Return the applicable SYSTEM system identifiers.
If one or more SYSTEM entries exists in the Catalog
for the system ID specified, return the mapped values.
The caller is responsible for doing any necessary
normalization of the system identifier before calling
this method. For example, a relative system identifier in
a document might be converted to an absolute system identifier
before attempting to resolve it.
Note that this function will force all subordinate catalogs
to be loaded.
On Windows-based operating systems, the comparison between
the system identifier provided and the SYSTEM entries in the
Catalog is case-insensitive.
systemId
- The system ID to locate in the catalog.
- The system identifier to use for the notation.
resolveAllSystemReverse
public Vector resolveAllSystemReverse(String systemId)
throws MalformedURLException,
IOException
Find the URNs for a given system identifier in all catalogs.
systemId
- The system ID to locate.
- A vector of URNs that map to the systemId.
resolveExternalPublic
protected String resolveExternalPublic(String publicId,
String resolver)
throws MalformedURLException,
IOException
Query an external RFC2483 resolver for a public identifier.
publicId
- The system ID to locate.resolver
- The name of the resolver to use.
- The system identifier to use for the systemId.
resolveExternalSystem
protected String resolveExternalSystem(String systemId,
String resolver)
throws MalformedURLException,
IOException
Query an external RFC2483 resolver for a system identifier.
systemId
- The system ID to locate.resolver
- The name of the resolver to use.
- The system identifier to use for the systemId.
resolvePublic
public String resolvePublic(String publicId,
String systemId)
throws MalformedURLException,
IOException
Return the applicable PUBLIC or SYSTEM identifier, resorting
to external resolvers if necessary.
This method searches the Catalog and returns the system
identifier specified for the given system or
public identifiers. If
no appropriate PUBLIC or SYSTEM entry is found in the Catalog,
null is returned.
Note that a system or public identifier in the current catalog
(or subordinate catalogs) will be used in preference to an
external resolver. Further, if a systemId is present, the external
resolver(s) will be queried for that before the publicId.
- resolvePublic in interface Catalog
publicId
- The public identifier to locate in the catalog.
Public identifiers are normalized before comparison.systemId
- The nominal system identifier for the entity
in question (as provided in the source document).
- The system identifier to use.
Note that the nominal system identifier is not returned if a
match is not found in the catalog, instead null is returned
to indicate that no match was found.
resolveSystem
public String resolveSystem(String systemId)
throws MalformedURLException,
IOException
Return the applicable SYSTEM system identifier, resorting
to external RESOLVERs if necessary.
If a SYSTEM entry exists in the Catalog
for the system ID specified, return the mapped value.
In the Resolver (as opposed to the Catalog) class, if the
URI isn't found by the usual algorithm, SYSTEMSUFFIX entries are
considered.
On Windows-based operating systems, the comparison between
the system identifier provided and the SYSTEM entries in the
Catalog is case-insensitive.
- resolveSystem in interface Catalog
systemId
- The system ID to locate in the catalog.
- The system identifier to use for systemId.
resolveSystemReverse
public String resolveSystemReverse(String systemId)
throws MalformedURLException,
IOException
Find the URN for a given system identifier.
systemId
- The system ID to locate.
- A (single) URN that maps to the systemId.
resolveURI
public String resolveURI(String uri)
throws MalformedURLException,
IOException
Return the applicable URI.
If a URI entry exists in the Catalog
for the URI specified, return the mapped value.
In the Resolver (as opposed to the Catalog) class, if the
URI isn't found by the usual algorithm, URISUFFIX entries are
considered.
URI comparison is case sensitive.
- resolveURI in interface Catalog
uri
- The URI to locate in the catalog.