|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.xerces.readers.XMLCatalogHandler | +--org.apache.xerces.readers.XCatalog
This catalog supports the XCatalog proposal draft 0.2 posted to the xml-dev mailing list by John Cowan. XCatalog is an XML representation of the SGML Open TR9401:1997 catalog format. The current proposal supports public identifier maps, system identifier aliases, and public identifier prefix delegates. Refer to the XCatalog DTD for the full specification of this catalog format at http://www.ccil.org/~cowan/XML/XCatalog.html.
In order to use XCatalogs, you must write the catalog files with the following restrictions:
<!DOCTYPE XCatalog PUBLIC "-//DTD XCatalog//EN" "org/apache/xerces/readers/xcatalog.dtd">
To use this catalog in a parser, set an XCatalog instance as the parser's EntityResolver. For example:
XMLParser parser = new AnyParser(); Catalog catalog = new XCatalog(); parser.getEntityHandler().setEntityResolver(catalog);
Once installed, catalog files that conform to the XCatalog grammar can be appended to the catalog by calling the loadCatalog method on the parser or the catalog instance. The following example loads the contents of two catalog files:
parser.loadCatalog(new InputSource("catalogs/cat1.xml")); parser.loadCatalog(new InputSource("http://host/catalogs/cat2.xml"));
Limitations: The following are the current limitations of this XCatalog implementation:
Field Summary | |
---|---|
static java.lang.String |
XCATALOG_DTD_PUBLICID
XCatalog public identifier string ("-//DTD XCatalog//EN"). |
Constructor Summary | |
---|---|
XCatalog()
Constructs an XCatalog instance. |
Method Summary | |
---|---|
void |
addDelegateCatalog(java.lang.String prefix,
XCatalog catalog)
Adds a delegate mapping. |
XCatalog |
getDelegateCatalog(java.lang.String prefix)
Returns the catalog for the given delegate prefix. |
java.util.Enumeration |
getDelegateCatalogKeys()
Returns an enumeration of delegate prefixes. |
void |
loadCatalog(InputSource source)
Loads the catalog stream specified by the given input source and appends the contents to the catalog. |
void |
removeDelegateCatalog(java.lang.String prefix)
Removes a delegate. |
InputSource |
resolveEntity(java.lang.String publicId,
java.lang.String systemId)
Resolves external entities. |
Methods inherited from class org.apache.xerces.readers.XMLCatalogHandler |
---|
addPublicMapping, addSystemMapping, getPublicMapping, getPublicMappingKeys, getSystemMapping, getSystemMappingKeys, removePublicMapping, removeSystemMapping |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String XCATALOG_DTD_PUBLICID
Constructor Detail |
public XCatalog()
Method Detail |
public void loadCatalog(InputSource source) throws SAXException, java.io.IOException
loadCatalog
in class XMLCatalogHandler
source
- The catalog source.SAXException
- Throws exception on SAX error.java.io.IOException
- Throws exception on i/o error.public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws SAXException, java.io.IOException
resolveEntity
in class XMLCatalogHandler
publicId
- The public identifier used for entity resolution.systemId
- If the publicId is not null, this systemId is
to be considered the default system identifier;
else a system identifier alias mapping is
requested.SAXException
- Exception thrown on SAX error.java.io.IOException
- Exception thrown on i/o error.public void addDelegateCatalog(java.lang.String prefix, XCatalog catalog)
This method makes sure that prefixes that match each other are inserted into the delegate list in order of longest prefix length first.
prefix
- The delegate prefix.catalog
- The delegate catalog.public void removeDelegateCatalog(java.lang.String prefix)
prefix
- The delegate prefix to remove.public java.util.Enumeration getDelegateCatalogKeys()
public XCatalog getDelegateCatalog(java.lang.String prefix)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |