Les éléments d'un document structuré en SGML contiennent d'autres éléments ou du texte brut informel non structuré. Un texte doit obligatoirement être contenu dans un élément, l'objectif premier du SGML étant la représentation explicite de la structure logique du texte : chapitres, paragraphes, sections, indexs, ... L'affichage d'un document SGML dépend de la DTD du document, de la feuille de style associée, et d'éventuelles instructions de présentation. Un autre objectif du SGML était de permettre l'indexation du contenu textuel.

Jeu de caractères dans un document modifier

La spécification SGML prévoit des mécanismes pour autoriser l'inclusion de tout caractère Unicode 2.0 (ISO/IEC 10646) dans un document SGML. Un document débute généralement par une ou plusieurs déclarations dont une définition du jeu de caractère employé. La première déclaration référence un jeu de caractère par un identifiant public reconnu. Des caractères additionnels peuvent être définis en utilisant leur point de code Unicode.

Dans un élément modifier

Un texte doit obligatoirement être contenu dans un élément.

Exemple :

<section>
Le texte de cet exemple est contenu dans un élément section
et ne contient pas de caractère particulier.
</section>

Le texte de l'élément section de l'exemple ci-dessous peut être interprété comme du SGML :

<section>
Le texte de cet exemple est contenu dans un élément section.
Mais cet <exemple>exemple</exemple> est interprété comme un élément exemple dans la section.
Fin de section.
</section>

Pour éviter l'interprétation d'un texte contenant une syntaxe SGML, il est possible d'utiliser un balisage CDATA :

<section>
<![CDATA[
Le texte de cet exemple est contenu dans un élément section.
Et cet <exemple>exemple</exemple> n'est pas interprété comme un élément exemple dans la section.
Fin de section.
]]>
</section>