<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html">
  <style type="text/css"></style>
<!--
TD {font-family: Verdana,Arial,Helvetica}
BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
  </style>
-->
  <title>XML resources publication guidelines</title>
</head>

<body bgcolor="#fffacd" text="#000000">
<h1 align="center">XML resources publication guidelines</h1>

<p></p>

<p>The goal of this document is to provide a set of guidelines and tips
helping the publication and deployment of <a
href="http://www.w3.org/XML/">XML</a> resources for the <a
href="http://www.gnome.org/">GNOME project</a>. However it is not tied to
GNOME and might be helpful more generally. I welcome <a
href="mailto:veillard@redhat.com">feedback</a> on this document.</p>

<p>The intended audience is the software developers who started using XML
for some of the resources of their project, as a storage format, for data
exchange, checking or transformations. There have been an increasing number
of new XML formats defined, but not all steps have been taken, possibly because of
lack of documentation, to truly gain all the benefits of the use of XML.
These guidelines hope to improve the matter and provide a better overview of
the overall XML processing and associated steps needed to deploy it
successfully:</p>

<p>Table of contents:</p>
<ol>
  <li><a href="#Design">Design guidelines</a></li>
  <li><a href="#Canonical">Canonical URL</a></li>
  <li><a href="#Catalog">Catalog setup</a></li>
  <li><a href="#Package">Package integration</a></li>
</ol>

<h2><a name="Design">Design guidelines</a></h2>

<p>This part intends to focus on the format itself of XML. It may  arrive
a bit too late since the structure of the document may already be cast in
existing and deployed code. Still, here are a few rules which might be helpful
when designing a new XML vocabulary or making the revision of an existing
format:</p>

<h3>Reuse existing formats:</h3>

<p>This may sounds a bit simplistic, but before designing your own format,
try to lookup existing XML vocabularies on similar data. Ideally this allows
you to reuse them, in which case a lot of the existing tools like DTD, schemas
and stylesheets may already be available. If you are looking at a
documentation format, <a href="http://www.docbook.org/">DocBook</a> should
handle your needs. If reuse is not possible because some semantic or use case
aspects are too different this will be helpful avoiding design errors like
targeting the vocabulary to the wrong abstraction level. In this format
design phase try to be synthetic and be sure to express the real content of
your data and use the XML structure to express the semantic and context of
those data.</p>

<h3>DTD rules:</h3>

<p>Building a DTD (Document Type Definition) or a Schema describing the
structure allowed by instances is the core of the design process of the
vocabulary. Here are a few tips:</p>
<ul>
  <li>use significant words for the element and attributes names.</li>
  <li>do not use attributes for general textual content, attributes
    will be modified by the parser before reaching the application,
    spaces and line information will be modified.</li>
  <li>use single elements for every string that might be subject to
    localization. The canonical way to localize XML content is to use
    siblings element carrying different xml:lang attributes like in the
    following:
    <pre>&lt;welcome&gt;
  &lt;msg xml:lang="en"&gt;hello&lt;/msg&gt;
  &lt;msg xml:lang="fr"&gt;bonjour&lt;/msg&gt;
&lt;/welcome&gt;</pre>
  </li>
  <li>use attributes to refine the content of an element but avoid them for
    more complex tasks, attribute parsing is not cheaper than an element and
    it is far easier to make an element content more complex while attribute
    will have to remain very simple.</li>
</ul>

<h3>Versioning:</h3>

<p>As part of the design, make sure the structure you define will be usable
for future extension that you may not consider for the current version. There
are two parts to this:</p>
<ul>
  <li>Make sure the instance contains a version number which will allow to
    make backward compatibility easy. Something as simple as having a
    <code>version="1.0"</code> on the root document of the instance is
    sufficient.</li>
  <li>While designing the code doing the analysis of the data provided by the
    XML parser, make sure you can work with unknown versions, generate a UI
    warning and process only the tags recognized by your version but keep in
    mind that you should not break on unknown elements if the version
    attribute was not in the recognized set.</li>
</ul>

<h3>Other design parts:</h3>

<p>While defining you vocabulary, try to think in term of other usage of your
data, for example how using XSLT stylesheets could be used to make an HTML
view of your data, or to convert it into a different format. Checking XML
Schemas and looking at defining an XML Schema with a more complete
validation and datatyping of your data structures is important, this helps
avoiding some mistakes in the design phase.</p>

<h3>Namespace:</h3>

<p>If you expect your XML vocabulary to be used or recognized outside of your
application (for example binding a specific processing from a graphic shell
like Nautilus to an instance of your data) then you should really define an <a
href="http://www.w3.org/TR/REC-xml-names/">XML namespace</a> for your
vocabulary. A namespace name is an URL (absolute URI more precisely). It is
generally recommended to anchor it as an HTTP resource to a server associated
with the software project. See the next section about this. In practice this
will mean that XML parsers will not handle your element names as-is but as a
couple based on the namespace name and the element name. This allows it to
recognize and disambiguate processing. Unicity of the namespace name can be
for the most part guaranteed by the use of the DNS registry. Namespace can
also be used to carry versioning information like:</p>

<p><code>"http://www.gnome.org/project/projectname/1.0/"</code></p>

<p>An easy way to use them is to make them the default namespace on the
root element of the XML instance like:</p>
<pre>&lt;structure xmlns="http://www.gnome.org/project/projectname/1.0/"&gt;
  &lt;data&gt;
  ...
  &lt;/data&gt;
&lt;/structure&gt;</pre>

<p>In that document, structure and all descendant elements like data are in
the given namespace.</p>

<h2><a name="Canonical">Canonical URL</a></h2>

<p>As seen in the previous namespace section, while XML processing is not
tied to the Web there is a natural synergy between both. XML was designed to
be available on the Web, and keeping the infrastructure that way helps
deploying the XML resources. The core of this issue is the notion of
"Canonical URL" of an XML resource. The resource can be an XML document, a
DTD, a stylesheet, a schema, or even non-XML data associated with an XML
resource, the canonical URL is the URL where the "master" copy of that
resource is expected to be present on the Web. Usually when processing XML a
copy of the resource will be present on the local disk, maybe in
/usr/share/xml or /usr/share/sgml maybe in /opt or even on C:\projectname\
(horror !). The key point is that the way to name that resource should be
independent of the actual place where it resides on disk if it is available,
and the fact that the processing will still work if there is no local copy
(and that the machine where the processing is connected to the Internet).</p>

<p>What this really means is that one should never use the local name of a
resource to reference it but always use the canonical URL. For example in a
DocBook instance the following should not be used:</p>
<pre>&lt;!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"<br>


                         "/usr/share/xml/docbook/4.2/docbookx.dtd"&gt;</pre>

<p>But always reference the canonical URL for the DTD:</p>
<pre>&lt;!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"<br>


                         "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"&gt;   </pre>

<p>Similarly, the document instance may reference the <a
href="http://www.w3.org/TR/xslt">XSLT</a> stylesheets needed to process it to
generate HTML, and the canonical URL should be used:</p>
<pre>&lt;?xml-stylesheet
  href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"
  type="text/xsl"?&gt;</pre>

<p>Defining the canonical URL for the resources needed should obey a few
simple rules similar to those used to design namespace names:</p>
<ul>
  <li>use a DNS name you know is associated to the project and will be
    available on the long term</li>
  <li>within that server space, reserve the right to the subtree where you
    intend to keep those data</li>
  <li>version the URL so that multiple concurrent versions of the resources
    can be hosted simultaneously</li>
</ul>

<h2><a name="Catalog">Catalog setup</a></h2>

<h3>How catalogs work:</h3>

<p>The catalogs are the technical mechanism which allow the XML processing
tools to use a local copy of the resources if it is available even if the
instance document references the canonical URL. <a
href="http://www.oasis-open.org/committees/entity/">XML Catalogs</a> are
anchored in the root catalog (usually <code>/etc/xml/catalog</code> or
defined by the user). They are a tree of XML documents defining the mappings
between the canonical naming space and the local installed ones, this can be
seen as a static cache structure.</p>

<p>When the XML processor is asked to process a resource it will
automatically test for a locally available version in the catalog, starting
from the root catalog, and possibly fetching sub-catalog resources until it
finds that the catalog has that resource or not. If not the default
processing of fetching the resource from the Web is done, allowing in most
case to recover from a catalog miss. The key point is that the document
instances are totally independent of the availability of a catalog or from
the actual place where the local resource they reference may be installed.
This greatly improves the management of the documents in the long run, making
them independent of the platform or toolchain used to process them. The
figure below tries to express that  mechanism:<img src="catalog.gif"
alt="Picture describing the catalog "></p>

<h3>Usual catalog setup:</h3>

<p>Usually catalogs for a project are setup as a 2 level hierarchical cache,
the root catalog containing only "delegates" indicating a separate subcatalog
dedicated to the project. The goal is to keep the root catalog clean and
simplify the maintenance of the catalog by using separate catalogs per
project. For example when creating a catalog for the <a
href="http://www.w3.org/TR/xhtml1">XHTML1</a> DTDs, only 3 items are added to
the root catalog:</p>
<pre>  &lt;delegatePublic publicIdStartString="-//W3C//DTD XHTML 1.0"
                  catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/&gt;
  &lt;delegateSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD"
                  catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/&gt;
  &lt;delegateURI uriStartString="http://www.w3.org/TR/xhtml1/DTD"
                  catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/&gt;</pre>

<p>They are all "delegates" meaning that if the catalog system is asked to
resolve a reference corresponding to them, it has to lookup a sub catalog.
Here the subcatalog was installed as
<code>/usr/share/sgml/xhtml1/xmlcatalog</code> in the local tree. That
decision is left to the sysadmin or the packager for that system and may
obey different rules, but the actual place on the filesystem (or on a
resource cache on the local network) will not influence the processing as
long as it is available. The first rule indicate that if the reference uses a
PUBLIC identifier beginning with the</p>

<p><code>"-//W3C//DTD XHTML 1.0"</code></p>

<p>substring, then the catalog lookup should be limited to the specific given
lookup catalog. Similarly the second and third entries indicate those
delegation rules for SYSTEM, DOCTYPE or normal URI references when the URL
starts with the <code>"http://www.w3.org/TR/xhtml1/DTD"</code> substring
which indicates the location on the W3C server where the XHTML1 resources are
stored. Those are the beginning of all Canonical URLs for XHTML1 resources.
Those three rules are sufficient in practice to capture all references to XHTML1
resources and direct the processing tools to the right subcatalog.</p>

<h3>A subcatalog example:</h3>

<p>Here is the complete subcatalog used for XHTML1:</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
          "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;
&lt;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"&gt;
  &lt;public publicId="-//W3C//DTD XHTML 1.0 Strict//EN"
          uri="xhtml1-20020801/DTD/xhtml1-strict.dtd"/&gt;
  &lt;public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
          uri="xhtml1-20020801/DTD/xhtml1-transitional.dtd"/&gt;
  &lt;public publicId="-//W3C//DTD XHTML 1.0 Frameset//EN"
          uri="xhtml1-20020801/DTD/xhtml1-frameset.dtd"/&gt;
  &lt;rewriteSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD"
          rewritePrefix="xhtml1-20020801/DTD"/&gt;
  &lt;rewriteURI uriStartString="http://www.w3.org/TR/xhtml1/DTD"
          rewritePrefix="xhtml1-20020801/DTD"/&gt;
&lt;/catalog&gt;</pre>

<p>There are a few things to notice:</p>
<ul>
  <li>this is an XML resource, it points to the DTD using Canonical URLs, the
    root element defines a namespace (but based on an URN not an HTTP
  URL).</li>
  <li>it contains 5 rules, the 3 first ones are direct mapping for the 3
    PUBLIC identifiers defined by the XHTML1 specification and associating
    them with the local resource containing the DTD, the 2 last ones are
    rewrite rules allowing to build the local filename for any URL based on
    "http://www.w3.org/TR/xhtml1/DTD", the local cache simplifies the rules by
    keeping the same structure as the on-line server at the Canonical URL</li>
  <li>the local resources are designated using URI references (the uri or
    rewritePrefix attributes), the base being the containing sub-catalog URL,
    which means that in practice the copy of the XHTML1 strict DTD is stored
    locally in
    <code>/usr/share/sgml/xhtml1/xmlcatalog/xhtml1-20020801/DTD/xhtml1-strict.dtd</code></li>
</ul>

<p>Those 5 rules are sufficient to cover all references to the resources held
at the Canonical URL for the XHTML1 DTDs.</p>

<h2><a name="Package">Package integration</a></h2>

<p>Creating and removing catalogs should be handled as part of the process of
(un)installing the local copy of the resources. The catalog files being XML
resources should be processed with XML based tools to avoid problems with the
generated files, the xmlcatalog command coming with libxml2 allows you to create
catalogs, and add or remove rules at that time. Here is a complete example
coming from the RPM for the XHTML1 DTDs post install script. While this example
is platform and packaging specific, this can be useful as a an example in
other contexts:</p>
<pre>%post
CATALOG=/usr/share/sgml/xhtml1/xmlcatalog
#
# Register it in the super catalog with the appropriate delegates
#
ROOTCATALOG=/etc/xml/catalog

if [ ! -r $ROOTCATALOG ]
then
    /usr/bin/xmlcatalog --noout --create $ROOTCATALOG
fi

if [ -w $ROOTCATALOG ]
then
        /usr/bin/xmlcatalog --noout --add "delegatePublic" \
                "-//W3C//DTD XHTML 1.0" \
                "file://$CATALOG" $ROOTCATALOG
        /usr/bin/xmlcatalog --noout --add "delegateSystem" \
                "http://www.w3.org/TR/xhtml1/DTD" \
                "file://$CATALOG" $ROOTCATALOG
        /usr/bin/xmlcatalog --noout --add "delegateURI" \
                "http://www.w3.org/TR/xhtml1/DTD" \
                "file://$CATALOG" $ROOTCATALOG
fi</pre>

<p>The XHTML1 subcatalog is not created on-the-fly in that case, it is
installed as part of the files of the packages. So the only work needed is to
make sure the root catalog exists and register the delegate rules.</p>

<p>Similarly, the script for the post-uninstall just remove the rules from the
catalog:</p>
<pre>%postun
#
# On removal, unregister the xmlcatalog from the supercatalog
#
if [ "$1" = 0 ]; then
    CATALOG=/usr/share/sgml/xhtml1/xmlcatalog
    ROOTCATALOG=/etc/xml/catalog

    if [ -w $ROOTCATALOG ]
    then
            /usr/bin/xmlcatalog --noout --del \
                    "-//W3C//DTD XHTML 1.0" $ROOTCATALOG
            /usr/bin/xmlcatalog --noout --del \
                    "http://www.w3.org/TR/xhtml1/DTD" $ROOTCATALOG
            /usr/bin/xmlcatalog --noout --del \
                    "http://www.w3.org/TR/xhtml1/DTD" $ROOTCATALOG
    fi
fi</pre>

<p>Note the test against $1, this is needed to not remove the delegate rules
in case of upgrade of the package.</p>

<p>Following the set of guidelines and tips provided in this document should
help deploy the XML resources in the GNOME framework without much pain and
ensure a smooth evolution of the resource and instances.</p>

<p><a href="mailto:veillard@redhat.com">Daniel Veillard</a></p>

<p>$Id$</p>

<p></p>
</body>
</html>
