Introduzione ai CSS - I linguaggi di marcatura
Thursday 4 October 2007 Marco Bertoni, ultimo aggiornamento: Tuesday 19 August 2008.
I linguaggi di marcatura come HTML, XHTML o XML derivano dall'SGML (Standard Generalized Markup Language).
SGML è un metalinguaggio (un linguaggio, cioè, utilzzato per la creazione di altri linguaggi) e ha origini "antiche". Nel 1969 Charles Goldfarb, Edward Mosher, e Raymond Lorie, dipendenti IBM, inventarono il Generalized Markup Language come un mezzo per modificare, condividere e riutilizzare il testo elettronico. Nel 1986 SGML, derivato dal GML di Goldfarb, è adottato dalla International Standard Organization.
SGML, quindi divenne lo standard per l'interscambio e la pubblicazione di documenti strutturati, liberando dai formati proprietari.
Ogni linguaggio definito in SGML è chiamato "applicazione SGML". HTML, per esempio, è a tutti gli effetti un'applicazione SGML.
Con SGML compare la DTD (Document Type Definition, definizione del tipo di documento), di cui parleremo approfonditamente in seguito.
La presentazione dei documenti, invece, è gestita con DSSSL (Document Style Semantics and Specification Language) l'antenato dei moderni CSS.
Ecco un'esempio di codice DSSSL:
- (element P (make paragraph
- font-family-name: "Times New Roman"
- font-size: 12pt
- line-spacing: 13.2pt
- space-before: 6pt
- start-indent: 6pt
- quadding: 'start))
E' facile notare la somiglianza con la sintassi CSS.
SGML ha, però, un difetto: la sua complessità.
HTML
HTML è un'applicazione SGML nata per la strutturazione del testo. Ha un insieme predefinito di marcatori non modificabile (per esempio P, per i paragrafi, H1 per i titoli di primo livello ecc.) e alcuni di essi possono essere presentazionali (come il famigerato FONT). Gli User Agent (qualsiasi programma che interpreta un documento scritto in un dato linguaggio) ammettono scorrettezze formali.
La presentazione, quando non incorporata negli elementi HTML, può essere gestita utilizzando CSS.
Il difetto di HTML è la sua limitatezza, oltre alla mancata netta separazione tra contenuto strutturato e presentazione.
XML
XML è un sottoinsieme semplificato di SGML. Questo significa che anch'esso è un metalinguaggio. Non ha un insieme predefinito di marcatori ed è utilizzato per descrivere e strutturare dati. La sintassi di XML è rigida: i documenti devono essere ben formati (sintatticamente corretti) e validi (conformi alla DTD o allo Schema XML).
La presentazione è gestita con la famiglia di linguaggi XSL.
XHTML
E' una ridefinizione di HTML 4 come applicazione XML. Questo comporta l'obbligo di correttezza formale e validità. Con XHTML si ottiene finalmente la separazione del contenuto strutturato dalla presentazione, gestita con CSS.
Delle differenze tra HTML e XHTML parleremo estesamente in seguito.

