Table des matières
DocBook est surtout utilisé pour produire de la documentation technique dans les domaines de l’informatique, des télécommunications et des technologies de l’information qu’il vise. Comme il permet de séparer le contenu du document de sa présentation et qu’il s’agit d’un format libre et largement documenté, il garantit des documents pérennes. Il est particulièrement adapté au travail partagé de plusieurs auteurs ainsi qu’aux collections importantes de documents devant être mises à jour ou réorganisées fréquemment.
DocBook se veut être un format permettant la rédaction de documents de manière structurée.
Par structuré on entend que chaque élément est très clairement identifié :
par leur nom de balise
par leur attributs
par leur relation avec les autres éléments
Cette structuration permet d'avoir un format robuste, claire et introduit de la valeur ajoutée grace à toutes les meta-données qu'on peut introduire. Mais elle a aussi un coût, DocBook comporte plus de 400 éléments XML différents.
DocBook autorise en gain de productivité car la rédaction n'est faite qu'une seule fois et indépendament des supports cibles car les parties contenu et présentation sont séparées.
Ce document étant lui même réalisé en DocBook, il sera donc disponible sous plusieurs formats mais la rédaction à été unique.
La distribution de base fournit les transformations pour les supports suivants : PDF (via xsl-fo), PS (via xsl-fo), (X)HTML, HTML help, Java help et Eclipse help.
On peut aussi trouver d'autre transformations telles que : WordML, OpenDocument, ...
On peut noter que les fichiers sources DocBook, étant donné leur nature XML, peuvent être issue de transformations à partir de OpenOffice, Word, ...
La modularité de DocBook est aussi un atout très appréciable, elle se présente sous deux formes :
La premère forme de modularité se trouve au niveau des sources elles mêmes avec la possibilité de réaliser des inclusions (locales ou distantes) d'autres sources. L'inclusion peut principalement s'effectuer de deux manières différentes : XML et XInclude.
La suite d'exemples suivants présentent la manière XML :
Exemple 8. Document incluant
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [ <!ENTITY chap1 SYSTEM "Chap_Priorites_Developpement.xml"> <!ENTITY chap2 SYSTEM "use_case.xml"> <!ENTITY chap3 SYSTEM "Chap_packages.xml"> ... <book lang="fr"> <title>Cahier Des Charges Fonctionnel</title> &chap1; &chap2; &chap3; ... </book>
Exemple 9. Document inclu
<?xml version="1.0" encoding="UTF-8"?> <chapter> <title>Les priorités de développement</title> ... </chapter>
Ici, on a utilisé la fonctionnalité interne d'XML qui est la définition d'une entité système pointant sur le fichier à inclure. Ce procédé est pratique pour des exemples simples mais devient très compliqué lorsqu'il y a beaucoup d'inclusions à faire ou lorsqu'il y a des inclusions multiples.
La suite d'exemples suivants présentent la manière XInclude :
Exemple 10. Document incluant
<?xml version="1.0" encoding="UTF-8"?> <book lang="fr" xmlns:xi="http://www.w3.org/2001/XInclude"> <title>Cahier Des Charges Fonctionnel</title> ... <xi:include href="Chapter_001_introduction_cdc.xml"/> <xi:include href="Chapter_002_glossaire.xml"/> ... </book>
Exemple 11. Document inclu
<?xml version="1.0" encoding="UTF-8"?> <chapter> <title>Introduction</title> ... </chapter>
Ici, on a utilisé le programme XInclude afin de réaliser les inclusions. Il faudra donc avoir un parser XML, ou un programme, gérant XInclude. XInclude est beaucoup plus maniable car les inclusions peuvent se faire où on en a besoin et gère les chemins relatifs. Il permet aussi la selection de la partie à inclure par l'intermédiaire d'une requête XQuery (similaire au format de XPath).
La seconde forme de modularité se trouve au niveau de la grammaire. Elle peut être diminuée ou étendue pour répondre au problématiques métiers.
On prendra ici l'exemple de Slides qui est une dérivation de DocBook pour la l'écriture de présentations sous forme de diaposives. Cette dérivation rajoute principalement les éléments suivants (liste incomplète) :
... <!ELEMENT slides (slidesinfo, speakernotes?, foil*, foilgroup*)> <!ATTLIST slides %label.attrib; %status.attrib; %common.attrib; %role.attrib; > <!ELEMENT slidesinfo ((mediaobject | legalnotice | subjectset | keywordset | %bibliocomponent.mix;)+)> <!ATTLIST slidesinfo %common.attrib; %role.attrib; > <!ELEMENT foilgroup (foilgroupinfo?, title, subtitle?, titleabbrev?, (%divcomponent.mix;)*, foil+)> <!ATTLIST foilgroup %label.attrib; %status.attrib; %common.attrib; %role.attrib; > <!ELEMENT foilgroupinfo ((mediaobject | legalnotice | subjectset | keywordset | %bibliocomponent.mix;)+)> <!ATTLIST foilgroupinfo %common.attrib; %role.attrib; > <!ELEMENT foil (foilinfo?, title, subtitle?, titleabbrev?, (%divcomponent.mix;)+)> <!ATTLIST foil %label.attrib; %status.attrib; %common.attrib; %role.attrib; > <!ELEMENT foilinfo ((mediaobject | legalnotice | subjectset | keywordset | %bibliocomponent.mix;)+)> <!ATTLIST foilinfo %common.attrib; %role.attrib; > <!ELEMENT speakernotes (%divcomponent.mix;)*> <!ATTLIST speakernotes %common.attrib; %role.attrib; ...
On est donc façe à une augmentation de la grammaire avec l'apparition de nouveaux éléments pour l'écriture de diapositives.
La modularité permet le travaille collaboratif et simultané car chacun peut éditer une seule section et on réaliser le document final par une inclusion de toutes les sections.
Au tableau des bénéfices introduits par DocBook on peut siter les suivants :
Le format de type texte assure la robustesse de la source.
Le format de type texte assure sa lecture sur n'importe quelle machine.
Le format de type texte autorise le travail collaboratif.
Le format de type xml et ses dialiectes assure son traitement sur la plus part des machines.
Le format de type xml permet son traitement par d'autres applications.
Le format de type xml permet la modularité et la résutilisation.
N'utilise que des standards.
Gain de temps avec la rédaction unique.
Séparation du travail avec les graphistes (aussi appelés programmeurs) qui ne s'attachent qu'à la présentation d'un format de sortie particulier et avec les rédacteurs qui ne s'attachent qu'au contenu et sa signification.
Lors de l'utilisation de DocBook, on se rend très vite compte des difficultés suivantes :
L'écriture de documentation sans un éditeur XML est hardue afin de respecter la DTD.
Il faut connaître un minimum toutes la balises afin de pouvoir les utiliser au bon endroit.
L'écriture ou la réutilisation de feuille de transformation n'est pas une chose si simple que ca.
Beaucoup de technologies à connaître si on veut être à la fois rédacteur et graphiste.