[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: