Exemple de document SGML commenté ligne par ligne
Un document SGML ne se limite pas à des balises posées autour du texte. Sa déclaration de type de document décrit la structure autorisée, tandis que la DTD précise quels éléments peuvent apparaître et dans quel ordre.
Pour suivre le fonctionnement sans se perdre dans les règles avancées, prenons une page simple : un titre de section, un paragraphe et un lien. Chaque ligne révèle une règle de balisage et montre comment le SGML peut contrôler l’organisation du contenu.
Repères pour lire l’exemple :
- Éléments : parties nommées du document
- Attributs : informations associées à certains éléments
- DTD : règles décrivant la structure attendue
Lire la structure SGML et sa déclaration
La DTD définit les éléments permis
La DTD, ou définition de type de document, agit comme un plan de construction. Elle indique les éléments disponibles, leur contenu et, selon les règles déclarées, la présence éventuelle de balises de début ou de fin.
Dans cet exemple, la déclaration de l’élément principal autorise un en-tête facultatif, suivi du corps de page. Les signes « ? » et « + » précisent respectivement qu’un élément peut apparaître zéro ou une fois, ou au moins une fois.
Règles de contenu à repérer :
- head? : en-tête facultatif
- body : corps requis après l’en-tête
- p+ : un ou plusieurs paragraphes
Un exemple de DTD lisible peut s’écrire ainsi : élément html composé de head facultatif puis de body ; élément body composé d’un titre h1 suivi d’un ou plusieurs paragraphes. Les parenthèses délimitent les modèles de contenu et les virgules fixent leur ordre.
Les éléments imbriqués forment une hiérarchie
Un titre h1 et un paragraphe p deviennent des enfants de body, lui-même placé dans html. Cette imbrication forme une arborescence : le lecteur humain comprend les niveaux, et le parseur vérifie leur conformité aux règles.
Selon la DTD, le paragraphe peut contenir du texte et un lien. La règle correspondante doit donc autoriser les deux types de contenu, par exemple du texte analysé, noté #PCDATA, ainsi que l’élément a.
Vocabulaire de la hiérarchie :
- Parent : élément contenant d’autres éléments
- Enfant : élément placé dans un parent
- Modèle : ordre et types de contenu acceptés
Cette organisation rend le document exploitable au-delà de son apparence : un système peut extraire les titres, repérer les liens ou transformer le contenu pour un autre format.
Décomposer l’exemple SGML ligne par ligne
Du conteneur général au contenu textuel
La ligne ouvrant html annonce l’élément principal. La déclaration DTD lui associe ensuite head facultatif et body obligatoire ; dans l’instance, chaque balise matérialise une partie de cette organisation.
Dans head, title porte le nom de la page. La déclaration de title n’autorise que du texte analysé, tandis que body accueille le titre visible et les paragraphes selon le modèle défini.
Lecture des lignes principales :
- html : racine du document
- head et title : métadonnée de titre
- body : contenu destiné à la page
La déclaration d’un élément utilise notamment son nom, les règles de balises et son modèle de contenu. Dans les exemples SGML classiques, les deux tirets indiquent que les balises de début et de fin doivent être présentes.
Le lien et les commentaires dans le balisage
À l’intérieur du paragraphe, l’élément a représente le lien et son attribut href indique sa destination. La DTD peut déclarer cet attribut comme une chaîne de caractères, tandis que le contenu de a reste du texte.
Les commentaires SGML servent à annoter le prologue ou le contenu sans en faire un élément visible de la structure. Leur syntaxe repose sur des délimiteurs spécifiques ; elle ne doit pas être confondue avec les commentaires HTML ou XML, dont les règles diffèrent.
Points de contrôle pendant l’analyse :
- Imbrication : chaque élément doit respecter son parent
- Attribut href : valeur associée au lien
- Commentaires : annotations distinctes du contenu structuré
Selon les capacités du processeur SGML et les options déclarées, certaines formes de balises peuvent être omises. Pour apprendre, mieux vaut d’abord écrire explicitement les balises et vérifier la cohérence de chaque élément.
Comparer SGML, HTML et XML pour comprendre l’exemple
Un métalangage et ses applications
SGML est un métalangage : il permet de définir des vocabulaires de balisage et les règles utilisées pour les analyser. HTML et XML s’inscrivent dans cette histoire, mais ne sont pas interchangeables et ne partagent pas toutes les mêmes contraintes.
Selon les ressources pédagogiques consacrées à la syntaxe SGML, comparer les trois formats aide à distinguer la définition des règles de leur application. XML impose notamment une écriture stricte des balises, tandis que les règles SGML peuvent autoriser des options de minimisation configurées dans la déclaration.
Comparaison pratique :
| Format | Rôle principal | Point à observer |
|---|---|---|
| SGML | Définir des langages de balisage | DTD et options de syntaxe |
| HTML | Structurer des pages web | Vocabulaire conçu pour le web |
| XML | Structurer des données balisées | Règles d’écriture strictes |
| DTD | Décrire une structure documentaire | Éléments, ordre et contenu permis |
Le tableau ne remplace pas l’étude des spécifications : il fournit un repère pour choisir le bon angle. Pour décoder un fichier ancien, l’enjeu est souvent de retrouver la DTD et la déclaration qui gouvernent réellement son contenu.
Une méthode progressive pour étudier un fichier
Face à un document inconnu, commencez par repérer sa déclaration, son élément racine et les références éventuelles à une DTD. Ensuite, suivez les imbrications et vérifiez les attributs, plutôt que de lire les balises comme une simple décoration.
Cette démarche convient aussi aux équipes qui maintiennent des archives ou des contenus techniques hérités. Elle permet de comprendre pourquoi un élément est accepté, pourquoi une balise manque éventuellement et quelles règles un outil de traitement applique.
Ordre d’analyse conseillé :
- Repérer la déclaration et la DTD associée
- Identifier l’élément racine et ses enfants
- Vérifier attributs, commentaires et modèles de contenu
Un bon exercice consiste à modifier un paragraphe, puis à confronter le résultat aux règles déclarées. Cette vérification concrète transforme la syntaxe en méthode d’analyse et rend l’exemple ligne par ligne réellement utile.