Les documents au format SGML décrivent une structure arborescente où chaque nœud contient du texte de contenu et plusieurs autres nœuds. La syntaxe se base sur quelques éléments décrits brièvement dans cette section et de manière plus détaillée dans les chapitres suivants.

Élément/balise modifier

Un élément ou balise définit un conteneur. Le premier élément est l'élément racine du document, et contient tous les autres éléments, directement ou indirectement.

La syntaxe utilise les signes < et > pour encadrer le nom de l'élément.

Exemple :

<document>

Cette première syntaxe est celle de l'ouverture d'un élément. Après son ouverture, le contenu de l'élément est décrit : texte, éléments imbriqués, ... Puis l'élément est fermé en utilisant la syntaxe de fermeture. Cette syntaxe est presque identique à celle de l'ouverture, excepté qu'il n'y a aucun attribut et que le nom est précédé d'un caractère slash.

Exemple :

<document>
Le contenu de cet exemple de description d'un document,
suivi de la fermeture de l'élément à la ligne suivante.
</document>

Ce chapitre donne un bref aperçu de la syntaxe ; pour plus de détails sur la syntaxe des éléments, voir le chapitre Éléments, et Attributs pour leurs attributs.

Attribut modifier

Un élément peut avoir des attributs afin de spécifier des informations liées à l'élément lui-même (par exemple, un identificateur unique permettant de retrouver cet élément). Chaque attribut a un nom et une valeur spécifiés avec la syntaxe nom="valeur". Ils doivent être placés sur la balise d'ouverture de l'élément, après le nom et avant le caractère >.

Exemple :

<document type="exemple">
L'élément contenant ce texte possède un attribut type dont la valeur est exemple.
</document>

Ce chapitre donne un bref aperçu de la syntaxe ; pour plus de détails sur la syntaxe des éléments, voir le chapitre Attributs.

Commentaire modifier

Les commentaires sont utiles pour expliquer la syntaxe ou le contenu sans que les explications appartiennent au contenu du document. Leur syntaxe est basée sur celles des balises spéciales en encadrant le texte du commentaire entre <!-- et -->.

Exemple :

<!-- Un commentaire simple. -->


Balises spéciales modifier

Les balises spéciales permettent d'insérer des informations n’appartenant pas au contenu du document lui-même. Les commentaires vus précédemment sont une forme de balises spéciales à ignorer. Le contenu des balises spéciales est inclut entre <! et >.

La première balise spéciale que l'on trouve en général est celle du DOCTYPE spécifiant le type du document et le DTD utilisable pour l'interpréter. Cette balise est placée en première position dans le document.

Exemple :

<!DOCTYPE document system>
<document type="exemple">
L'élément contenant ce texte possède un attribut type dont la valeur est exemple.
</document>

Structure globale modifier

Les sections précédentes décrivent les différents éléments de la syntaxe sans détails. L'exemple de document ci-dessous utilise la syntaxe vue dans ce chapitre, avec imbrication d'éléments, attributs et commentaires. La syntaxe est détaillée dans les chapitres suivants.

<!DOCTYPE document system>
<document type="exemple">
  <!-- L'élément contenant ce texte possède un attribut type dont la valeur est exemple. -->
  Le texte ici pour l'élément document.
  <chapitre>Ici un texte pour décrire un chapitre.</chapitre>
  <chapitre>Ici un texte pour décrire un autre chapitre.</chapitre>
  <chapitre>et un autre chapitre...</chapitre>
  <chapitre type="annexe">Ici un texte pour décrire un chapitre de type annexe.</chapitre>
  <auteur>
    <!-- Détails sur le ou les auteurs : -->
    <nom>Les contributeurs de fr.wikibooks.org</nom>
    <url>https://fr.wikibooks.org/wiki/Le_langage_SGML/Syntaxe</url>
  </auteur>
</document>