This is an introduction of XML catalog.
An XML catalog, which can be physically composed of several catalog
entry files, is a logical structure that describes mapping information
for various resources. A catalog entry file is an xml file
that includes a group of catalog entries.
A catalog entry can be used to locate a unified resource
identifier (URI) reference for a certain resource such as a DTD
or Schema module. An external entity's public identifier is
used for mapping to the URI reference.
When the Public ID and System ID are both specified in a document,
and the Public ID is used to locate a resource, the URI of the System
identifier can be ignored.
Why use XML Catalog
XML Catalogs are
used to make the XML setup more flexible and portable. Using
XML Catalogs, you can:
- Map from the logical names such as the public identifiers. The
public identifier is safer and more stable to use to locate
a specific file than the system identifier. Even if the
physical location of the resource changes, you only need
to make revision accordingly on the public identifier within
- Move documents without changing references. If a document uses
another resource, and the location of the document changes, the Public
ID remains valid and the content is still valid.
- Establish a local cache mechanism to locate the files associated
with public identifiers or remote resources. With this mechanism
the delay that occurs when locating remote resources can
An XML Catalog Example
an example of a XML Catalog file.
Example 1. An XML
Catalog File: catalog-dita.xml.
<?xml version="1.0" ?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
<!-- Catalog for DITA -->
<!-- DITA DTDs -->
<public publicId="-//IBM//DTD DITA Concept//EN" uri="concept.dtd"/>
<public publicId="-//IBM//ELEMENTS DITA Concept//EN" uri="concept.mod"/>
- The catalog element contains all other entries, and also
includes a catalog namespace identifier. The attribute
of prefer is set to public, which means
that the public identifiers are used to resolve the catalog
before using the system identifiers.
- The group element is simply a wrapper element where the attributes
such as xml:base are set. These attributes apply
to all entries that are within the group content. The xml:base
attribute sets the main pathname prefix that all URIs are
located relative to; so, in the example above, concept.dtd will
be found in the dtd/ directory (relative to the
location of the catalog).