3. L'Abc dello structural markup language

I vecchi programmi a linguaggio di formattazione come Tex, Texinfo, e Troff utilizzavano il presentation markup. In questi sistemi, le istruzioni inserite nel codice riguardavano la disposizione e la visualizzazione fisica degli elementi del testo (i cambiamenti di font, le indentazioni e cose simili).

Il presentation markup era un linguaggio di formattazione adeguato fintanto che l'obiettivo era quello di stampare su un unico ambiente o tipologia di dispositivo di visualizzazione. Si incappa nei suoi limiti non appena si vuole formattare un documento in modo che (a) questo possa essere visualizzato su una più vasta gamma di dispositivi di output (stampanti, Web, ecc.) oppure (b) si voglia che il documento consenta la ricerca e l'indicizzazione basate sulla sua struttura logica (come vorreste fare se, ad esempio, decideste di inserirlo in un sistema ipertestuale).

Per essere in grado di fornire queste capacità, bisogna utilizzare un sistema di tipo structural markup. Con lo "structural markup" non si descrive il layout fisico del documento, bensì le proprietà logiche delle sue singole parti.

Un esempio: in un linguaggio di tipo presentation markup, se volete enfatizzare una parola, dovrete istruire il formattatore per renderla in grassetto. In troff(1) dovreste scrivere qualcosa del genere:


All your base
.B are
belong to us!

In un linguaggio di tipo structural markup, quello che direste al formattatore è semplicemente di evidenziare la parola:


All your base <emphasis>are</emphasis> belong to us!

I comandi "<emphasis>" e "</emphasis>" della riga sopra sono chiamati markup tags o, semplicemente, tags [NdT: in italiano "marcatori"]. Queste sono le istruzioni per il vostro programma di formattazione.

In un linguaggio structural markup, la formattazione finale del documento viene controllata da un foglio di stile [NdT: in inglese stylesheet ]. È il foglio di stile che dirà al vostro programma di formattazione "visualizza gli emphasis con il carattere grassetto". Un vantaggio del linguaggio "structural markup" è che cambiando il foglio di stile cambiate la visualizzazione totale del documento (per usare font diversi, ad esempio) senza dover mettere mano ad ogni singola istruzione (come .B nell'esempio precedente) nel codice del documento.