XML Catalog Policy Draft 2
This post proposes a model for the centralized Package Catalogs,
i.e. /etc/xml/$package.xcat.
For reference, I provide the catalog jargon again...
Terminology: Root Catalog: /etc/xml/xcatalog
============ -------------
Package Catalogs: /etc/xml/$package.xcat
-----------------
Local Catalogs: /usr/share/xml/DTD-DIR/catalog.xml
---------------
Package Catalog Implementation Issues
=====================================
Package Catalogs (/etc/xml/$package.xcat)
------------
Purpose:
The primary roles of the Package Catalogs are
a. to delegate entity searches to the appropriate Local Catalogs
(/usr/share/xml/$dtd-dir/catalog.xml), based on FPI and SYSID fragments,
b. to rewrite SYSTEM identifier prefixes so that, say, web-based urls are
mapped to local filenames, and
c. to define and map abbreviations for often-used stylesheet files to
filenames on the local filesystem. (e.g. db-chunk.xsl)
As such, Package Catalogs should only contain "delegate*" or "rewrite*"
elements.
Note: delegate* elements are used to point to the Local Catalogs, whereas
"rewrite*" elements are used when no catalogs are available - as in the case
with most xsl stylesheets. Here are the relevant elements:
- delegatePublic,
- delegateSystem,
- delegateURI
- rewriteSystem,
- rewriteURI
[*Again, I'm not clear when to use "delegate(rewrite)System" as opposed to
"delegate(rewrite)URI" elements; will have to as Norm about this...]
Note also that e.g. rewriteSystem elements could be used to point directly
to the DTD, but doing so would seem to render the DTD catalog pointless. But
for the case of a single-file dtd this may make the most sense.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- BEGIN Package Catalog example: /etc/xml/xml-core.xcat --
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<!-- xml catalog for xml-core: points to OASIS XML Catalog DTD catalog -->
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<!-- Instead, could point directly to /usr/share/xml/dtd/oasis/catalog.dtd -->
<!-- via a public, rewritePublic, system, or rewriteSystem element -->
<delegatePublic publicIdStartString="-//OASIS//DTD XML Catalogs"
catalog="file:///usr/share/xml/dtd/oasis/catalog.xml"/>
<!-- For backward compatibility with old FPI -->
<delegatePublic publicIdStartString="-//OASIS//DTD Entity Resolution"
catalog="file:///usr/share/xml/dtd/oasis/catalog.xml"/>
<delegateSystem systemIdStartString="http://www.oasis-open.org/committees/entity/"
catalog="file:///usr/share/xml/dtd/oasis/catalog.xml"/>
</catalog>
-- END Package Catalog example: /etc/xml/xml-core.xcat --
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- BEGIN docbook-xml Package Catalog example: /etc/xml/docbook-xml.xcat --
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<!-- ==== Package Catalog for docbook-xml ==== -->
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<!-- docbook-xml V4.x -->
<!-- This works because the LONGEST match wins -->
<!-- 'ls -l /usr/share/sgml/docbook/dtd/xml/' will clarify this catalog -->
<!-- For versions 4, 4.1, and 4.1.2 -->
<delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML V4"
catalog="file:///usr/share/xml/docbook/dtd/4.1.2/catalog.xml"/>
<delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4"
catalog="file:///usr/share/xml/docbook/dtd/4.1.2/catalog.xml"/>
<!-- For version 4.0 only -->
<delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML V4.0"
catalog="file:///usr/share/xml/docbook/dtd/4.0/catalog.xml"/>
<delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.0"
catalog="file:///usr/share/xml/docbook/dtd/4.0/catalog.xml"/>
<!-- For version 4.2 only -->
<delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML V4.2/"
catalog="file:///usr/share/xml/docbook/dtd/4.2/catalog.xml"/>
<delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.2/"
catalog="file:///usr/share/xml/docbook/dtd/4.2/catalog.xml"/>
<!-- docbook-xml V3.x -->
<delegatePublic publicIdStartString="-//Norman Walsh//DTD DocBk XML V3"
catalog="file:///usr/share/xml/docbook/dtd/3.1.7/catalog.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//DTD DocBook XML V3"
catalog="file:///usr/share/xml/docbook/dtd/3.1.7/catalog.xml"/>
<delegateSystem systemIdStartString="http://www.nwalsh.com/docbook/xml/3"
catalog="file:///usr/share/xml/docbook/dtd/3.1.7/catalog.xml"/>
</catalog>
-- END docbook-xml Package Catalog example: /etc/xml/docbook-xml.xcat --
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- BEGIN docbook-xsl Package Catalog example: /etc/xml/docbook-xsl.xcat --
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<!-- ==== Package Catalog for docbook-xsl ==== -->
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteSystem
systemIdStartString="http://docbook.sourceforge.net/release/xsl/current"
rewritePrefix="file:///usr/share/xml/docbook/stylesheet/nwalsh"/>
<rewriteSystem
systemIdStartString="http://docbook.sourceforge.net/release/xsl/1"
rewritePrefix="file:///usr/share/xml/docbook/stylesheet/nwalsh"/>
<!-- stylesheet abbreviation examples -->
<rewriteSystem
systemIdStartString="db-chunk.xsl"
rewritePrefix="file:///usr/share/xml/docbook/stylesheet/nwalsh/html/chunk.xsl"/>
<rewriteSystem
systemIdStartString="db-fo.xsl"
rewritePrefix="file:///usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl"/>
<rewriteSystem
systemIdStartString="db-htmlhelp.xsl"
rewritePrefix="file:///usr/share/xml/docbook/stylesheet/nwalsh/htmlhelp/htmlhelp.xsl"/>
</catalog>
-- END docbook-xsl Package Catalog example: /etc/xml/docbook-xsl.xcat --
More to come...
Cheers,
Mark
--
_____________________________________
Mark Johnson <mark@duke.edu>
Debian XML/SGML <mrj@debian.org>
Home Page: <http://dulug.duke.edu/~mark/>
GPG fp: 50DF A22D 5119 3485 E9E4 89B2 BCBC B2C8 2BE2 FE81
Reply to: