5. Server per XML DocBook 4.1.2

Ci sono tre modi per utilizzare l'XML DocBook 4.1.2 su un server web:

Usare un server per applicazioni come Cocoon è la scelta migliore.

NotaCocoon in azione
 

Per vedere un esempio di web server su cui girano Tomcat + Cocoon che agiscono da server di contenuti per XML DocBook 4.1.2, si può visitare il sito http://www.xml-dev.com:8080/cocoon/mount/docbook/.

In questa sezione vedremo l'utilizzo di Tomcat + Cocoon come server di contenuti per documenti XML DocBook 4.1.2.

5.1. Tomcat + Cocoon

Tomcat è il Java Servlet Container. Per ulteriori informazioni si visiti il sito http://jakarta.apache.org/tomcat/index.html.

Apache Cocoon è un ambiente per la pubblicazione di documenti XML. Per ulteriori informazioni si visiti il sito http://xml.apache.org/cocoon/index.html.

Questo HOWTO non entrerà nei dettagli sulla configurazione di Tomcat + Cocoon, poiché questa problematica è illustrata in http://xml.apache.org/cocoon/installing/index.html. Configurare Tomcat + Cocoon è una facile procedura, che dovrebbe richiedere meno di cinque minuti.

Una volta che si abbiano Cocoon + Tomcat configurati ed operativi, si passi alla sezione seguente, relativa al server di documenti XML DocBook 4.1.2.

Nota

Un importante avviso: gli utenti del settore hanno riscontrato problemi di compatibilità utilizzando i fogli di stile DocBook con alcune versioni del parser XML Xalan. Xalan è il parser fornito col JRE (Java Runtime Environment) di Sun, ed è quindi quello utilizzato in maniera predefinita.

Ci si assicuri, come minimo, di utilizzare l'ultima versione di JRE di Sun (al momento della stesura di questo documento è la 1.4.2).

Si consideri anche l'opportunità di aggiornare il parser Xalan all'ultima versione. Al momento, con l'ultima JRE di Sun, la 1.4.2, è fornito Xalan 2.4.1, mentre lo stesso Xalan è giunto alla versione 2.5.1.

Per controllare la versione di Xalan installata, si esegua:

 # java org.apache.xalan.xslt.EnvironmentCheck

Per ulteriori informazioni, si visiti il sito http://xml.apache.org/xalan-j/faq.html.

5.2. Installazione dei fogli di stile XSL di Norman Walsh

In questa fase verranno installati i fogli di stile XSL di Norman Walsh nella directory /usr/local/dbtools/.

Cambiare la directory corrente in /tmp/downloads e decomprimere il file docbook-xsl.

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

Per installare docbook-xsl, occorre spostare i file in /usr/local/dbtools.

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

Quindi si installino gli XSL di LDP.

5.3. Installazione dei fogli di stile XSL di LDP

Decomprimere il file tldp-xsl-xxxxx.tar.gz e copiare tutti i file nella directory /usr/local/dbtools/docbook-xsl/html.

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

5.4. Configurazione di sitemap.xmap

$COCOON_HOME punta alla directory delle applicazioni web di Cocoon (Cocoon Web Application Directory). Questa directory è solitamente /usr/local/jakarta-tomcat-4.1.9/webapps/cocoon/.

Si crei una directory dal nome docbook all'interno di $COCOON_HOME/mount. Qui è dove si collocheranno tutti i propri documenti XML DocBook 4.1.2.

# mkdir $COCOON_HOME/mount/docbook

Creare un file dal nome sitemap.xmap nella directory $COCOON_HOME/mount/docbook con il seguente contenuto:

# cd $COCOON_HOME/mount/docbook
# vi sitemap.xmap

<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">

    <!-- usare i componenti convenzionali -->
    <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>

            <!-- rispondere alle richeste *.html con
                 i propri documenti processati da .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>

            <!-- successivamente, rispondere a richieste *.pdf con
                 i propri documenti processati da 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. Accedere a contenuti XML DocBook 4.1.2 da un browser web

Collocare un file XML DocBook 4.1.2 nella directory $COCOON_HOME/mount/docbook/.

Un file di esempio è disponibile sul sito http://www.xml-dev.com:8080/cocoon/mount/docbook/openjade.xml.

Ora è possibile accedere al documento, utilizzando un browser, all'indirizzo http://localhost:8080/cocoon/mount/sample.html (HTML) o http://localhost:8080/cocoon/mount/sample.pdf (PDF).