DocBook/SGML : des outils pour l'édition technique - échantillon



Voici un extrait d'un article écrit en SGML. Cet extrait aurait tout aussi bien pu être sorti d'un source en XML. En fait, à quelques différences mineures près, les deux langages sont compatibles [1]

Pour ceux qui ont déjà écrit ou lu du langage HTML, ce langage a des airs de famille, et pour cause... Ce sont des langages dans la veine de SGML. Ces langages sont dits la à balise ; en effet, l'information sémantique du document est spécifiée au moyen de texte inséré entre des signes < et >.

On remarque rapidement que des balises de même nom se font echo, avec la balise de fin commençant par un signe </. Par exemple la balise </sect1> en fin de texte fait echo à la balise <sect1 id="traduction"> en début d'exemple. En fait, cela défini un entité sect1 (section de niveau 1) qui contient toutes les autres entités ; en même temps on a défini la portée de cette entité.

On remarque aussi que les inclusions doivent être strictes. C'est logique : par exemple, on ne peut pas trouver un paragraphe (balise <para>) à cheval sur deux chapitres ! Par contre, il n'est pas interdit (et même conseillé) d'inclure plusieurs entités dans une même entité parent. Un document est donc une série d'entités incluses les unes dans les autres.

Ces entités peuvent être paramètrées au moyen d'attributs embarqués dans la balise ouvrante. Cf. l'attribut id dans la balise sect1, qui permet de donner un référence à cette entité pour une future référence.

Cette syntaxe du langage est la marque de XML et SGML. Ce qui fait la spécificité de DocBook, ce sont les noms des balises autorisées et les imbrications tolérées. Par exemple, Docbook définit des entités sect1 (section de niveau 1) et sect2(section de niveau 2) qui sont utilisables dans une document SGML, à la condition que la section de niveau 2 n'apparaisse que dans une section de niveau 1. Cela permet de garantir la cohérence interne du document. Pour ne pas utiliser les balises à tort, DocBook définit aussi la signification sémantique d'une balise : on n'utilise pas une entité "section de niveau 3" pour mettre en évidence un texte, mais bien pour démarrer une subdivision d'une entité "section de niveau 2".

DocBook étant un langage orienté vers la documentation informatique, les balises techniques se référant à des fonctions, des lignes de commandes ou même des raccourcis au clavier cotoient les balises plus générales de structuration du document.

Un document écrit avec le standard DocBook doit s'y conformer en tous points si on veut espérer pouvoir le traiter avec les outils de transformation vers les formats finaux.


Auteur : Jean-Noël Avila - créé avec KPresenter

[1] Ces différences sont les suivantes :

En pratique et pour une bonne facilité d'édition, ces limitations d'XML sont appliquées aussi au documents rédigés en SGML.