5. Publier DocBook 4.1.2 XML

Il existe trois moyens de publier DocBook 4.1.2 XML sur un serveur Internet :

La meilleure option est d'utiliser un serveur d'applications comme Cocoon.

Cocoon en action

Pour visualiser un exemple de serveur Internet publiant des contenus DocBook 4.1.2 XML avec Tomcat + Cocoon, visitez http://www.xml-dev.com:8080/cocoon/mount/docbook/.

Dans cette section, nous verrons comment publier un contenu DocBook 4.1.2 XML avec Tomcat + Cocoon.

5.1. Tomcat + Cocoon

Tomcat est le contenant de mini-serveurs Java (Java Servlet Container). Pour plus d'informations, visitez http://jakarta.apache.org/tomcat/index.html.

Apache Cocoon est une structure de publication XML. Pour plus d'informations, visitez http://xml.apache.org/cocoon/index.html.

Ce guide pratique ne détaillera pas la configuration de Tomcat + Cocoon, puisque c'est déjà fait dans le document http://wiki.cocoondev.org/Wiki.jsp?page=CocoonCompetenceCenter. Cette configuration est simple et ne prendra pas plus de cinq minutes.

Une fois Cocoon + Tomcat configurés et opérationnels, poursuivez aux sections suivantes pour publier des contenus DocBook 4.1.2 XML.

Avertissement important :

les spécialistes ont rencontré des problèmes de compatibilité avec les feuilles de styles DocBook et certaines versions de l'analyseur syntaxique XML, Xalan. En fait, Xalan est l'analyseur syntaxique fournit avec le JRE de Sun, c'est donc ce que vous utilisez par défaut.

En dernier lieu, assurez-vous d'utiliser la toute dernière version du JRE de Sun (1.4.2 à la rédaction de ce document).

De même, mettez à jour l'analyseur Xalan avec sa dernière version. Pour ma part, la dernière version 1.4.2 du JRE de Sun est fournie avec Xalan 2.4.1, alors que Xalan lui-même est déjà parvenu à la version 2.5.1.

Pour savoir quelle est la version installée actuellement :

# java org.apache.xalan.xslt.EnvironmentCheck

Pour plus d'informations, visitez http://xml.apache.org/xalan-j/faq.html.

5.2. Installation du XSL de Norman Walsh

Durant cette phase, nous installerons le XSL de Norman Walsh dans le dossier /usr/local/dbtools/.

Positionnez-vous dans le dossier /tmp/downloads, puis décompressez et dépaquetez le fichier docbook-xsl.

# cd /tmp/downloads/
# gzip -d docbook-xsl-1.53.0.tar.gz
# tar -xvf docbook-xsl-1.53.0.tar

Pour installer docbook-xsl, déplacez les fichiers dans /usr/local/dbtools.

# mv docbook-xsl-1.53.0 /usr/local/dbtool/docbook-xsl

Ensuite, installez le XSL du TLDP.

5.3. Installation du XSL du TLDP

Décompressez et dépaquetez le fichier tldp-xsl-xxxxx.tar.gz, puis copiez tous les fichiers dans le dossier /usr/local/dbtools/docbook-xsl/html.

# cd /tmp/downloads
# gzip tldp-xsl-xxxxx.tar.gz
# gzip tldp-xsl-xxxxx.tar
# mv tldp-html*.xsl /usr/local/dbtools/docbook-xsl/html

5.4. Configuration de sitemap.xmap

$COCOON_HOME pointe vers le dossier d'applications Internet de Cocoon. Ce dossier s'appelle typiquement /usr/local/jakarta-tomcat-4.1.9/webapps/cocoon/

Créez un dossier nommé docbook dans $COCOON_HOME/mount. c'est là que nous mettrons tous nos contenus DocBook XML 4.1.2.

# mkdir $COCOON_HOME/mount/docbook

Créez un fichier nommé sitemap.xmap dans $COCOON_HOME/mount/docbook avec le contenu suivant :

# cd $COCOON_HOME/mount/docbook
# vi sitemap.xmap
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">

    <!-- use the standard components -->
    <map:components>
        <map:generators default="file"/>
        <map:transformers default="xslt"/>
        <map:readers default="resource"/>
        <map:serializers default="html"/>
        <map:selectors default="browser"/>
        <map:matchers default="wildcard"/>
        <map:transformers default="xslt"/>
    </map:components>
      
    <map:pipelines>
        <map:pipeline>

   <map:match pattern="">
    <map:generate src="samples.xml"/>
    <map:transform
src="/usr/local/jakarta-tomcat-4.1.9/webapps/cocoon/mount/editor/stylesheets/simple-page2html.xsl"/>
    <map:serialize/>
   </map:match>

            <!-- répond aux requêtes *.html avec 
                 nos documents traités par .xsl -->
            <map:match pattern="*.html">
                <map:generate src="{1}.xml"/>
                <map:transform
                  src="/usr/local/dbtools/docbook-xsl/html/tldp-html.xsl"/>
                <map:serialize type="html"/>
            </map:match>
            
            <!-- ensuite, répond aux requêtes *.pdf avec 
                 nos documents traités par doc2pdf.xsl -->
            <map:match pattern="*.pdf">
                <map:generate src="{1}.xml"/>
                <map:transform
                  src="/usr/local/dbtools/docbook-xsl/fo/docbook.xsl"/>
                <map:serialize type="fo2pdf"/>
            </map:match>

            <map:match pattern="*.xml">
                <map:generate src="{1}.xml"/>
                <map:serialize type="xml"/>
            </map:match>


        </map:pipeline>
    </map:pipelines>
</map:sitemap>

5.5. Accès à un contenu DocBook 4.1.2 XML dans un navigateur Internet

Placez un fichier DocBook 4.1.2 XML dans le dossier $COCOON_HOME/mount/docbook/.

Un fichier d'exemple est disponible à http://www.xml-dev.com:8080/cocoon/mount/docbook/openjade.xml.

Maintenant, vous pouvez accéder au document à l'aide d'un navigateur à « http://localhost:8080/cocoon/mount/sample.html » (HTML) ou « http://localhost:8080/cocoon/mount/sample.pdf » (PDF).