19 Informazioni di riferimento su HTML in SGML

Argomenti

  1. Validazione del documento
  2. Esempio di catalogo SGML

I seguenti paragrafi contengono la definizione formale in SGML dell'HTML 4.0. Questa include la dichiarazione SGML, la Definizione del Tipo di Documento (DTD), e la lista delle entità carattere, come pure un esempio di catalogo SGML.

Questi file sono anche disponibili in formato ASCII come sottoelencato:

DTD Rigorosa:
http://www.w3.org/TR/REC-html40/strict.dtd
DTD Transitoria:
http://www.w3.org/TR/REC-html40/loose.dtd
DTD basata su Frame:
http://www.w3.org/TR/REC-html40/frameset.dtd
Dichiarazione SGML:
http://www.w3.org/TR/REC-html40/HTML4.decl
File di definizione delle entità:
http://www.w3.org/TR/REC-html40/HTMLspecial.ent
http://www.w3.org/TR/REC-html40/HTMLsymbol.ent
http://www.w3.org/TR/REC-html40/HTMLlat1.ent
Un catalogo di esempio:
http://www.w3.org/TR/REC-html40/HTML4.cat

19.1 Validazione del documento

Molti autori usano un insieme limitato di browser per controllare i documenti che producono, assumendo che se i browser possono mostrare i loro documenti questi sono validi. Sfortunatamente, questa è una maniera veramente inefficace di verificare la validità di un documento precisamente perché i browser sono concepiti per far fronte a documenti invalidi mostrandoli come meglio possono per evitare di frustrare gli utenti.

Per una migliore validazione, dovreste controllare i vostri documenti usando un parser SGML (o "analizzatore SGML") quale nsgmls (consultare [SP]), per verificare che i documenti siano conformi alla DTD HTML 4.0. Se la dichirazione del tipo di documento del vostro documento include un URI ed il vostro parser SGML consente questo tipo di identificatore di sistema (o "system identifier"), rintraccerà la DTD direttamente. Altrimenti potete usare il seguente catalogo SGML di esempio. Questo presume che la DTD sia stata salvata come file "strict.dtd" e che le entità siano nei file "HTMLlat1.ent", "HTMLsymbol.ent" e "HTMLspecial.ent". In ogni caso, assicuratevi che il vostro parser SGML sia capace di gestire i caratteri Unicode. Consultare la documentazione del vostro programma di validazione per ulteriori dettagli.

Attenzione poiché una simile validazione, sebbene utile ed altamente consigliata non garantisce che un documento sia pienamente conforme alle specifiche HTML 4.0. Ciò perché un parser SGML si basa esclusivamente sulla DTD SGML fornitagli che non esprime tutti gli aspetti di un documento HTML 4.0 valido. Specificatamente, un parser SGML assicura che la sintassi, la struttura, la lista di elementi, ed i loro attributi siano validi. Ma per esempio, non può scoprire errori quali assegnare un valore invalido width come attributo di un elemento IMG (ad es.,"tipo" o "12.5"). Sebbene le specifiche limitino i valori per questo attributo ad un "numero intero che rappresenta una larghezza in pixel", la DTD prescrive solamente che sia CDATA, ciò di fatto consente qualsiasi valore. Solo un programma specifico potrebbe tener conto della specifica HTML 4.0 nella sua interezza.

Nonostante ciò, questo tipo di validazione è altamente raccomandato poiché permette l'individuazione di un ampio insieme di errori i quali rendono i documenti invalidi.

19.2 Esempio di catalogo SGML

Questo catalogo include la direttiva override per assicurare che il software analizzatore quale nsgmls usi gli identificatori pubblici in luogo degli identificatori di sistema. Ciò significa che l'utente non ha bisogno di essere connesso al Web mentre è in corso il recupero degli identificativi di sistema mediante URI.


OVERRIDE YES

PUBLIC "-//W3C//DTD HTML 4.0//EN" strict.dtd
PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" loose.dtd
PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" frameset.dtd
PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" HTMLlat1.ent
PUBLIC "-//W3C//ENTITIES Special//EN//HTML" HTMLspecial.ent
PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" HTMLsymbol.ent