Le seguenti sezioni contengono la definizione formale SGML di HTML 4. Esse includono la Dichiarazione SGML, la Definizione del Tipo di Documento (DTD) ed i Riferimenti ad entità carattere, nonché un esempio tipico di catalogo SGML.
Tali file sono anche disponibili in formato ASCII come elencato di seguito:
Molti autori si affidano ad un limitato insieme di browser per verificare i documenti che producono, assumendo che se quei browser possono riprodurre i loro documenti, essi sono validi. Sfortunatamente questo è un modo molto inefficace di verificare la validità di un documento, precisamente perché i browser sono progettati per cavarsela con documenti non validi, riproducendoli come possono per evitare di generare frustrazione negli utenti.
Per una migliore convalida, è preferibile controllare un documento per mezzo di un analizzatore SGML quale nsgmls (si veda [SP]), per verificare che i documenti HTML siano conformi alla DTD HTML 4. Se la dichiarazione del tipo di documento del vostro documento include un URI ed il vostro analizzatore SGML supporta questo tipo di identificatore di sistema, esso otterrà direttamente la DTD. Altrimenti potete utilizzare il seguente catalogo SGML campione. Esso assume che la DTD sia stata salvata nel file "strict.dtd" e che le entità si trovino nei file "HTMLlat1.ent", "HTMLsymbol.ent" e "HTMLspecial.ent". In ogni caso, assicuratevi che il vostro analizzatore SGML sia capace di gestire [ISO10646]. Esaminate la documentazione del vostro strumento di convalida per ulteriori dettagli.
Si consideri con attenzione che tale convalida, per quanto utile e fortemente raccomandata, non garantisce che un documento sia pienamente conforme alle specifiche HTML 4. Ciò perché un analizzatore SGML si basa unicamente sulla DTD SGML data, che non esprime tutti gli aspetti di un documento HTML 4 valido. In particolare, un analizzatore SGML garantisce che la sintassi, la struttura, l'elenco degli elementi e dei loro attributi siano validi. Ma, per esempio, non è in grado di scoprire errori quali l'impostazione dell'attributo width di un elemento IMG ad un valore non valido (cioè "pippo" o "12.5"). Benché le specifiche restringano il valore per questo attributo ad un "intero che rappresenta una lunghezza in pixel", la DTD definisce soltanto che esso sia CDATA, il che autorizza in realtà qualsiasi valore. Soltanto un programma specializzato potrebbe descrivere efficacemente le specifiche complete di HTML 4.
Nondimeno, questo tipo di convalida è ancora fortemente raccomandato, poiché consente di rilevare un'ampia gamma di errori in grado di invalidare i documenti.
Questo catalogo include le istruzioni di annullamento, per garantire che un software di elaborazione quale nsgmls utilizzi di preferenza identificatori pubblici in luogo di identificatori di sistema. Ciò significa che gli utenti non devono essere connessi al Web, per recuperare identificatori di sistema basati su URI.
OVERRIDE YES PUBLIC "-//W3C//DTD HTML 4.01//EN" strict.dtd PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" loose.dtd PUBLIC "-//W3C//DTD HTML 4.01 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