La version française de cette traduction est :
http://www.la-grange.net/w3c/html4.01/

Traducteur : J.J.Solari dans le cadre de l'effort de la liste de discussion w3c-translators.fr@w3.org
La version française peut contenir des erreurs. La version anglaise de cette note est l'unique version normative. Version originale : http://www.w3.org/TR/1999/REC-html401-19991224


22 La définition de type de document transitoire

<!--
    Ceci est le DTD HTML 4.01 Transitional, qui inclut les attributs et
    les éléments de présentation que le W3C prévoit
    de supprimer graduellement au fur et à mesure de la gestion
    accrue des feuilles de style. Les auteurs devraient employer le DTD strict
    autant que possible, mais ils peuvent employer le DTD transitoire quand
    la gestion des attributs et éléments de présentation est exigée.

    HTML 4 comprend des mécanismes pour les feuilles de style, les scripts,
    l'incorporation des objets, l'amélioration de la gestion des textes
    de droite à gauche et mixtes, et l'amélioration des formulaires
    pour accroître l'accessibilit&eacut;e des personnes avec des
    déficiences physiques.

          Projet : $Date: 1999/12/24 22:40:35 $

          Auteurs :
              Dave Raggett <dsr@w3.org>
              Arnaud Le Hors <lehors@w3.org>
              Ian Jacobs <ij@w3.org>

    On trouvera plus d'informations sur HTML 4.01 à :

        http://www.w3.org/TR/1999/REC-html401-19991224


    La spécification HTML 4.01 inclut des contraintes syntaxiques supplémentaires
    qui ne peuvent pas s'exprimer dans les DTD.

-->
<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Transitional//EN"
  -- Utilisation typique :

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
            "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    ...
    </head>
    <body>
    ...
    </body>
    </html>

    L'URI utilisé comme identifiant de système avec l'identifiant public
    permet à l'agent utilisateur de télécharger le DTD et les
    jeux d'entités au besoin.

    Le FPI du DTD HTML 4.01 Strict :

        "-//W3C//DTD HTML 4.01//EN"

    Cette version du DTD strict :

        http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd

    Les auteurs devraient employer le DTD Strict à moins qu'ils n'aient besoin
    d'un contrôle de la présentation pour les agents utilisateurs
    qui ne reconnaissent pas (de manière adéquate) les feuilles de style.

    Si vous écrivez un document qui comprend des cadres, employez le FPI suivant :

        "-//W3C//DTD HTML 4.01 Frameset//EN"

    Cette version du DTD avec jeu d'encadrement :

        http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd

    Utilisez les URI (relatifs) suivant pour se
    référer aux DTD et définitions d'entité de cette spécification :

    "strict.dtd"
    "loose.dtd"
    "frameset.dtd"
    "HTMLlat1.ent"
    "HTMLsymbol.ent"
    "HTMLspecial.ent"

-->

<!--================== Noms importés ====================================-->
<!-- Interrupteur de fonctionnalité pour les documents avec jeu d'encadrement -->
<!ENTITY % HTML.Frameset "IGNORE">

<!ENTITY % ContentType "CDATA"
    -- type de média, selon [RFC2045]
    -->

<!ENTITY % ContentTypes "CDATA"
    -- liste de types de média, séparés par des virgules, selon [RFC2045]
    -->

<!ENTITY % Charset "CDATA"
    -- un encodage de caractères, selon [RFC2045]
    -->

<!ENTITY % Charsets "CDATA"
    -- une liste d'encodages de caractères, séparés par des virgules, selon [RFC2045]
    -->

<!ENTITY % LanguageCode "NAME"
    -- un code de langue, selon [RFC1766]
    -->

<!ENTITY % Character "CDATA"
    -- un seul caractère issu du jeu [ISO10646]
    -->

<!ENTITY % LinkTypes "CDATA"
    -- liste de types de lien, séparés par des espaces
    -->

<!ENTITY % MediaDesc "CDATA"
    -- un descripteur de média seul, ou une liste de descripteurs, séparés par des virgules
    -->

<!ENTITY % URI "CDATA"
    -- un identifiant de ressource uniforme (URI),
       voir [URI]
    -->

<!ENTITY % Datetime "CDATA" -- informations de date et d'heure. Format de date ISO -->


<!ENTITY % Script "CDATA" -- expression de script -->

<!ENTITY % StyleSheet "CDATA" -- données de feuille de style -->

<!ENTITY % FrameTarget "CDATA" -- restituer dans ce cadre -->


<!ENTITY % Text "CDATA">


<!-- Entités paramètres -->

<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- éléments d'en-tête répétables -->

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">

<!ENTITY % list "UL | OL |  DIR | MENU">

<!ENTITY % preformatted "PRE">

<!ENTITY % Color "CDATA" -- une couleur utilisant sRGB : #RRGGBB en valeur hexadécimales -->

<!-- Il y a aussi 16 noms de couleur largement répandus, avec leur valeur sRGB :

    Black  = #000000    Green  = #008000
    Silver = #C0C0C0    Lime   = #00FF00
    Gray   = #808080    Olive  = #808000
    White  = #FFFFFF    Yellow = #FFFF00
    Maroon = #800000    Navy   = #000080
    Red    = #FF0000    Blue   = #0000FF
    Purple = #800080    Teal   = #008080
    Fuchsia= #FF00FF    Aqua   = #00FFFF
 -->

<!ENTITY % bodycolors "
  bgcolor     %Color;        #IMPLIED  -- couleur d'arrière-plan du document --
  text        %Color;        #IMPLIED  -- couleur du texte du document --
  link        %Color;        #IMPLIED  -- couleur des liens --
  vlink       %Color;        #IMPLIED  -- couleur des liens visités --
  alink       %Color;        #IMPLIED  -- couleur des liens sélectionnés --
  ">

<!--================ Entités de caractères mnémoniques =========================-->

<!ENTITY % HTMLlat1 PUBLIC
   "-//W3C//ENTITIES Latin1//EN//HTML"
   "HTMLlat1.ent">
%HTMLlat1;

<!ENTITY % HTMLsymbol PUBLIC
   "-//W3C//ENTITIES Symbols//EN//HTML"
   "HTMLsymbol.ent">
%HTMLsymbol;

<!ENTITY % HTMLspecial PUBLIC
   "-//W3C//ENTITIES Special//EN//HTML"
   "HTMLspecial.ent">
%HTMLspecial;
<!--=================== Attributs génériques ===============================-->

<!ENTITY % coreattrs
 "id          ID             #IMPLIED  -- id unique au document --
  class       CDATA          #IMPLIED  -- liste de classes, séparées par des espaces --
  style       %StyleSheet;   #IMPLIED  -- indication de style associé --
  title       %Text;         #IMPLIED  -- titre consultatif --"
  >

<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED  -- code de langue --
  dir         (ltr|rtl)      #IMPLIED  -- direction de texte lâche/neutre --"
  >

<!ENTITY % events
 "onclick     %Script;       #IMPLIED  -- un bouton du pointeur a été cliqué --
  ondblclick  %Script;       #IMPLIED  -- un bouton du pointeur a été double-cliqué --
  onmousedown %Script;       #IMPLIED  -- un bouton du pointeur a été appuyé --
  onmouseup   %Script;       #IMPLIED  -- un bouton du pointeur a été relâché --
  onmouseover %Script;       #IMPLIED  -- le pointeur a été déplacé sur --
  onmousemove %Script;       #IMPLIED  -- le pointeur a été déplacé dans --
  onmouseout  %Script;       #IMPLIED  -- le pointeur a été déplacé ailleurs --
  onkeypress  %Script;       #IMPLIED  -- une touche a été pressée puis relâchée --
  onkeydown   %Script;       #IMPLIED  -- une touche a été appuyée --
  onkeyup     %Script;       #IMPLIED  -- une touche a été relâchée --"
  >

<!-- Interrupteur de fonctionnalité réservé -->
<!ENTITY % HTML.Reserved "IGNORE">

<!-- Les attributs suivants sont réservés pour une possible utilisation future -->
<![ %HTML.Reserved; [
<!ENTITY % reserved
 "datasrc     %URI;          #IMPLIED  -- une source de données seule ou tabulaire --
  datafld     CDATA          #IMPLIED  -- le nom de la propriété ou de la colonne --
  dataformatas (plaintext|html) plaintext -- format texte ou html --"
  >
]]>

<!ENTITY % reserved "">

<!ENTITY % attrs "%coreattrs; %i18n; %events;">

<!ENTITY % align "align (left|center|right|justify)  #IMPLIED"
                   -- par défaut, c'est left pour une direction ltr et right pour rtl --
  >

<!--=================== Balisage du texte ======================================-->

<!ENTITY % fontstyle
 "TT | I | B | U | S | STRIKE | BIG | SMALL">

<!ENTITY % phrase "EM | STRONG | DFN | CODE |
                   SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >

<!ENTITY % special
   "A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT |
    MAP | Q | SUB | SUP | SPAN | BDO | IFRAME">

<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">

<!-- %inline; couvre les éléments en-ligne ou de "niveau texte" -->
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
<!ATTLIST (%fontstyle;|%phrase;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT (SUB|SUP) - - (%inline;)*    -- écriture en lettres inférieures ou supérieures -->
<!ATTLIST (SUB|SUP)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT SPAN - - (%inline;)*         -- conteneur de langue/style générique -->
<!ATTLIST SPAN
  %attrs;                              -- %coreattrs, %i18n, %events --
  %reserved;                   -- réservé pour une possible utilisation future --
  >

<!ELEMENT BDO - - (%inline;)*          -- surclassement algorithme I18N BiDi -->
<!ATTLIST BDO
  %coreattrs;                          -- id, class, style, title --
  lang        %LanguageCode; #IMPLIED  -- code de langue --
  dir         (ltr|rtl)      #REQUIRED -- directionnalité --
  >

<!ELEMENT BASEFONT - O EMPTY           -- taille de police de base -->
<!ATTLIST BASEFONT
  id          ID             #IMPLIED  -- id unique au document --
  size        CDATA          #REQUIRED -- taille de police de base pour élément FONT --
  color       %Color;        #IMPLIED  -- couleur du texte --
  face        CDATA          #IMPLIED  -- liste de noms de police, séparés par des virgules --
  >

<!ELEMENT FONT - - (%inline;)*         -- changement local de la police -->
<!ATTLIST FONT
  %coreattrs;                          -- id, class, style, title --
  %i18n;                       -- lang, dir --
  size        CDATA          #IMPLIED  -- [+|-]nn e.g. size="+1", size="4" --
  color       %Color;        #IMPLIED  -- couleur du texte --
  face        CDATA          #IMPLIED  -- liste de noms de police, séparés par des virgules --
  >

<!ELEMENT BR - O EMPTY                 -- saut de ligne forcé -->
<!ATTLIST BR
  %coreattrs;                          -- id, class, style, title --
  clear       (left|all|right|none) none -- contr&orcirc;le de l'écoulement du texte --
  >

<!--================== Modèles de contenu HTML ===============================-->

<!--
    HTML suit deux modèles de contenu principaux :

        %inline;     éléments au niveau du caractère et les chaînes textuelles
        %block;      élément de type bloc e.g., paragraphse et listes
-->

<!ENTITY % block
     "P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
      NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
      TABLE | FIELDSET | ADDRESS">

<!ENTITY % flow "%block; | %inline;">

<!--=================== Corps du document ====================================-->

<!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- corps du document -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- le document a été chargé --
  onunload        %Script;   #IMPLIED  -- le document a été retiré --
  background      %URI;      #IMPLIED  -- texture en mosaïque pour
                                          l'arrière-plan du document --
  %bodycolors;                         -- bgcolor, text, link, vlink, alink --
  >

<!ELEMENT ADDRESS - - ((%inline;)|P)*  -- informations sur l'auteur -->
<!ATTLIST ADDRESS
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT DIV - - (%flow;)*            -- conteneur de langue/style générique -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- alignement, alignement du texte --
  %reserved;                           -- réservé pour une possible utilisation future --
  >

<!ELEMENT CENTER - - (%flow;)*         -- raccourci pour DIV align=center -->
<!ATTLIST CENTER
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================== Élément ancre ================================-->

<!ENTITY % Shape "(rect|circle|poly|default)">
<!ENTITY % Coords "CDATA" -- liste de longueurs, séparées par des virgules -->

<!ELEMENT A - - (%inline;)* -(A)       -- ancre -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- encodage de caractères de la ressource reliée --
  type        %ContentType;  #IMPLIED  -- type de contenu consultatif --
  name        CDATA          #IMPLIED  -- extrêmité du lien nommée --
  href        %URI;          #IMPLIED  -- URI de la ressource reliée --
  hreflang    %LanguageCode; #IMPLIED  -- code de langue --
  target      %FrameTarget;  #IMPLIED  -- restituer dans ce cadre --
  rel         %LinkTypes;    #IMPLIED  -- types de lien progressifs --
  rev         %LinkTypes;    #IMPLIED  -- types de lien régressifs --
  accesskey   %Character;    #IMPLIED  -- touche de caractère pour l'accessibilité --
  shape       %Shape;        rect      -- à utiliser avec les images cliquables côté client --
  coords      %Coords;       #IMPLIED  -- à utiliser avec les images cliquables côté client --
  tabindex    NUMBER         #IMPLIED  -- position dans l'ordre de tabulation --
  onfocus     %Script;       #IMPLIED  -- l'élément a l'attention --
  onblur      %Script;       #IMPLIED  -- l'élément perd l'attention --
  >

<!--================== Images cliquables côté client ============================-->

<!-- Celles-ci peuvent se placer dans le même document ou regroupées
     dans un document spéparé, bien que ce ne soit pas encore très répandu -->

<!ELEMENT MAP - - ((%block;) | AREA)+ -- image cliquable côté client -->
<!ATTLIST MAP
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #REQUIRED -- pour appel par l'attribut usemap --
  >

<!ELEMENT AREA - O EMPTY               -- zone d'image cliquable côté client -->
<!ATTLIST AREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  shape       %Shape;        rect      -- contrôle l'interprétation des coordonnées --
  coords      %Coords;       #IMPLIED  -- liste de longueurs, séparées par des virgules --
  href        %URI;          #IMPLIED  -- URI de la ressource reliée --
  target      %FrameTarget;  #IMPLIED  -- restituer dans ce cadre --
  nohref      (nohref)       #IMPLIED  -- cette région n'a aucune action --
  alt         %Text;         #REQUIRED -- brève description --
  tabindex    NUMBER         #IMPLIED  -- position dans l'ordre de tabulation --
  accesskey   %Character;    #IMPLIED  -- touche de caractère pour l'accessibilité --
  onfocus     %Script;       #IMPLIED  -- l'élément a l'attention --
  onblur      %Script;       #IMPLIED  -- l'élément perd l'attention --
  >

<!--================== Élément LINK ==================================-->

<!--
  Les valeurs de relation peuvent en principe être utilisées :

   a) pour les barres d'outils/menus spécifiques au document, quand ceux-ci sont
   utilisés avec l'élément LINK dans l'en-tête du document,
   par exemple, start, contents, previous, next, index, end, help
   b) pour relier une feuille de style séparée (rel=stylesheet)
   c) pour faire un lien vers un script (rel=script)
   d) par les feuilles de style pour contrôler la manière dont les
      collections de nœuds HTML sont restituées dans les
      document imprimés
   e) pour faire un lien vers une version imprimable du document
      par exemple, une version postscript ou pdf (rel=alternate media=print)
-->

<!ELEMENT LINK - O EMPTY               -- un lien indépendant du média -->
<!ATTLIST LINK
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- encodage de caractères de la ressource reliée --
  href        %URI;          #IMPLIED  -- URI de la ressource reliée --
  hreflang    %LanguageCode; #IMPLIED  -- code de langue --
  type        %ContentType;  #IMPLIED  -- type de contenu consultatif --
  rel         %LinkTypes;    #IMPLIED  -- types de lien progressifs --
  rev         %LinkTypes;    #IMPLIED  -- types de lien régressifs --
  media       %MediaDesc;    #IMPLIED  -- pour restitution sur ces médias --
  target      %FrameTarget;  #IMPLIED  -- restituer dans ce cadre --
  >

<!--=================== Images ===========================================-->

<!-- Le type de valeur Length est défini dans le DTD strict pour cellpadding/cellspacing -->
<!ENTITY % Length "CDATA" -- longueur nn en pixels ou nn% en pourcentage -->
<!ENTITY % MultiLength "CDATA" -- valeur en pixel, en pourcentage ou relative -->

<![ %HTML.Frameset; [
<!ENTITY % MultiLengths "CDATA" -- liste de valeur MultiLength, séparées par des virgules -->
]]>

<!ENTITY % Pixels "CDATA" -- entier représentant une longueur en pixels -->

<!ENTITY % IAlign "(top|middle|bottom|left|right)" -- center? -->

<!-- Pour éviter les problèmes avec les agents utilisateurs
   en mode texte seul ainsi que pour rendre le contenu de l'image compréhensible
   et navigable aux utilisanteurs d'un agent utilisateur non-visuel, vous devez
   fournir une description avec l'attribut ALT et éviter les images cliquables
   côté serveur -->
<!ELEMENT IMG - O EMPTY                -- Image incorporée -->
<!ATTLIST IMG
  %attrs;                              -- %coreattrs, %i18n, %events --
  src         %URI;          #REQUIRED -- URI de l'image à incorporer --
  alt         %Text;         #REQUIRED -- brève description --
  longdesc    %URI;          #IMPLIED  -- lien vers une description longue
                                          (en complément de l'attribut alt) --
  name        CDATA          #IMPLIED  -- nom de l'image pour les scripts --
  height      %Length;       #IMPLIED  -- surclasse la hauteur --
  width       %Length;       #IMPLIED  -- surclasse la largeur --
  usemap      %URI;          #IMPLIED  -- utiliser une image cliquable côté client --
  ismap       (ismap)        #IMPLIED  -- utiliser une image cliquable côté serveur --
  align       %IAlign;       #IMPLIED  -- alignement vertical ou horizontal --
  border      %Pixels;       #IMPLIED  -- épaisseur de la bordure du lien --
  hspace      %Pixels;       #IMPLIED  -- gouttière horizontale --
  vspace      %Pixels;       #IMPLIED  -- gouttière verticale --
  >

<!-- L'attribut USEMAP pointe vers un élément MAP qui peut se trouver
  dans le document ou dans un document externe, bien que le dernier ne soit pas
  largement reconnu -->

<!--==================== Élément OBJECT ======================================-->
<!--
  On utiliser l'élément OBJECT pour incorporer des objets en tant que
  parties des pages HTML. Les éléments PARAM devraient précéder
  un autre contenu. La technicité du modèle de contenu mixte de SGML
  empêche de spécifier ceci formellement...
-->

<!ELEMENT OBJECT - - (PARAM | %flow;)*
 -- objet incorporé générique -->
<!ATTLIST OBJECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  declare     (declare)      #IMPLIED  -- déclare mais n'instancie pas de drapeau --
  classid     %URI;          #IMPLIED  -- identifie une implémentation --
  codebase    %URI;          #IMPLIED  -- URI de base pour classid, data, archive--
  data        %URI;          #IMPLIED  -- référence aux données de l'objet --
  type        %ContentType;  #IMPLIED  -- type de contenu pour l'attribut data --
  codetype    %ContentType;  #IMPLIED  -- type de contenu pour l'attribut code --
  archive     CDATA          #IMPLIED  -- liste d'URI spéparés par des espaces --
  standby     %Text;         #IMPLIED  -- message à montrer pendant le chargement --
  height      %Length;       #IMPLIED  -- surclasse la hauteur --
  width       %Length;       #IMPLIED  -- surclasse la largeur --
  usemap      %URI;          #IMPLIED  -- utiliser une image cliquable côté client --
  name        CDATA          #IMPLIED  -- soumettre comme partie d'un formulaire --
  tabindex    NUMBER         #IMPLIED  -- position dans l'ordre de tabulation --
  align       %IAlign;       #IMPLIED  -- alignement vertical ou horizontal --
  border      %Pixels;       #IMPLIED  -- épaisseur de la bordure du lien --
  hspace      %Pixels;       #IMPLIED  -- gouttière horizontale --
  vspace      %Pixels;       #IMPLIED  -- gouttière verticale --
  %reserved;                           -- réservé pour une possible utilisation future --
  >

<!ELEMENT PARAM - O EMPTY              -- valeur de propriété nommée -->
<!ATTLIST PARAM
  id          ID             #IMPLIED  -- id unique au document --
  name        CDATA          #REQUIRED -- nom de propriété --
  value       CDATA          #IMPLIED  -- valeur de propriété --
  valuetype   (DATA|REF|OBJECT) DATA   -- comment interpréter la valeur --
  type        %ContentType;  #IMPLIED  -- type de contenu pour l'attribut value
                                          when valuetype=ref --
  >

<!--=================== Java APPLET ==================================-->
<!--
  One of code or object attributes must be present.
  Place PARAM elements before other content.
-->
<!ELEMENT APPLET - - (PARAM | %flow;)* -- applet Java -->
<!ATTLIST APPLET
  %coreattrs;                          -- id, class, style, title --
  codebase    %URI;          #IMPLIED  -- URI de base optionnel pour l'applet --
  archive     CDATA          #IMPLIED  -- liste d'archives spéparées par des virgules --
  code        CDATA          #IMPLIED  -- fichier de class de l'applet --
  object      CDATA          #IMPLIED  -- fichier d'applet sérialisé --
  alt         %Text;         #IMPLIED  -- brève description --
  name        CDATA          #IMPLIED  -- permet aux applets de se trouver les unes les autres --
  width       %Length;       #REQUIRED -- largeur initiale --
  height      %Length;       #REQUIRED -- hauteur initiale --
  align       %IAlign;       #IMPLIED  -- alignement vertical ou horizontal --
  hspace      %Pixels;       #IMPLIED  -- gouttière horizontale --
  vspace      %Pixels;       #IMPLIED  -- gouttière verticale --
  >

<!--=================== Règle horizontale ==================================-->

<!ELEMENT HR - O EMPTY -- règle horizontale -->
<!ATTLIST HR
  %attrs;                              -- %coreattrs, %i18n, %events --
  align       (left|center|right) #IMPLIED
  noshade     (noshade)      #IMPLIED
  size        %Pixels;       #IMPLIED
  width       %Length;       #IMPLIED
  >

<!--=================== Paragraphes =======================================-->

<!ELEMENT P - O (%inline;)*            -- paragraphe -->
<!ATTLIST P
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- alignement, alignement du texte --
  >

<!--=================== Titrages =========================================-->

<!--
  Il y a six niveaux de titrage à partir de H1 (le plus important)
  jusqu'à H6 (le moins important).
-->

<!ELEMENT (%heading;)  - - (%inline;)* -- titrage -->
<!ATTLIST (%heading;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- alignement, alignement du texte --
  >

<!--=================== Texte préformaté ================================-->

<!-- exclut le balisage des images et les changements dans la taille de police -->
<!ENTITY % pre.exclusion "IMG|OBJECT|APPLET|BIG|SMALL|SUB|SUP|FONT|BASEFONT">

<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- texte préformaté -->
<!ATTLIST PRE
  %attrs;                              -- %coreattrs, %i18n, %events --
  width       NUMBER         #IMPLIED
  >

<!--===================== Citations en-ligne ==================================-->

<!ELEMENT Q - - (%inline;)*            -- courte citation en-ligne -->
<!ATTLIST Q
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- URI du document ou message sources --
  >

<!--=================== Citations en bloc ================================-->

<!ELEMENT BLOCKQUOTE - - (%flow;)*     -- citation longue -->
<!ATTLIST BLOCKQUOTE
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- URI du document ou message sources --
  >

<!--=================== Texte inséré/supprimé ============================-->


<!-- Les éléments INS/DEL sont gérés par inclusion sur BODY -->
<!ELEMENT (INS|DEL) - - (%flow;)*      -- texte inséré, supprimé -->
<!ATTLIST (INS|DEL)
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- info sur le motif du changement --
  datetime    %Datetime;     #IMPLIED  -- date et heure du changement --
  >

<!--=================== Listes ============================================-->

<!-- Listes de définitions - DT pour le terme, DD pour sa définition -->

<!ELEMENT DL - - (DT|DD)+              -- liste de définitions -->
<!ATTLIST DL
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED  -- espacement entre les items réduit --
  >

<!ELEMENT DT - O (%inline;)*           -- terme de définition -->
<!ELEMENT DD - O (%flow;)*             -- description de la définition -->
<!ATTLIST (DT|DD)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!-- Style de numérotage des listes ordonnées (OL)

    1   en chiffres arabes              1, 2, 3, ...
    a   alphabetique minuscule          a, b, c, ...
    A   alphabetique majuscule          A, B, C, ...
    i   en chiffres romains minuscules  i, ii, iii, ...
    I   en chiffres romains majuscules  I, II, III, ...

    Le style s'applique à la succession de numéros qui, par défaut,
    est réinitialisée à 1 pour le premier item d'une liste ordonnée.

    On ne peut pas l'exprimer directement dans SGML en raison de l'emballage de la casse.
-->

<!ENTITY % OLStyle "CDATA"      -- contraint à : "(1|a|A|i|I)" -->

<!ELEMENT OL - - (LI)+                 -- liste ordonnée -->
<!ATTLIST OL
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %OLStyle;      #IMPLIED  -- style de numérotage --
  compact     (compact)      #IMPLIED  -- espacement entre item réduit --
  start       NUMBER         #IMPLIED  -- début de la séquence de numéros --
  >

<!-- Styles des pastilles des listes non-ordonnées (UL) -->
<!ENTITY % ULStyle "(disc|square|circle)">

<!ELEMENT UL - - (LI)+                 -- liste non-ordonnée -->
<!ATTLIST UL
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %ULStyle;      #IMPLIED  -- style de pastille --
  compact     (compact)      #IMPLIED  -- espacement entre item réduit --
  >

<!ELEMENT (DIR|MENU) - - (LI)+ -(%block;) -- liste de type répertoire, liste de type menu -->
<!ATTLIST DIR
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED -- espacement entre item réduit --
  >
<!ATTLIST MENU
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED -- espacement entre item réduit --
  >

<!ENTITY % LIStyle "CDATA" -- contraint à : "(%ULStyle;|%OLStyle;)" -->

<!ELEMENT LI - O (%flow;)*             -- item de liste -->
<!ATTLIST LI
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %LIStyle;      #IMPLIED  -- style d'item de liste --
  value       NUMBER         #IMPLIED  -- numéro de séquence réinitialisé --
  >

<!--================ Formulaires ===============================================-->
<!ELEMENT FORM - - (%flow;)* -(FORM)   -- formulaire interactif -->
<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- gestionnaire de formulaire côté serveur --
  method      (GET|POST)     GET       -- méthode HTTP utilisée pour soumettre le formulaire --
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  accept      %ContentTypes; #IMPLIED  -- liste de types MIME pour le chargement d'un fichier sur un serveur --
  name        CDATA          #IMPLIED  -- nom du formulaire pour les scripts --
  onsubmit    %Script;       #IMPLIED  -- le formulaire a été soumis --
  onreset     %Script;       #IMPLIED  -- le formulaire a été réinitialisé --
  target      %FrameTarget;  #IMPLIED  -- restituer dans ce cadre --
  accept-charset %Charsets;  #IMPLIED  -- liste des jeux de caractères reconnus --
  >

<!-- Chaque label ne doit pas contenir plus d'UN champs -->
<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- texte du label d'un champs de formulaire -->
<!ATTLIST LABEL
  %attrs;                              -- %coreattrs, %i18n, %events --
  for         IDREF          #IMPLIED  -- correspond à la valeur ID d'un champs --
  accesskey   %Character;    #IMPLIED  -- touche de caractère pour l'accessibilité --
  onfocus     %Script;       #IMPLIED  -- l'élément a l'attention --
  onblur      %Script;       #IMPLIED  -- l'élément perd l'attention --
  >

<!ENTITY % InputType
  "(TEXT | PASSWORD | CHECKBOX |
    RADIO | SUBMIT | RESET |
    FILE | HIDDEN | IMAGE | BUTTON)"
   >

<!-- Le nom de l'attribut est obligatoire pour tous les types, sauf submit et reset -->
<!ELEMENT INPUT - O EMPTY              -- form control -->
<!ATTLIST INPUT
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- quel est le gadget nécessaire --
  name        CDATA          #IMPLIED  -- soumettre comme partie d'un formulaire --
  value       CDATA          #IMPLIED  -- spécifier pour les boutons radio et les cases à cocher --
  checked     (checked)      #IMPLIED  -- pour les boutons radio et les cases à cocher  --
  disabled    (disabled)     #IMPLIED  -- indisponible dans ce contexte --
  readonly    (readonly)     #IMPLIED  -- pour les types text et passwd --
  size        CDATA          #IMPLIED  -- propre à chaque type de champs --
  maxlength   NUMBER         #IMPLIED  -- nombre de caractères maxi pour champs textuels --
  src         %URI;          #IMPLIED  -- pour les champs avec des images --
  alt         CDATA          #IMPLIED  -- brève description --
  usemap      %URI;          #IMPLIED  -- utiliser une image cliquable côté client --
  ismap       (ismap)        #IMPLIED  -- utiliser une image cliquable côté serveur --
  tabindex    NUMBER         #IMPLIED  -- position dans l'ordre de tabulation --
  accesskey   %Character;    #IMPLIED  -- touche de caractère pour l'accessibilité --
  onfocus     %Script;       #IMPLIED  -- l'élément a l'attention --
  onblur      %Script;       #IMPLIED  -- l'élément perd l'attention --
  onselect    %Script;       #IMPLIED  -- un certain texte a été sélectionné --
  onchange    %Script;       #IMPLIED  -- la valeur de l'élément a été changée --
  accept      %ContentTypes; #IMPLIED  -- liste de types MIME pour le chargement d'un fichier sur un serveur --
  align       %IAlign;       #IMPLIED  -- alignement vertical ou horizontal --
  %reserved;                           -- réservé pour une possible utilisation future --
  >

<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- sélecteur d'option -->
<!ATTLIST SELECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED  -- nom de champs --
  size        NUMBER         #IMPLIED  -- rangées visibles --
  multiple    (multiple)     #IMPLIED  -- sélection simple par défaut --
  disabled    (disabled)     #IMPLIED  -- indisponible dans ce contexte --
  tabindex    NUMBER         #IMPLIED  -- position dans l'ordre de tabulation --
  onfocus     %Script;       #IMPLIED  -- l'élément a l'attention --
  onblur      %Script;       #IMPLIED  -- l'élément perd l'attention --
  onchange    %Script;       #IMPLIED  -- la valeur de l'élément a été changée --
  %reserved;                           -- réservé pour une possible utilisation future --
  >

<!ELEMENT OPTGROUP - - (OPTION)+ -- groupe d'options -->
<!ATTLIST OPTGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --
  disabled    (disabled)     #IMPLIED  -- indisponible dans ce contexte --
  label       %Text;         #REQUIRED -- à utiliser dans les menus hiérarchiques --
  >

<!ELEMENT OPTION - O (#PCDATA)         -- option sélectionnable -->
<!ATTLIST OPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  selected    (selected)     #IMPLIED
  disabled    (disabled)     #IMPLIED  -- indisponible dans ce contexte --
  label       %Text;         #IMPLIED  -- à utiliser dans les menus hiérarchiques --
  value       CDATA          #IMPLIED  -- contenu de l'élément par défaut --
  >

<!ELEMENT TEXTAREA - - (#PCDATA)       -- champs de texte multilignes -->
<!ATTLIST TEXTAREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED
  rows        NUMBER         #REQUIRED
  cols        NUMBER         #REQUIRED
  disabled    (disabled)     #IMPLIED  -- indisponible dans ce contexte --
  readonly    (readonly)     #IMPLIED
  tabindex    NUMBER         #IMPLIED  -- position dans l'ordre de tabulation --
  accesskey   %Character;    #IMPLIED  -- touche de caractère pour l'accessibilité --
  onfocus     %Script;       #IMPLIED  -- l'élément a l'attention --
  onblur      %Script;       #IMPLIED  -- l'élément perd l'attention --
  onselect    %Script;       #IMPLIED  -- un certain texte a été sélectionné --
  onchange    %Script;       #IMPLIED  -- la valeur de l'élément a été changée --
  %reserved;                           -- réservé pour une possible utilisation future --
  >

<!--
  Le type #PCDATA est pour résoudre le problème du contenu mixte,
  selon la spécification, seuls les blancs sont autorisés à cet endroit !
 -->
<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- groupe de commandes de formulaire -->
<!ATTLIST FIELDSET
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT LEGEND - - (%inline;)*       -- légende du jeu de champs -->
<!ENTITY % LAlign "(top|bottom|left|right)">

<!ATTLIST LEGEND
  %attrs;                              -- %coreattrs, %i18n, %events --
  accesskey   %Character;    #IMPLIED  -- touche de caractère pour l'accessibilité --
  align       %LAlign;       #IMPLIED  -- par rapport au jeu de champs --
  >

<!ELEMENT BUTTON - -
     (%flow;)* -(A|%formctrl;|FORM|ISINDEX|FIELDSET|IFRAME)
     -- bouton poussoir -->
<!ATTLIST BUTTON
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED
  value       CDATA          #IMPLIED  -- envoyé au serveur à la soumission --
  type        (button|submit|reset) submit -- pour utiliser comme bouton de formulaire --
  disabled    (disabled)     #IMPLIED  -- indisponible dans ce contexte --
  tabindex    NUMBER         #IMPLIED  -- position dans l'ordre de tabulation --
  accesskey   %Character;    #IMPLIED  -- touche de caractère pour l'accessibilité --
  onfocus     %Script;       #IMPLIED  -- l'élément a l'attention --
  onblur      %Script;       #IMPLIED  -- l'élément perd l'attention --
  %reserved;                           -- réservé pour une possible utilisation future --
  >

<!--======================= Tables =======================================-->

<!-- Norme des tables HTML IETF, voir [RFC1942] -->

<!--
 L'attribut BORDER fixe l'épaisseur du cadre autour de la table.
 Les unités par défaut sont en pixels écran.

 L'attribut FRAME spécifie quelles parties du cadre autour
 de la table devraient être restituées. Les valeurs ne sont pas
 les mêmes que COLS pour éviter un conflit de nom avec l'attribut VALIGN.

 La valeur "border" est incluse pour rétro-compatibilité avec
 <TABLE BORDER> qui produit frame=border et border=implied.
 Pour <TABLE BORDER=1>, on a border=1 et frame=implied.
 Auquel cas, il vaut mieux traiter cela comme frame=border
 pour rétro-compatibilité avec; les navigateurs existants.
-->
<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">

<!--
 L'attribut RULES définit quelles règles dessiner entre les cellules :

 Si l'attribut RULES est absent, alors supposer :
     "none" si l'attribut BORDER est absent ou bien BORDER=0, sinon "all"
-->

<!ENTITY % TRules "(none | groups | rows | cols | all)">

<!-- Placement horizontal de la table relativement au document -->
<!ENTITY % TAlign "(left|center|right)">

<!-- Attributs d'alignement horizontal pour le contenu des cellules -->
<!ENTITY % cellhalign
  "align      (left|center|right|justify|char) #IMPLIED
   char       %Character;    #IMPLIED  -- caractère d'alignement, e.g. char=':' --
   charoff    %Length;       #IMPLIED  -- décalage pour le caractère d'alignement --"
  >

<!-- Attributs d'alignement vertical pour le contenu des cellules -->
<!ENTITY % cellvalign
  "valign     (top|middle|bottom|baseline) #IMPLIED"
  >

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- légende de la table -->
<!ELEMENT THEAD    - O (TR)+           -- en-tête de la table -->
<!ELEMENT TFOOT    - O (TR)+           -- pied de la table -->
<!ELEMENT TBODY    O O (TR)+           -- corps de la table -->
<!ELEMENT COLGROUP - O (COL)*          -- groupe de colonnes de table -->
<!ELEMENT COL      - O EMPTY           -- colonne de table -->
<!ELEMENT TR       - O (TH|TD)+        -- rangée de table -->
<!ELEMENT (TH|TD)  - O (%flow;)*       -- cellule de rubrique ou de données de table -->

<!ATTLIST TABLE                        -- élément table --
  %attrs;                              -- %coreattrs, %i18n, %events --
  summary     %Text;         #IMPLIED  -- objet/structure pour sortie vocale --
  width       %Length;       #IMPLIED  -- largeur de la table --
  border      %Pixels;       #IMPLIED  -- épaisseur du cadre autour de la table --
  frame       %TFrame;       #IMPLIED  -- quelles parties du cadre restituer --
  rules       %TRules;       #IMPLIED  -- règles entre rangées et colonnes --
  cellspacing %Length;       #IMPLIED  -- espacement entre cellules --
  cellpadding %Length;       #IMPLIED  -- espacement à l'intérieur des cellules --
  align       %TAlign;       #IMPLIED  -- position de la table par rapport à la fenêtre --
  bgcolor     %Color;        #IMPLIED  -- couleur d'arrière-plan des cellules --
  %reserved;                           -- réservé pour une possible utilisation future --
  datapagesize CDATA         #IMPLIED  -- réservé pour une possible utilisation future --
  >

<!ENTITY % CAlign "(top|bottom|left|right)">

<!ATTLIST CAPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  align       %CAlign;       #IMPLIED  -- relativement à la table --
  >

<!--
COLGROUP regroupe un jeu d'éléments COL. Il permet de regrouper
plusieurs colonnes en relation sémantique.
-->
<!ATTLIST COLGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --
  span        NUMBER         1         -- nombre de colonnes par défaut dans le groupe --
  width       %MultiLength;  #IMPLIED  -- largeur par défaut des éléments COL contenus --
  %cellhalign;
  %cellvalign;                         -- alignement vertical dans les cellules --
  >

<!--
 Les éléments COL définissent les propriétés d'alignement
 des cellules dans une ou plusieurs colonnes.

 L'attribut WIDTH spécifie la largeur des colonnes, par exemple :

     width=64        largeur en pixelx écran
     width=0.5*      largeur relative de 0.5

 L'attribut SPAN entraîne l'application des attributs d'un élément COL
 sur plus d'une colonne.
-->
<!ATTLIST COL                          -- groupes et propriétés de colonnes --
  %attrs;                              -- %coreattrs, %i18n, %events --
  span        NUMBER         1         -- les attributs de COL affectent N colonnes --
  width       %MultiLength;  #IMPLIED  -- spécification de largeur de colonne --
  %cellhalign;                         -- alignement horizontal dans les cellules --
  %cellvalign;                         -- alignement vertical dans les cellules --
  >

<!--
    Utiliser THEAD pour dupliquer les en-têtes lors d'une rupture de la table
    hors des limites de la page, ou pour avoir des en-têtes statiques quand
    les sections TBODY sont restituées en panneau défilant.

    Utiliser TFOOT pour dupliquer les pieds lors d'une rupture de la table
    hors des limites de la page, ou pour avoir des pieds statiques quand
    les sections TBODY sont restituées en panneau défilant.

    Utiliser plusieurs sections TBODY quand il y a besoin de règles entre
    les groupes de rangées de table.
-->
<!ATTLIST (THEAD|TBODY|TFOOT)          -- section de table --
  %attrs;                              -- %coreattrs, %i18n, %events --
  %cellhalign;                         -- alignement horizontal dans les cellules --
  %cellvalign;                         -- alignement vertical dans les cellules --
  >

<!ATTLIST TR                           -- rangée de table --
  %attrs;                              -- %coreattrs, %i18n, %events --
  %cellhalign;                         -- alignement horizontal dans les cellules --
  %cellvalign;                         -- alignement vertical dans les cellules --
  bgcolor     %Color;        #IMPLIED  -- couleur d'arrière-plan pour une rangée --
  >



<!-- L'attribut scope est plus simple que l'attribut headers pour les tables communes -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">

<!-- TH est pour les rubriques, TD pour les données, mais pour les cellules ambivalentes, utiliser TD -->
<!ATTLIST (TH|TD)                      -- cellule de rubrique, ou de données --
  %attrs;                              -- %coreattrs, %i18n, %events --
  abbr        %Text;         #IMPLIED  -- abréviation pour une cellule de rubrique --
  axis        CDATA          #IMPLIED  -- liste de rubriques en relation, séparées par des virgules --
  headers     IDREFS         #IMPLIED  -- liste des id des cellules de rubrique --
  scope       %Scope;        #IMPLIED  -- portée couverte par les cellules de rubrique --
  rowspan     NUMBER         1         -- nombre de rangées couvertes par la cellule --
  colspan     NUMBER         1         -- nombre de colonnes couvertes par la cellule --
  %cellhalign;                         -- alignement horizontal dans les cellules --
  %cellvalign;                         -- alignement vertical dans les cellules --
  nowrap      (nowrap)       #IMPLIED  -- supprime le saut de ligne --
  bgcolor     %Color;        #IMPLIED  -- couleur d'arrière-plan de la cellule --
  width       %Length;       #IMPLIED  -- largeur de la cellule --
  height      %Length;       #IMPLIED  -- hauteur de la cellule --
  >

<!--================== Cadres du document ===================================-->

<!--
  Le modèle de contenu des documents HTML dépend de ce qui suit
  la section HEAD, un élément FRAMESET ou bien BODY. L'absence
  courante de la balise ouvrante de BODY fait qu'il est irréaliste de
  définir le modèle de contenu sans utiliser une section marquée.
-->

<![ %HTML.Frameset; [
<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- subdivision de fenêtre -->
<!ATTLIST FRAMESET
  %coreattrs;                          -- id, class, style, title --
  rows        %MultiLengths; #IMPLIED  -- liste de longueurs,
                                          par défaut : 100% (1 rangée) --
  cols        %MultiLengths; #IMPLIED  -- liste de longueurs,
                                          par défaut : 100% (1 colonne) --
  onload      %Script;       #IMPLIED  -- tous les cadres ont été chargés  --
  onunload    %Script;       #IMPLIED  -- tous les cadres ont été retirés --
  >
]]>

<![ %HTML.Frameset; [
<!-- Les noms de cadre réservés commencent par un caractère "_",
sinon ils commencent par une lettre -->
<!ELEMENT FRAME - O EMPTY              -- sous-fenêtre -->
<!ATTLIST FRAME
  %coreattrs;                          -- id, class, style, title --
  longdesc    %URI;          #IMPLIED  -- lien vers une description longue
                                          (complément de l'attribut title) --
  name        CDATA          #IMPLIED  -- nom du cadre pour ciblage --
  src         %URI;          #IMPLIED  -- source du contenu du cadre --
  frameborder (1|0)          1         -- bordure du cadre ou non --
  marginwidth %Pixels;       #IMPLIED  -- largeur des marges horizontales en pixels --
  marginheight %Pixels;      #IMPLIED  -- hauteur des marges verticales en pixels --
  noresize    (noresize)     #IMPLIED  -- autoriser le redimentionnement des cadres --
  scrolling   (yes|no|auto)  auto      -- barre de défilement ou pas --
  >
]]>

<!ELEMENT IFRAME - - (%flow;)*         -- sous-fenêtre en-ligne -->
<!ATTLIST IFRAME
  %coreattrs;                          -- id, class, style, title --
  longdesc    %URI;          #IMPLIED  -- lien vers une description longue
                                          (complément de l'attribut title) --
  name        CDATA          #IMPLIED  -- nom du cadre pour ciblage --
  src         %URI;          #IMPLIED  -- source du contenu du cadre --
  frameborder (1|0)          1         -- bordure du cadre ou non --
  marginwidth %Pixels;       #IMPLIED  -- largeur des marges horizontales en pixels --
  marginheight %Pixels;      #IMPLIED  -- hauteur des marges verticales en pixels --
  scrolling   (yes|no|auto)  auto      -- barre de défilement ou pas --
  align       %IAlign;       #IMPLIED  -- alignement vertical ou horizontal --
  height      %Length;       #IMPLIED  -- hauteur du cadre --
  width       %Length;       #IMPLIED  -- largeur du cadre --
  >

<![ %HTML.Frameset; [
<!ENTITY % noframes.content "(BODY) -(NOFRAMES)">
]]>

<!ENTITY % noframes.content "(%flow;)*">

<!ELEMENT NOFRAMES - - %noframes.content;
 -- conteneur de contenu de remplacement pour une restitution sans cadres -->
<!ATTLIST NOFRAMES
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================ En-tête du document =======================================-->
<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- en-tête du document -->
<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #IMPLIED  -- dictionnaire nommé de méta-informations --
  >

<!-- L'élément TITLE n'est pas considéré faire partie
       du flux de texte. Il devrait être restituté, par exemple, comme titre
       de la page ou titre de fenêtre. Il ne peut y avoir qu'un titre exactement par document.
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- titre du document -->
<!ATTLIST TITLE %i18n>

<!ELEMENT ISINDEX - O EMPTY            -- invite sur une seule ligne -->
<!ATTLIST ISINDEX
  %coreattrs;                          -- id, class, style, title --
  %i18n;                               -- lang, dir --
  prompt      %Text;         #IMPLIED  -- message d'invite -->

<!ELEMENT BASE - O EMPTY               -- URI de base du document -->
<!ATTLIST BASE
  href        %URI;          #IMPLIED  -- URI qui fait office d'URI de base --
  target      %FrameTarget;  #IMPLIED  -- restituer dans ce cadre --
  >

<!ELEMENT META - O EMPTY               -- méta-information générique -->
<!ATTLIST META
  %i18n;                               -- lang, dir, à utiliser avec l'attribut content --
  http-equiv  NAME           #IMPLIED  -- nom de l'en-tête de réponse HTTP --
  name        NAME           #IMPLIED  -- nom de la méta-information --
  content     CDATA          #REQUIRED -- information associée --
  scheme      CDATA          #IMPLIED  -- selectionne la forme du contenu --
  >

<!ELEMENT STYLE - - %StyleSheet        -- info de style -->
<!ATTLIST STYLE
  %i18n;                               -- lang, dir, à utiliser avec l'attribut title --
  type        %ContentType;  #REQUIRED -- type de contenu du langage de style --
  media       %MediaDesc;    #IMPLIED  -- conçu pour ces médias --
  title       %Text;         #IMPLIED  -- titre consultatif --
  >

<!ELEMENT SCRIPT - - %Script;          -- déclarations de script -->
<!ATTLIST SCRIPT
  charset     %Charset;      #IMPLIED  -- encodage de caractères de la ressource reliée --
  type        %ContentType;  #REQUIRED -- type de contenu du langage de script --
  language    CDATA          #IMPLIED  -- nom de langage de script prédéfini --
  src         %URI;          #IMPLIED  -- URI d'un script externe --
  defer       (defer)        #IMPLIED  -- l'agent utilisateur peut différer l'exécution du script --
  event       CDATA          #IMPLIED  -- réservé pour une possible utilisation future --
  for         %URI;          #IMPLIED  -- réservé pour une possible utilisation future --
  >

<!ELEMENT NOSCRIPT - - (%flow;)*
  -- conteneur du contenu de remplacement pour une restitution sans scripts -->
<!ATTLIST NOSCRIPT
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================ Structure du document ==================================-->
<!ENTITY % version "version CDATA #FIXED '%HTML.Version;'">

<![ %HTML.Frameset; [
<!ENTITY % html.content "HEAD, FRAMESET">
]]>

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- élément racine du document -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  %version;
  >