Exposé système - DocBook

Table des matières

Historique
Les technologies
XSLT
XSL-FO
XPath
MathML
DocBook
DocBook : strucurée
DocBook : multi supports
Modulaire
Rappel des bénéfices
Rappel des difficultés
Step in
Elements de hiérarchie
Elements d'information
Exemples
Outils d'édition
XMLmind XML Editor
Conclusion
Ressources
Téléchargements
Liens

Step in

Elements de hiérarchie

Ce sont les éléments qui servent à la structuration du document. Voici les principaux éléments :

  • Set et Book

  • Part et Reference

  • Preface, Chapter, Appendix, Bibliography, Glossary, Index

  • Article

  • Section

Les trois éléments pouvant débuter une documentation au format DocBook sont Set (collection de livres), Book (livre composé de chapitres comme sous parties) et Article (article composé de sections comme sous parties).

Elements d'information

Ce sont les éléments qui servent à donner de la signification au texte. Voici les principaux éléments :

  • Lists (ordered, itemized, ...)

  • Admonitions (caution, warning, note, ...)

  • Verbatim (programlisting, screen, ...)

  • Example, figure, and table...

  • Graphics (Mediaobject) ...

  • Inlines (link, user interfaces, programming, ...)

Exemples

Voici l'exemple d'un livre DocBook vide :

Exemple 12. Livre vide

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
  "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book>
  <title></title>
  <chapter>
    <title></title>
    <section>
      <title></title>
      <para></para>
    </section>
  </chapter>
</book>

Voici l'exemple d'une présentation Slides vide :

Exemple 13. Présentation vide

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE slides PUBLIC "-//Norman Walsh//DTD Slides XML V3.3.0//EN"
"http://docbook.sourceforge.net/release/slides/3.3.0/schema/dtd/slides.dtd">
<slides>
  <slidesinfo>
    <title></title>
  </slidesinfo>

  <foilgroup>
    <title></title>

    <foil>
      <title></title>

      <para></para>
    </foil>
  </foilgroup>
</slides>

La feuille de transformation suivante a été écrite pour le site web de ce document. Les principales modifications seront commentées :

Exemple 14. Feuille de stransformation

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:import href="docbook-xsl-1.69.1/xhtml/chunk.xsl"/>
  <xsl:param name="html.stylesheet" select="'Xpose.css'"/> 1
  <xsl:param name="admon.graphics" select="1"/>
  <xsl:param name="chunker.output.indent" select="'yes'"/>
  <xsl:param name="navig.showtitles" select="0"/>
  <xsl:param name="chunk.tocs.and.lots" select="1"/> 2

  <xsl:template name="user.header.navigation"> 3
    <xsl:variable name="codefile" select="document('siteweb/ar01-toc.html',/)"/>
    <xsl:copy-of select="$codefile/*/node()"/>
  </xsl:template>

  <xsl:template name="chunk-element-content"> 4
    <xsl:param name="prev"/>
    <xsl:param name="next"/>
    <xsl:param name="nav.context"/>
    <xsl:param name="content">
      <xsl:apply-imports/>
    </xsl:param>
    <xsl:call-template name="user.preroot"/>
    <xsl:choose>
      <xsl:when test="$nav.context = 'toc'"> 5
        <xsl:message>Processing toc</xsl:message>
        <html>
        <head>
        </head>
        <body>
          <xsl:copy-of select="$content"/>
        </body>
        </html>
      </xsl:when>
      <xsl:otherwise> 6
        <html>
        <xsl:call-template name="html.head">
          <xsl:with-param name="prev" select="$prev"/>
          <xsl:with-param name="next" select="$next"/>
        </xsl:call-template>
          
        <body>
          <xsl:call-template name="body.attributes"/>
          <xsl:call-template name="user.header.navigation"/>
          <xsl:call-template name="header.navigation">
            <xsl:with-param name="prev" select="$prev"/>
            <xsl:with-param name="next" select="$next"/>
            <xsl:with-param name="nav.context" select="$nav.context"/>
          </xsl:call-template>

          <xsl:call-template name="user.header.content"/>
          <xsl:copy-of select="$content"/>
          <xsl:call-template name="user.footer.content"/>

          <xsl:call-template name="footer.navigation">
            <xsl:with-param name="prev" select="$prev"/>
            <xsl:with-param name="next" select="$next"/>
            <xsl:with-param name="nav.context" select="$nav.context"/>
          </xsl:call-template>

          <xsl:call-template name="user.footer.navigation"/>
        </body>
        </html>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>   
</xsl:stylesheet>
1

Déclaration de la CSS à utiliser

2

Indique qu'on souhaite avoir la table des matières et les listes des figures, exemples, ... dans des fichiers séparés.

3

Ce template est appelé pour la génération de l'entête. Ici, il est utilisé pour inclure dans chanque entête le fichier de table des matières. La table des matières sera alors placée correctement par CSS.

Dans la suite de l'exemple on comprendra que les templates sont appelés dans l'ordre suivant dans le template chunk-element-content :

  1. user.header.navigation

  2. header.navigation

  3. user.header.content

  4. user.footer.content

  5. footer.navigation

  6. user.footer.navigation

4

Ce template est appelé pour la génération de chaque fichier.

5

On utilise cette condition pour ne pas inclure la table des matières dans l'entête de la table des matières elle même.

6

Sinon, le cas normal.

L'exemple suivant indique comment transformer le source de ce document en site web pour le compte rendu de cet exposé sur DocBook.

xsltproc -output siteweb/ customisation.xsl docbook.xml

L'exemple suivant permet de transformer ce document en documentation JavaHelp. On le fait juste à titre d'exemple car il faudrait renseigner les élements pour la génération de l'index afin d'avoir une JavaHelp utilisable :

xsltproc -output javahelp/ docbook-xsl-1.69.1/javahelp/javahelp.xsl docbook.xml