Chapitre 3. Introduction à SGML

Table des matières
3.1. Introduction
3.2. Eléments, marques et attributs
3.3. La déclaration DOCTYPE
3.4. Revenir au SGML
3.5. Commentaires
3.6. Entités
3.7. Utiliser les entités pour inclure des fichiers
3.8. Sections marquées
3.9. Conclusion

La majorité des documentations du FDP utilisent SGML. Ce chapitre vous explique ce que cela signifie exactement, comment lire et comprendre le source de la documentation et décrit la façon d'utiliser le SGML que vous recontrerez dans la documentation.

Des parties de cette section se sont inspirées du livre de Mark Galassi, ``Get Going With DocBook''.

3.1. Introduction

Il était autrefois facile de travailler sur des documents électroniques. Vous n'aviez normalement à connaître que le jeu de caractères utilisé (ASCII, EBCDIC, ou l'un des nombreux autres) et c'était à peu près tout. Le texte était du texte, et vous voyiez vraiment ce que vous obteniez. Pas de sophistication, pas de formatage, pas d'intelligence.

Cela devint inévitablement insuffisant. Une fois que vous avez du texte qu'une machine peut lire, vous vous attendez à ce que la machine puisse l'utiliser et le manipuler intelligemment. Vous aimeriez pouvoir préciser que certaines phrases sont accentuées, y ajouter un glossaire ou des hyper-liens. Vous voulez que les noms de fichiers apparaissent en police ``machine à écrire'' à l'écran et en italique à l'impression, et tout un tas d'autres options de présentation encore.

Il fut un temps où l'on pensait que l'Intelligence Artificielle (IA) rendrait cela facile. Votre ordinateur pourrait lire le document et identifier les phrases clés, les noms de fichiers, le texte que l'utilisateur devait taper, et d'autres encore. Malheureusement, la réalité est un peu différente, et il faut aider nos ordinateurs à manipuler intelligemment notre texte.

Plus précisement, il faut les aider à indentifier ce qui est quoi. Vous et moi, à la vue de :

Pour effacer /tmp/foo, utilisez rm(1) :

% rm /tmp/foo

distinguons facilement ce qui est nom de fichier, commande à taper, référence aux pages de manuel, et ainsi de suite. Mais l'ordinateur lui ne le peut pas. Pour cela, Nous avons besoin des marques.

Le ``marquage'' est communément qualifié de ``valeur ajoutée'' ou ``coût augmenté''. Le terme prend ces deux sens quand il s'applique au texte. La marquage est du texte en supplément dans le document, distinct par un moyen ou un autre du contenu du document, de façon à ce que les programmes qui traitent le document puisse le lire et l'utiliser pour prendre des décisions. Les éditeurs peuvent masquer le marquage à l'utilisateur, de façon à ce qu'il ne soit pas perturbé par ces marques.

L'information supplémentaire donnée avec les marques ajoute de la valeur au document. Le marquage doit habituellement être manuel - après tout, si les ordinateurs pouvait analyser suffisamment le texte pour ajouter les marques, il n'y en aurait alors en fait pas besoin. Cela augment le coût du document.

L'exemple précédent est codé comme suit dans le présent document :

<para>Pour effacer <filename>/tmp/foo</filename>, utilisez
  &man.rm.1;.</para>

<para><command>rm /tmp/foo</command></para>

Comme vous pouvez le constater, le marquage est clairement séparé du contenu.

Bien évidemment, si vous devez utiliser des marques, vous devrez définir ce que les marques veulent dire et comment elles doivent être traitées. Il vous faudra un language de marquage auquel vous référer pour marquer vos documents.

Un seul language de marquage peut bien sûr ne pas suffire. Les besoins de marquage d'une documentation technique diffèrent énormément de ceux de recettes de cuisines. ces derniers seront à leur tour différents de ceux d'un language de marquage pour de la poésie. Vous avez en fait besoin d'un language qui vous permette de définir ces autres languages de marquage. Un méta-language de marquage.

C'est exactement ce qu'est Standard Generalised Markup Language (SGML) - Language de Marquage Standard Généralisé. De nombreux languages de marquage sont écrits en SGML, dont les deux languages les plus utilisés par le FDP, HTML et DocBook.

Chaque définition d'un language s'appelle plus exactement une Document Type Definition (DTD) - Définition de Type de Document. La DTD définit les noms des éléments utilisables, leur ordre d'apparition (et leur hiérarchie) et les informations qui s'y rapportent. Une DTD est parfois désignée comme une application de SGML.

Une DTD est une spécification complète de tous les éléments autorisés, de l'ordre dans lequel ils doivent être utilisés, quels sont ceux qui sont obligatoires, quels sont ceux qui sont facultatifs, et ainsi de suite. Il est alors possible d'écrire un analyseur qui lise et la DTD et le document qui prétend s'y conformer. L'analyseur peut alors vérifier si tous les éléments requis sont bien présents dans l'ordre voulu dans le document et s'il y a des erreurs dans le marquage. On appelle habituellement cela “valider le document”.

Note : Ce traitement ne valide uniquement que le choix des éléments, leur ordre, et ainsi de suite, se conforme à ce que définit la DTD. Il ne vérifie pas que vous avez utilisé les marques appropriées au document. Si vous marquez tous les noms de fichiers de votre document comme des noms de fonctions, l'analyseur ne le signalera pas comme une erreur (en supposant, bien sûr, que votre DTD définisse des éléments pour les noms de fichiers et de fonctions et qu'ils aient le droit d'apparaître aux mêmes endroits).

Il est probable que vos contributions au Projet de Documentation consiste en documents marqués soit en HTML soit en DocBook, plutôt qu'en modifications aux DTDs. Pour cette raison, cet ouvrage n'abordera pas la façon d'écrire une DTD.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.