22 Definizione del Tipo di Documento Transitoria

<!--
    Questa è la DTD Transitoria di HTML 4.01, che include attributi ed
    elementi di presentazione, che il W3C attende che siano gruadualmente
    eliminati mentre si sviluppa il supporto per i fogli di stile. Gli
    autori dovrebbero usare la DTD Rigorosa quando possibile, ma possono
    usare la DTD Transitoria quando occorre il supporto per attributi ed
    elementi di presentazione.

    HTML 4 include meccanismi per fogli di stile, linguaggi di script,
    oggetti incorporati, supporto migliorato per testo con direzione da
    destra a sinistra e mista, e miglioramenti ai moduli per una 
    maggiore accessibilità per le persone con disabilità.

          Prima stesura: $Date: 1999/12/24 22:40:35 $

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

    Ulteriori informazioni su HTML 4.01 sono disponibili presso:

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


    Le specifiche HTML 4.01 comprendono vincoli sintattici
    aggiuntivi che non possono essere espressi all'interno
    delle DTD.

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

    <!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 usato come un identificatore di sistema con l'identificatore
    pubblico consente al programma utente di scaricare la DTD e gli
    insiemi di entità necessari.

    Lo FPI per la DTD Rigorosa HTML 4.01 è:

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

    Tale versione della DTD Rigorosa è:

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

    Gli autori dovrebbero usare la DTD Rigorosa a meno che non abbiano
    bisogno di un controllo della presentazione per i programmi utente
    che non supportano (adeguatamente) i fogli di stile.

    Se state scrivendo un documento che include frame, usate il 
    seguente FPI:

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

    Tale versione della DTD organizzata a frame è:

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

    Usate i seguenti URI (relativi) per riferirvi alle
    DTD e alle definizioni di entità di queste specifiche:

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

-->

<!--================== Nomi importati ===================================-->
<!-- Commutatore di configurazione per documenti organizzati a frame -->
<!ENTITY % HTML.Frameset "IGNORE">

<!ENTITY % ContentType "CDATA"
    -- tipo di mezzo, come da [RFC2045]
    -->

<!ENTITY % ContentTypes "CDATA"
    -- elenco separato da virgole di tipi di mezzo, come da [RFC2045]
    -->

<!ENTITY % Charset "CDATA"
    -- una codifica di carattere, come da [RFC2045]
    -->

<!ENTITY % Charsets "CDATA"
    -- un elenco di codifiche di carattere separato da spazi, come da [RFC2045]
    -->

<!ENTITY % LanguageCode "NAME"
    -- un codice di lingua, come da [RFC1766]
    -->

<!ENTITY % Character "CDATA"
    -- un singolo carattere tratto da [ISO10646] 
    -->

<!ENTITY % LinkTypes "CDATA"
    -- elenco separato da spazi di tipi di collegamento
    -->

<!ENTITY % MediaDesc "CDATA"
    -- singolo descrittore di mezzo o elenco separato da virgole
    -->

<!ENTITY % URI "CDATA"
    -- un Identificatore Uniforme di Risorsa,
       si veda [URI]
    -->

<!ENTITY % Datetime "CDATA" -- informazioni su data e ora. Formato di data ISO -->


<!ENTITY % Script "CDATA" -- espressione di script -->

<!ENTITY % StyleSheet "CDATA" -- dati di foglio di stile -->

<!ENTITY % FrameTarget "CDATA" -- riproduce in questo frame -->


<!ENTITY % Text "CDATA">


<!-- Entità Parametro -->

<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- elementi di intestazione ripetibili -->

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

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

<!ENTITY % preformatted "PRE">

<!ENTITY % Color "CDATA" -- un colore che usa sRGB: #RRGGBB come valori Esa -->

<!-- Esistono anche 16 nomi di colore largamente conosciuti, con i loro valori 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  -- colore di sfondo di un documento --
  text        %Color;        #IMPLIED  -- colore del testo di un documento --
  link        %Color;        #IMPLIED  -- colore dei collegamenti --
  vlink       %Color;        #IMPLIED  -- colore dei collegamenti visitati --
  alink       %Color;        #IMPLIED  -- colore dei collegamenti selezionati --
  ">

<!--================ Entità carattere mnemoniche =========================-->

<!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;
<!--=================== Attributi generici ===============================-->

<!ENTITY % coreattrs
 "id          ID             #IMPLIED  -- id unico nell'ambito del documento --
  class       CDATA          #IMPLIED  -- elenco di classi separato da spazi --
  style       %StyleSheet;   #IMPLIED  -- informazioni di stile associate --
  title       %Text;         #IMPLIED  -- titolo di suggerimento --"
  >

<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED  -- codice di lingua --
  dir         (ltr|rtl)      #IMPLIED  -- direzione per testo debole/indeterminato --"
  >

<!ENTITY % events
 "onclick     %Script;       #IMPLIED  -- un pulsante di puntatore è stato cliccato --
  ondblclick  %Script;       #IMPLIED  -- un pulsante di puntatore è stato cliccato due volte --
  onmousedown %Script;       #IMPLIED  -- un pulsante di puntatore è stato premuto --
  onmouseup   %Script;       #IMPLIED  -- un pulsante di puntatore è stato rilasciato --
  onmouseover %Script;       #IMPLIED  -- un puntatore è stato mosso sopra --
  onmousemove %Script;       #IMPLIED  -- un puntatore è stato mosso all'interno --
  onmouseout  %Script;       #IMPLIED  -- un puntatore è stato mosso via --
  onkeypress  %Script;       #IMPLIED  -- un tasto è stato premuto e rilasciato --
  onkeydown   %Script;       #IMPLIED  -- un tasto è stato premuto --
  onkeyup     %Script;       #IMPLIED  -- un tasto è stato rilasciato --"
  >

<!-- Commutatore di Caratteristica Riservata -->
<!ENTITY % HTML.Reserved "IGNORE">

<!-- I seguenti attributi sono riservati per possibili usi futuri -->
<![ %HTML.Reserved; [
<!ENTITY % reserved
 "datasrc     %URI;          #IMPLIED  -- una Sorgente di Dati singola o tabellare --
  datafld     CDATA          #IMPLIED  -- il nome di proprietà o di colonna --
  dataformatas (plaintext|html) plaintext -- testo o html --"
  >
]]>

<!ENTITY % reserved "">

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

<!ENTITY % align "align (left|center|right|justify)  #IMPLIED"
                   -- left è predefinito per paragrafi ltr, right per quelli rtl --
  >

<!--=================== Marcatura del testo ==============================-->

<!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; copre gli elementi in riga o "a livello del testo" -->
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

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

<!ELEMENT (SUB|SUP) - - (%inline;)*    -- pedice, apice -->
<!ATTLIST (SUB|SUP)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT SPAN - - (%inline;)*         -- contenitore generico di lingua/stile -->
<!ATTLIST SPAN
  %attrs;                              -- %coreattrs, %i18n, %events --
  %reserved;                   -- riservato per un possibile uso futuro --
  >

<!ELEMENT BDO - - (%inline;)*          -- sovrascrive l'algoritmo bidirezionale -->
<!ATTLIST BDO
  %coreattrs;                          -- id, class, style, title --
  lang        %LanguageCode; #IMPLIED  -- codice di lingua --
  dir         (ltr|rtl)      #REQUIRED -- direzionalità --
  >

<!ELEMENT BASEFONT - O EMPTY           -- grandezza di base dei caratteri -->
<!ATTLIST BASEFONT
  id          ID             #IMPLIED  -- id unico nell'ambito del documento --
  size        CDATA          #REQUIRED -- grandezza di base dei caratteri per elementi FONT --
  color       %Color;        #IMPLIED  -- colore del testo --
  face        CDATA          #IMPLIED  -- elenco di nomi di carattere separato da virgole --
  >

<!ELEMENT FONT - - (%inline;)*         -- modifica locale del carattere -->
<!ATTLIST FONT
  %coreattrs;                          -- id, class, style, title --
  %i18n;                       -- lang, dir --
  size        CDATA          #IMPLIED  -- [+|-]nn es.: size="+1", size="4" --
  color       %Color;        #IMPLIED  -- colore del testo --
  face        CDATA          #IMPLIED  -- elenco di nomi di carattere separato da virgole --
  >

<!ELEMENT BR - O EMPTY                 -- interruzione di riga forzata -->
<!ATTLIST BR
  %coreattrs;                          -- id, class, style, title --
  clear       (left|all|right|none) none -- controllo del flusso di testo --
  >

<!--================== Modelli di contenuto per HTML =====================-->

<!--
    L'HTML possiede due modelli di contenuto fondamentali:

        %inline;     elementi a livello di carattere e stringhe di testo
        %block;      elementi a livello di blocco come ad es. paragrafi ed elenchi
-->

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

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

<!--=================== Corpo del Documento ==============================-->

<!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- corpo del documento -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- il documento è stato caricato --
  onunload        %Script;   #IMPLIED  -- il documento è stato rimosso --
  background      %URI;      #IMPLIED  -- riquadro di motivo grafico per sfondo di
                                          documento --
  %bodycolors;                         -- bgcolor, text, link, vlink, alink --
  >

<!ELEMENT ADDRESS - - ((%inline;)|P)*  -- informazioni sull'autore -->
<!ATTLIST ADDRESS
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT DIV - - (%flow;)*            -- contenitore generico di lingua/stile -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- allinea, allineamento del testo --
  %reserved;                           -- riservato per un possibile uso futuro --
  >

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

<!--================== L'elemento Ancora ================================-->

<!ENTITY % Shape "(rect|circle|poly|default)">
<!ENTITY % Coords "CDATA" -- elenco di lunghezze separato da virgole -->

<!ELEMENT A - - (%inline;)* -(A)       -- àncora -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- codifica del carattere di risorsa collegata --
  type        %ContentType;  #IMPLIED  -- avviso sul tipo di contenuto --
  name        CDATA          #IMPLIED  -- destinazione di collegamento denominata --
  href        %URI;          #IMPLIED  -- URI di risorsa collegata --
  hreflang    %LanguageCode; #IMPLIED  -- codice di lingua --
  target      %FrameTarget;  #IMPLIED  -- riproduce in questo frame --
  rel         %LinkTypes;    #IMPLIED  -- tipi di collegamento in avanti --
  rev         %LinkTypes;    #IMPLIED  -- tipi di collegamento all'indietro --
  accesskey   %Character;    #IMPLIED  -- carattere chiave per l'accessibilità --
  shape       %Shape;        rect      -- da usare con mappe immagine sul lato cliente --
  coords      %Coords;       #IMPLIED  -- da usare con mappe immagine sul lato server --
  tabindex    NUMBER         #IMPLIED  -- posizione nell'ordine di selezione --
  onfocus     %Script;       #IMPLIED  -- l'elemento ha ottenuto il fuoco --
  onblur      %Script;       #IMPLIED  -- l'elemento ha perduto il fuoco --
  >

<!--================== Mappe immagine sul lato cliente ===================-->

<!-- Queste possono essere posizionate nello stesso documento o raggruppate in
     un documento separato, benché ciò non sia ancora largamente supportato -->

<!ELEMENT MAP - - ((%block;) | AREA)+ -- mappa immagine sul lato cliente -->
<!ATTLIST MAP
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #REQUIRED -- per riferimento da usemap --
  >

<!ELEMENT AREA - O EMPTY               -- area di mappa immagine sul lato cliente -->
<!ATTLIST AREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  shape       %Shape;        rect      -- controlla l'interpretazione delle coordinate --
  coords      %Coords;       #IMPLIED  -- elenco di lunghezze separato da virgole --
  href        %URI;          #IMPLIED  -- URI di risorsa collegata --
  target      %FrameTarget;  #IMPLIED  -- riproduce in questo frame --
  nohref      (nohref)       #IMPLIED  -- questa regione non è attiva --
  alt         %Text;         #REQUIRED -- descrizione breve --
  tabindex    NUMBER         #IMPLIED  -- posizione nell'ordine di selezione --
  accesskey   %Character;    #IMPLIED  -- carattere chiave per l'accessibilità --
  onfocus     %Script;       #IMPLIED  -- l'elemento ha ottenuto il fuoco --
  onblur      %Script;       #IMPLIED  -- l'elemento ha perduto il fuoco --
  >

<!--================== L'elemento Link ===================================-->

<!--
  In linea di principio i valori di relazione possono essere usati:

   a) per barre di navigazione/menu specifici di un documento, quando usati 
      con l'elemento LINK nella testata del documento; es.: inizio, sommario,
      precedente, successivo, indice, fine, aiuto
   b) per richiamare un foglio di stile separato (rel=stylesheet)
   c) per creare un collegamento ad uno script (rel=script)
   d) da fogli di stile per controllare come collezioni di nodi html
      sono riprodotti all'interno di documenti stampati
   e) per creare un collegamento ad una versione stampabile di questo documento
      es: una versione postscript o pdf (rel=alternate media=print)
-->

<!ELEMENT LINK - O EMPTY               -- un collegamento indipendente dal mezzo -->
<!ATTLIST LINK
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- codifica del carattere di risorsa collegata --
  href        %URI;          #IMPLIED  -- URI di risorsa collegata --
  hreflang    %LanguageCode; #IMPLIED  -- codice di lingua --
  type        %ContentType;  #IMPLIED  -- avviso sul tipo di contenuto --
  rel         %LinkTypes;    #IMPLIED  -- tipi di collegamento in avanti --
  rev         %LinkTypes;    #IMPLIED  -- tipi di collegamento all'indietro --
  media       %MediaDesc;    #IMPLIED  -- per la riproduzione con questi media --
  target      %FrameTarget;  #IMPLIED  -- riproduce in questo frame --
  >

<!--=================== Immagini =========================================-->

<!-- Lunghezza definita in DTD Rigorosa per cellpadding/cellspacing -->
<!ENTITY % Length "CDATA" -- nn per pixel o nn% per lunghezza percentuale -->
<!ENTITY % MultiLength "CDATA" -- pixel, percentuale o relativa -->

<![ %HTML.Frameset; [
<!ENTITY % MultiLengths "CDATA" -- elenco separato da virgole di MultiLength -->
]]>

<!ENTITY % Pixels "CDATA" -- intero rappresentante una lunghezza in pixel -->


<!-- Per evitare problemi con i PU solo testuali, come pure
   per rendere il contenuto dell'immagine comprensibile e navigabile
   agli utenti di PU non visuali, occorre fornire una descrizione
   con ALT ed evitare le mappe immagine sul lato server -->
<!ELEMENT IMG - O EMPTY                -- Immagine incorporata -->
<!ATTLIST IMG
  %attrs;                              -- %coreattrs, %i18n, %events --
  src         %URI;          #REQUIRED -- URI di immagine da incorporare --
  alt         %Text;         #REQUIRED -- descrizione breve --
  longdesc    %URI;          #IMPLIED  -- collegamento ad una descrizione lunga
                                          (integra alt) --
  name        CDATA          #IMPLIED  -- nome di immagine per script --
  height      %Length;       #IMPLIED  -- sovrascrive l'altezza --
  width       %Length;       #IMPLIED  -- sovrascrive la larghezza --
  usemap      %URI;          #IMPLIED  -- da usare con una mappa immagine sul lato cliente --
  ismap       (ismap)        #IMPLIED  -- da usare con una mappa immagine sul lato server --
  align       %IAlign;       #IMPLIED  -- allineamento verticale o orizzontale --
  border      %Pixels;       #IMPLIED  -- ampiezza del bordo di collegamento --
  hspace      %Pixels;       #IMPLIED  -- margine interno orizzontale --
  vspace      %Pixels;       #IMPLIED  -- margine interno verticale --
  >

<!-- USEMAP punta ad un elemento MAP che può essere in questo documento o in un
  documento esterno, benché la seconda opzione non sia sufficientemente supportata -->

<!--==================== OBJECT ======================================-->
<!--
  OBJECT è usato per incorporare oggetti come parte di pagine HTML.
  Gli elementi PARAM dovrebbero avere la precedenza su altro contenuto.
  Dettagli tecnici del modello di contenuto misto SGML impediscono di
  specificare ciò formalmente ...
-->

<!ELEMENT OBJECT - - (PARAM | %flow;)*
 -- oggetto generico incorporato -->
<!ATTLIST OBJECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  declare     (declare)      #IMPLIED  -- per dichiarare ma non istanziare l'oggetto --
  classid     %URI;          #IMPLIED  -- identifica un'implementazione --
  codebase    %URI;          #IMPLIED  -- URI di base per classid, data, archive --
  data        %URI;          #IMPLIED  -- riferimento a dati di oggetto --
  type        %ContentType;  #IMPLIED  -- tipo di contenuto per dati --
  codetype    %ContentType;  #IMPLIED  -- tipo di contenuto per codice --
  archive     CDATA          #IMPLIED  -- elenco separato da spazi di URI --
  standby     %Text;         #IMPLIED  -- messaggio da mostrare durante il caricamento --
  height      %Length;       #IMPLIED  -- sovrascrive l'altezza --
  width       %Length;       #IMPLIED  -- sovrascrive la larghezza --
  usemap      %URI;          #IMPLIED  -- da usare con mappe immagine sul lato cliente --
  name        CDATA          #IMPLIED  -- inoltra come parte di un modulo --
  tabindex    NUMBER         #IMPLIED  -- posizione in ordine di selezione --
  align       %IAlign;       #IMPLIED  -- allineamento orizzontale o verticale --
  border      %Pixels;       #IMPLIED  -- ampiezza del bordo di collegamento --
  hspace      %Pixels;       #IMPLIED  -- margine interno orizzontale --
  vspace      %Pixels;       #IMPLIED  -- margine interno verticale --
  %reserved;                           -- riservato per un possibile uso futuro --
  >

<!ELEMENT PARAM - O EMPTY              -- valore di proprietà denominata -->
<!ATTLIST PARAM
  id          ID             #IMPLIED  -- id unico nell'ambito del documento --
  name        CDATA          #REQUIRED -- nome di proprietà --
  value       CDATA          #IMPLIED  -- valore di proprietà --
  valuetype   (DATA|REF|OBJECT) DATA   -- Come interpretare un valore --
  type        %ContentType;  #IMPLIED  -- tipo di contenuto per value
                                          quando valuetype=ref --
  >

<!--=================== APPLET Java ==================================-->
<!--
  Uno tra gli attributi code o object deve essere presente.
  Inserite gli elementi PARAM prima di altro contenuto.
-->
<!ELEMENT APPLET - - (PARAM | %flow;)* -- applet Java -->
<!ATTLIST APPLET
  %coreattrs;                          -- id, class, style, title --
  codebase    %URI;          #IMPLIED  -- URI di base facoltativo per applet --
  archive     CDATA          #IMPLIED  -- elenco di archivi separato da virgole --
  code        CDATA          #IMPLIED  -- file class di applet --
  object      CDATA          #IMPLIED  -- file di applet serializzato --
  alt         %Text;         #IMPLIED  -- descrizione breve --
  name        CDATA          #IMPLIED  -- permette agli applet di trovarsi reciprocamente --
  width       %Length;       #REQUIRED -- larghezza iniziale --
  height      %Length;       #REQUIRED -- altezza iniziale --
  align       %IAlign;       #IMPLIED  -- allineamento orizzontale o verticale --
  hspace      %Pixels;       #IMPLIED  -- margine interno orizzontale --
  vspace      %Pixels;       #IMPLIED  -- margine interno verticale --
  >

<!--=================== Linea orizzontale ================================-->

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

<!--=================== Paragrafi ========================================-->

<!ELEMENT P - O (%inline;)*            -- paragrafo -->
<!ATTLIST P
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- allinea, allineamento del testo --
  >

<!--=================== Intestazioni =====================================-->

<!--
  Esistono sei livelli di intestazione, da H1 (il più importante)
  fino ad H6 (il meno importante).
-->

<!ELEMENT (%heading;)  - - (%inline;)* -- intestazione -->
<!ATTLIST (%heading;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- allinea, allineamento del testo --
  >

<!--=================== Testo preformattato ==============================-->

<!-- esclude la marcatura per le immagini e cambiamenti nella grandezza dei caratteri -->
<!ENTITY % pre.exclusion "IMG|OBJECT|APPLET|BIG|SMALL|SUB|SUP|FONT|BASEFONT">

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

<!--===================== Citazioni incorporate ==========================-->

<!ELEMENT Q - - (%inline;)*            -- breve citazione incorporata -->
<!ATTLIST Q
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- URI per documento sorgente o msg --
  >

<!--=================== Citazioni del tipo a blocco ======================-->

<!ELEMENT BLOCKQUOTE - - (%flow;)*     -- citazione lunga -->
<!ATTLIST BLOCKQUOTE
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- URI per documento sorgente o msg --
  >

<!--=================== Testo inserito/cancellato ========================-->


<!-- INS/DEL sono usati per aggiunte su BODY -->
<!ELEMENT (INS|DEL) - - (%flow;)*      -- testo inserito, testo cancellato -->
<!ATTLIST (INS|DEL)
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- info sul motivo del cambiamento --
  datetime    %Datetime;     #IMPLIED  -- data e ora della modifica --
  >

<!--=================== Elenchi ==========================================-->

<!-- elenchi di definizioni - DT per il termine, DD per la sua definizione -->

<!ELEMENT DL - - (DT|DD)+              -- elenco di definizioni -->
<!ATTLIST DL
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED  -- spaziatura ridotta tra le voci --
  >

<!ELEMENT DT - O (%inline;)*           -- termine della definizione -->
<!ELEMENT DD - O (%flow;)*             -- descrizione della definizione -->
<!ATTLIST (DT|DD)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!-- Elenchi ordinati (OL) Stile di numerazione

    1   numeri arabi        1, 2, 3, ...
    a   alfab. minuscoli    a, b, c, ...
    A   alfab. maiuscoli    A, B, C, ...
    i   romani minuscoli    i, ii, iii, ...
    I   romani maiuscoli    I, II, III, ...

    Lo stile è applicato al numero nella sequenza, che per impostazione
    predefinita è riportato ad 1 per la prima voce di un elenco ordinato.

    Ciò non può essere espresso direttamente in SGML a causa dell'incrociarsi
    dei casi.
-->

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

<!ELEMENT OL - - (LI)+                 -- elenco ordinato -->
<!ATTLIST OL
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %OLStyle;      #IMPLIED  -- stile di numerazione --
  compact     (compact)      #IMPLIED  -- spaziatura ridotta tra le voci --
  start       NUMBER         #IMPLIED  -- numero iniziale della sequenza --
  >

<!-- Elenchi non ordinati (UL) stili per i pallini -->
<!ENTITY % ULStyle "(disc|square|circle)">

<!ELEMENT UL - - (LI)+                 -- elenco non ordinato -->
<!ATTLIST UL
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %ULStyle;      #IMPLIED  -- stile del pallino --
  compact     (compact)      #IMPLIED  -- spaziatura ridotta tra le voci --
  >

<!ELEMENT (DIR|MENU) - - (LI)+ -(%block;) -- elenco di directory, elenco di menu -->
<!ATTLIST DIR
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED -- spaziatura ridotta tra le voci --
  >
<!ATTLIST MENU
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED -- spaziatura ridotta tra le voci --
  >

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

<!ELEMENT LI - O (%flow;)*             -- voce di elenco -->
<!ATTLIST LI
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %LIStyle;      #IMPLIED  -- stile della voce di elenco --
  value       NUMBER         #IMPLIED  -- reimposta il numero nella sequenza --
  >

<!--================ Moduli ==============================================-->
<!ELEMENT FORM - - (%flow;)* -(FORM)   -- modulo interattivo -->
<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- gestore di moduli sul lato server --
  method      (GET|POST)     GET       -- metodo HTTP usato per inoltrare il modulo --
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  accept      %ContentTypes; #IMPLIED  -- elenco di tipi MIME per l'invio di file --
  name        CDATA          #IMPLIED  -- nome di modulo per script --
  onsubmit    %Script;       #IMPLIED  -- il modulo è stato inoltrato --
  onreset     %Script;       #IMPLIED  -- il modulo è stato riportato alla condizione iniziale --
  target      %FrameTarget;  #IMPLIED  -- riproduce in questo frame --
  accept-charset %Charsets;  #IMPLIED  -- elenco di insiemi di caratteri supportati --
  >

<!-- Ciascuna etichetta non deve contenere più di UN SOLO campo -->
<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- etichetta di testo per campo di modulo -->
<!ATTLIST LABEL
  %attrs;                              -- %coreattrs, %i18n, %events --
  for         IDREF          #IMPLIED  -- corrisponde al valore ID del campo --
  accesskey   %Character;    #IMPLIED  -- carattere chiave per l'accessibilità --
  onfocus     %Script;       #IMPLIED  -- l'elemento ha ottenuto il fuoco --
  onblur      %Script;       #IMPLIED  -- l'elemento ha perduto il fuoco --
  >

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

<!-- nome di attributo obbligatorio per tutti tranne che per submit e reset -->
<!ELEMENT INPUT - O EMPTY              -- controllo di modulo -->
<!ATTLIST INPUT
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- che tipo di arnese è necessario --
  name        CDATA          #IMPLIED  -- da inoltrare come parte di un modulo --
  value       CDATA          #IMPLIED  -- da specificare per radiocomandi e caselle di spunta --
  checked     (checked)      #IMPLIED  -- per radiocomandi e caselle di spunta --
  disabled    (disabled)     #IMPLIED  -- non disponibile in questo contesto --
  readonly    (readonly)     #IMPLIED  -- per testo e codice segreto --
  size        CDATA          #IMPLIED  -- specifico di ogni tipo di campo --
  maxlength   NUMBER         #IMPLIED  -- massimo numero di caratteri per campi di testo --
  src         %URI;          #IMPLIED  -- per campi con immagini --
  alt         CDATA          #IMPLIED  -- descrizione breve --
  usemap      %URI;          #IMPLIED  -- da usare con mappe immagine sul lato cliente --
  ismap       (ismap)        #IMPLIED  -- da usare con mappe immagine sul lato server --
  tabindex    NUMBER         #IMPLIED  -- posizione in ordine di selezione --
  accesskey   %Character;    #IMPLIED  -- carattere chiave per l'accessibilità --
  onfocus     %Script;       #IMPLIED  -- l'elemento ha ottenuto il fuoco --
  onblur      %Script;       #IMPLIED  -- l'elemento ha perduto il fuoco --
  onselect    %Script;       #IMPLIED  -- del testo è stato selezionato --
  onchange    %Script;       #IMPLIED  -- il valore dell'elemento è stato cambiato --
  accept      %ContentTypes; #IMPLIED  -- elenco di tipi MIME per l'invio di file --
  align       %IAlign;       #IMPLIED  -- allineamento orizzontale o verticale --
  %reserved;                           -- riservato per un possibile uso futuro --
  >

<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- selettore di alternative -->
<!ATTLIST SELECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED  -- nome di campo --
  size        NUMBER         #IMPLIED  -- righe visibili --
  multiple    (multiple)     #IMPLIED  -- la selezione singola è predefinita --
  disabled    (disabled)     #IMPLIED  -- non disponibile in questo contesto --
  tabindex    NUMBER         #IMPLIED  -- posizione in ordine di selezione --
  onfocus     %Script;       #IMPLIED  -- l'elemento ha ottenuto il fuoco --
  onblur      %Script;       #IMPLIED  -- l'elemento ha perduto il fuoco --
  onchange    %Script;       #IMPLIED  -- il valore dell'elemento è stato cambiato --
  %reserved;                           -- riservato per un possibile uso futuro --
  >

<!ELEMENT OPTGROUP - - (OPTION)+ -- gruppo di opzioni -->
<!ATTLIST OPTGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --
  disabled    (disabled)     #IMPLIED  -- non disponibile in questo contesto --
  label       %Text;         #REQUIRED -- per l'uso in menu gerarchici --
  >

<!ELEMENT OPTION - O (#PCDATA)         -- scelta selezionabile -->
<!ATTLIST OPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  selected    (selected)     #IMPLIED
  disabled    (disabled)     #IMPLIED  -- non disponibile in questo contesto --
  label       %Text;         #IMPLIED  -- per l'uso in menu gerarchici --
  value       CDATA          #IMPLIED  -- assume per difetto il contenuto dell'elemento --
  >

<!ELEMENT TEXTAREA - - (#PCDATA)       -- campo di testo multiriga -->
<!ATTLIST TEXTAREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED
  rows        NUMBER         #REQUIRED
  cols        NUMBER         #REQUIRED
  disabled    (disabled)     #IMPLIED  -- non disponibile in questo contesto --
  readonly    (readonly)     #IMPLIED
  tabindex    NUMBER         #IMPLIED  -- posizione nell'ordine di selezione --
  accesskey   %Character;    #IMPLIED  -- carattere chiave per l'accessibilità --
  onfocus     %Script;       #IMPLIED  -- l'elemento ha ottenuto il fuoco --
  onblur      %Script;       #IMPLIED  -- l'elemento ha perduto il fuoco --
  onselect    %Script;       #IMPLIED  -- del testo è stato selezionato --
  onchange    %Script;       #IMPLIED  -- il valore dell'elemento è stato cambiato --
  %reserved;                           -- riservato per un possibile uso futuro --
  >

<!--
  #PCDATA è per risolvere il problema del contenuto misto,
  in base alle specifiche ivi è consentito soltanto lo spazio bianco!
 -->
<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- gruppo di controlli di modulo -->
<!ATTLIST FIELDSET
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT LEGEND - - (%inline;)*       -- didascalia per un gruppo di controlli -->
<!ENTITY % LAlign "(top|bottom|left|right)">

<!ATTLIST LEGEND
  %attrs;                              -- %coreattrs, %i18n, %events --
  accesskey   %Character;    #IMPLIED  -- carattere chiave per l'accessibilità --
  align       %LAlign;       #IMPLIED  -- relativo ad un insieme di campi --
  >

<!ELEMENT BUTTON - -
     (%flow;)* -(A|%formctrl;|FORM|ISINDEX|FIELDSET|IFRAME)
     -- pulsante di comando -->
<!ATTLIST BUTTON
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED
  value       CDATA          #IMPLIED  -- inviato al server con l'inoltro --
  type        (button|submit|reset) submit -- da usare come pulsante di un modulo --
  disabled    (disabled)     #IMPLIED  -- non disponibile in questo contesto --
  tabindex    NUMBER         #IMPLIED  -- posizione nell'ordine di selezione --
  accesskey   %Character;    #IMPLIED  -- carattere chiave per l'accessibilità --
  onfocus     %Script;       #IMPLIED  -- l'elemento ha ottenuto il fuoco --
  onblur      %Script;       #IMPLIED  -- l'elemento ha perduto il fuoco --
  %reserved;                           -- riservato per un possibile uso futuro --
  >

<!--======================= Tabelle ======================================-->

<!-- Standard IETF HTML per tabelle, si veda [RFC1942] -->

<!--
 L'attributo BORDER imposta lo spessore del bordo intorno alla tabella.
 L'unità di misura predefinita sono i pixel dello schermo.
 
 L'attributo FRAME specifica quale parte del bordo che circonda la tabella
 dovrebbe essere riprodotta. I valori non sono gli stessi di CALS per
 evitare un conflitto di nomi con l'attributo VALIGN.
 
 Il valore "border" è incluso per ragioni di compatibilità all'indietro con
 <TABLE BORDER>, che cede il posto a frame=border e border=implicito
 Per <TABLE BORDER=1> si ha border=1 e frame=implicito. In tal caso,
 è appropriato trattare ciò come frame=border per mantenere la compatibilità
 all'indietro con i browser in campo.
-->
<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">

<!--
 L'attributo RULES definisce quali filetti tracciare tra le celle:

 Se RULES è assente si assume allora:
     "none" se BORDER è assente o BORDER=0, altrimenti "all"
-->

<!ENTITY % TRules "(none | groups | rows | cols | all)">
  
<!-- posizionamento orizzontale di una tabella relativamente al documento -->
<!ENTITY % TAlign "(left|center|right)">

<!-- attributi di allineamento orizzontale per contenuti di cella -->
<!ENTITY % cellhalign
  "align      (left|center|right|justify|char) #IMPLIED
   char       %Character;    #IMPLIED  -- carattere di allineamento, es.: char=':' --
   charoff    %Length;       #IMPLIED  -- spostamento per carattere di allineamento --"
  >

<!-- attributi di allineamento verticale per contenuti di cella -->
<!ENTITY % cellvalign
  "valign     (top|middle|bottom|baseline) #IMPLIED"
  >

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- didascalia di tabella -->
<!ELEMENT THEAD    - O (TR)+           -- intestazione di tabella -->
<!ELEMENT TFOOT    - O (TR)+           -- piede di tabella -->
<!ELEMENT TBODY    O O (TR)+           -- corpo di tabella -->
<!ELEMENT COLGROUP - O (COL)*          -- gruppo di colonne di tabella -->
<!ELEMENT COL      - O EMPTY           -- colonna di tabella -->
<!ELEMENT TR       - O (TH|TD)+        -- riga di tabella -->
<!ELEMENT (TH|TD)  - O (%flow;)*       -- cella d'intestazione di tabella, cella di dati di tabella -->

<!ATTLIST TABLE                        -- elemento di tabella --
  %attrs;                              -- %coreattrs, %i18n, %events --
  summary     %Text;         #IMPLIED  -- scopo/struttura per riproduzione vocale --
  width       %Length;       #IMPLIED  -- larghezza di tabella --
  border      %Pixels;       #IMPLIED  -- controlla la larghezza del bordo intorno alla tabella --
  frame       %TFrame;       #IMPLIED  -- quale parte del bordo riprodurre --
  rules       %TRules;       #IMPLIED  -- filetti tra righe e colonne --
  cellspacing %Length;       #IMPLIED  -- spaziatura tra le celle --
  cellpadding %Length;       #IMPLIED  -- spaziatura all'interno delle celle --
  align       %TAlign;       #IMPLIED  -- posizione della tabella rispetto alla finestra --
  bgcolor     %Color;        #IMPLIED  -- colore di sfondo delle celle --
  %reserved;                           -- riservato per un possibile uso futuro --
  datapagesize CDATA         #IMPLIED  -- riservato per un possibile uso futuro --
  >

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

<!ATTLIST CAPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  align       %CAlign;       #IMPLIED  -- relativo alla tabella --
  >

<!--
 COLGROUP raggruppa un insieme di elementi COL. Ciò consente di raggruppare
 insieme una serie di colonne semanticamente correlate.
-->
<!ATTLIST COLGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --
  span        NUMBER         1         -- numero predefinito di colonne raggruppate --
  width       %MultiLength;  #IMPLIED  -- larghezza predefinita delle colonne racchiuse --
  %cellhalign;                         -- allineamento orizzontale nelle celle --
  %cellvalign;                         -- allineamento verticale nelle celle --
  >

<!--
 Gli elementi COL definiscono le proprietà di allineamento
 per le celle in una o più colonne.
 
 L'attributo WIDTH specifica la larghezza delle colonne, es.:

     width=64        larghezza in pixel a schermo
     width=0.5*      larghezza relativa di 0,5

 L'attributo SPAN fa sì che gli attributi di un elemento
 COL si applichino a più di una colonna.
-->
<!ATTLIST COL                          -- gruppi di colonne e proprietà --
  %attrs;                              -- %coreattrs, %i18n, %events --
  span        NUMBER         1         -- gli attributi COL influenzano N colonne --
  width       %MultiLength;  #IMPLIED  -- definizione della larghezza di colonna --
  %cellhalign;                         -- allineamento orizzontale nelle celle --
  %cellvalign;                         -- allineamento verticale nelle celle --
  >

<!--
    Usate THEAD per duplicare le intestazioni sulle pagine
    successive quando una tabella è interrotta dai margini
    della pagina, o per avere intestazioni statiche quando
    le sezioni TBODY sono riprodotte all'interno di riquadri
    con scorrimento.
	
    Usate TFOOT per duplicare i pie' di pagina sulle pagine
    successive quando una tabella è interrotta dai margini
    della pagina, o per avere pie' di pagina statici quando
    le sezioni TBODY sono riprodotte all'interno di riquadri
    con scorrimento.
	
    Usate più sezioni TBODY quando servono dei filetti per
    separare gruppi di righe di tabella.
-->
<!ATTLIST (THEAD|TBODY|TFOOT)          -- sezione di tabella --
  %attrs;                              -- %coreattrs, %i18n, %events --
  %cellhalign;                         -- allineamento orizzontale nelle celle --
  %cellvalign;                         -- allineamento verticale nelle celle --
  >

<!ATTLIST TR                           -- riga di tabella --
  %attrs;                              -- %coreattrs, %i18n, %events --
  %cellhalign;                         -- allineamento orizzontale nelle celle --
  %cellvalign;                         -- allineamento verticale nelle celle --
  bgcolor     %Color;        #IMPLIED  -- colore di sfondo della riga --
  >



<!-- Scope è più semplice dell'attributo headers per le comuni tabelle -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">

<!-- TH è per intestazioni, TD per dati, ma per celle che svolgono entrambe le funzioni usate TD -->
<!ATTLIST (TH|TD)                      -- cella d'intestazione o di dati --
  %attrs;                              -- %coreattrs, %i18n, %events --
  abbr        %Text;         #IMPLIED  -- abbreviazione per cella d'intestazione --
  axis        CDATA          #IMPLIED  -- elenco di intestazioni correlate separato da virgole --
  headers     IDREFS         #IMPLIED  -- elenco di id per celle d'intestazione --
  scope       %Scope;        #IMPLIED  -- àmbito coperto da celle d'intestazione --
  rowspan     NUMBER         1         -- numero di righe su cui si estende una cella --
  colspan     NUMBER         1         -- numero di colonne su cui si estende una cella --
  %cellhalign;                         -- allineamento orizzontale nelle celle --
  %cellvalign;                         -- allineamento verticale nelle celle --
  nowrap      (nowrap)       #IMPLIED  -- sopprime la suddivisione delle righe lunghe --
  bgcolor     %Color;        #IMPLIED  -- colore di sfondo della cella --
  width       %Length;       #IMPLIED  -- larghezza di cella --
  height      %Length;       #IMPLIED  -- altezza di cella --
  >

<!--================== Frame nei documenti ===============================-->

<!--
  Il modello di contenuto per i documenti HTML dipende da se HEAD sia seguito
  da un elemento FRAMESET o da un elemento BODY. La diffusa omissione
  del marcatore iniziale BODY rende irragionevole definire il modello di 
  contenuto senza l'uso di una sezione contrassegnata.
-->

<![ %HTML.Frameset; [
<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- suddivisione di finestra -->
<!ATTLIST FRAMESET
  %coreattrs;                          -- id, class, style, title --
  rows        %MultiLengths; #IMPLIED  -- elenco di lunghezze,
                                          predefinito: 100% (1 riga) --
  cols        %MultiLengths; #IMPLIED  -- elenco di lunghezze,
                                          predefinito: 100% (1 colonna) --
  onload      %Script;       #IMPLIED  -- tutti i frame sono stati caricati  -- 
  onunload    %Script;       #IMPLIED  -- tutti i frame sono stati rimossi -- 
  >
]]>

<![ %HTML.Frameset; [
<!-- i nomi di frame riservati cominciano con "_" altrimenti cominciano con una lettera -->
<!ELEMENT FRAME - O EMPTY              -- sottofinestra -->
<!ATTLIST FRAME
  %coreattrs;                          -- id, class, style, title --
  longdesc    %URI;          #IMPLIED  -- collegamento ad una descrizione lunga
                                          (integra title) --
  name        CDATA          #IMPLIED  -- nome di frame per identificare la destinazione --
  src         %URI;          #IMPLIED  -- sorgente del contenuto di frame --
  frameborder (1|0)          1         -- occorrono bordi per il frame? --
  marginwidth %Pixels;       #IMPLIED  -- larghezza dei margini in pixel --
  marginheight %Pixels;      #IMPLIED  -- altezza dei margini in pixel --
  noresize    (noresize)     #IMPLIED  -- permettere agli utenti di ridimensionare i frame? --
  scrolling   (yes|no|auto)  auto      -- barre di scorrimento oppure no --
  >
]]>

<!ELEMENT IFRAME - - (%flow;)*         -- sottofinestra incorporata -->
<!ATTLIST IFRAME
  %coreattrs;                          -- id, class, style, title --
  longdesc    %URI;          #IMPLIED  -- collegamento ad una descrizione lunga
                                          (integra title) --
  name        CDATA          #IMPLIED  -- nome di frame per identificare la destinazione --
  src         %URI;          #IMPLIED  -- sorgente del contenuto di frame --
  frameborder (1|0)          1         -- occorrono bordi per il frame? --
  marginwidth %Pixels;       #IMPLIED  -- larghezza dei margini in pixel --
  marginheight %Pixels;      #IMPLIED  -- altezza dei margini in pixel --
  scrolling   (yes|no|auto)  auto      -- barre di scorrimento oppure no --
  align       %IAlign;       #IMPLIED  -- allineamento orizzontale o verticale --
  height      %Length;       #IMPLIED  -- altezza di frame --
  width       %Length;       #IMPLIED  -- larghezza di frame --
  >

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

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

<!ELEMENT NOFRAMES - - %noframes.content;
 -- contenitore di contenuto alternativo per riproduzione non basata su frame -->
<!ATTLIST NOFRAMES
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================ Testata del documento ===============================-->
<!-- %head.misc; definito prima come "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- testata di documento -->
<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #IMPLIED  -- dizionario designato di metainformazioni --
  >

<!-- L'elemento TITLE non è considerato parte del flusso di testo.
       Esso dovrebbe essere mostrato per esempio come intestazione di una
       pagina o come titolo di una finestra. Uno ed un solo titolo è richiesto
       per un documento.
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- titolo di documento -->
<!ATTLIST TITLE %i18n>

<!ELEMENT ISINDEX - O EMPTY            -- prompt a riga singola -->
<!ATTLIST ISINDEX
  %coreattrs;                          -- id, class, style, title --
  %i18n;                               -- lang, dir --
  prompt      %Text;         #IMPLIED  -- messaggio di attesa immissione -->

<!ELEMENT BASE - O EMPTY               -- URI di base del documento -->
<!ATTLIST BASE
  href        %URI;          #IMPLIED  -- URI che funge da URI di base --
  target      %FrameTarget;  #IMPLIED  -- riproduce in questo frame --
  >

<!ELEMENT META - O EMPTY               -- metainformazioni generiche -->
<!ATTLIST META
  %i18n;                               -- lang, dir, da usare con il contenuto --
  http-equiv  NAME           #IMPLIED  -- nome di intestazione di risposta HTTP --
  name        NAME           #IMPLIED  -- nome di metainformazione --
  content     CDATA          #REQUIRED -- informazioni associate --
  scheme      CDATA          #IMPLIED  -- seleziona il genere di contenuto --
  >

<!ELEMENT STYLE - - %StyleSheet        -- informazioni di stile -->
<!ATTLIST STYLE
  %i18n;                               -- lang, dir, da usare con title --
  type        %ContentType;  #REQUIRED -- tipo di contenuto del linguaggio di stile --
  media       %MediaDesc;    #IMPLIED  -- progettato per l'uso con questi media --
  title       %Text;         #IMPLIED  -- titolo di suggerimento --
  >

<!ELEMENT SCRIPT - - %Script;          -- istruzioni di script -->
<!ATTLIST SCRIPT
  charset     %Charset;      #IMPLIED  -- codifica del carattere di risorsa collegata --
  type        %ContentType;  #REQUIRED -- tipo di contenuto del linguaggio di script --
  language    CDATA          #IMPLIED  -- nome del linguaggio di script predefinito --
  src         %URI;          #IMPLIED  -- URI per uno script esterno --
  defer       (defer)        #IMPLIED  -- i PU possono differire l'esecuzione di uno script --
  event       CDATA          #IMPLIED  -- riservato per un possibile uso futuro --
  for         %URI;          #IMPLIED  -- riservato per un possibile uso futuro --
  >

<!ELEMENT NOSCRIPT - - (%flow;)*
  -- contenitore di contenuto alternativo per riproduzione non basata su script -->
<!ATTLIST NOSCRIPT
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================ Struttura del Documento =============================-->
<!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;)    -- elemento radice del documento -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  %version;
  >