|
|
|
SGML (Standard Generalized Markup Language) è un metalinguaggio per definire linguaggi di tipo markup, ossia linguaggi basati su marcatori. L'HTML (HyperText Markup Language) è un esempio di linguaggio derivato da SGML.
SGML fornisce una modalità di codifica dei documenti ipertestuali in modo da renderli indipendenti dalla macchina e dalla loro piattaforma software (purchè tali software siano compatibili con SGML) affinchè sia possibile leggere documenti creati da altri anche se questi sono stati realizzati con applicativi diversi dal nostro.
La storia di SGML si articola in un ventennio tra gli anni '60 e '80 fino a portarlo all'adozione ed approvazione da parte dell' International Standards Organization (ISO) del 1986 (ISO 8879).
|
|
|
Lo standard per la creazione dei documenti nacque soprattutto per due motivi: la necessità di avere una bassa quantità di informazioni sulla struttura del documento per minimizzare i tempi di trasmissione e la necessità di avere una codifica che fosse indipendente dalla piattaforma software implementata sulla macchina.
|
|
|
MARKUP DESCRITTIVO: SGML utilizza dei codici (tags) per la descrizione delle varie parti di un documento non preoccupandosi di come questo verrà poi rappresentato (lasciando la scelta delle modalità di rappresentazione totalmente al software che riprodurrà il testo) ma soltanto di specificare che il testo tra le due tags deve essere considerato come un'unità indivisibile.
Quindi si separa la rappresentazione della struttura del documento da tutte le istruzioni necessarie alla sua formattazione, permettendo a chi scrive un documento di concentrarsi soltanto sulla sua struttura e sul suo contenuto.
GERARCHIA CON INTERCONNESSIONI: Un documento SGML può essere formato in alcune sue parti da altri documenti già esistenti (ad esempio può essere necessario un riferimento ad uno di essi). Per evitare di riscrivere completamente un documento esistente, che andrà poi a costituire una parte del nuovo documento, SGML prevede che esso possa essere richiamato all'interno del nuovo documento (con un metodo simile a quello dell'istruzione INCLUDE del linguaggio C) così da evitarne la riscrittura.
Gli hyperlinks dell'HTML sono una evoluzione di tali interconnessioni
TAGS FLESSIBILI: Con SGML è possibile creare un proprio linguaggio, e quindi un proprio set di tags, la cui struttura riflette quella dei documenti che dobbiamo creare. Ogni linguaggio creato a partire da SGML utilizzerà la propria DTD (Document Type Definition), contenente il proprio set di tags necessario per la creazione dei propri documenti. La DTD definisce la sintassi del linguaggio, tutti gli attributi permessi per un particolare elemento, i dati che questo potrà contenere e le regole per il loro utilizzo.
DESCRIZIONE FORMALE DEI DOCUMENTI: La descrizione formale della struttura di un documento avviene mediante la sua DTD, che è richiesta per ogni linguaggio creato a partire da SGML. Essa definisce la sintassi di un linguaggio markup specificandone le convenzioni utilizzate nei tags e tutti i possibili markup, definendo il significato ed il contesto in cui possono essere usati.
LEGGIBILITA' DEI DOCUMENTI: Il markup descrittivo è separato dal testo da opportuni delimitatori di stringa (in HTML sono i simboli '<' e '>'). La struttura dei documenti SGML è quindi facilmente comprensibile, e risulta evidente come sia semplice trasportare un documento SGML da una piattaforma all'altra.
|
|
|
|
|
|
DOCUMENT TYPE DEFINITION – DTD: E' una descrizione formale della struttura di una particolare classe di documenti. Tipicamente le DTD sono usate per:
<!DOCTYPE PUBLIC HTML "-//IETF//DTD HTML 2.0//EN">
Infatti il riferimento alla DTD usata deve essere fatto con la dichiarazione SGML "DOCTYPE".
ELEMENTI DELLA DTD: Ogni elemento nella DTD viene realizzato sulla base della sua funzione nel documento SGML. I vari elementi formano un albero creato dalla combinazione di tutti gli elementi e dei loro corrispondenti data models.
La sintassi di un elemento comprende il tag di inizio contenente il nome (GI – generic identifier), il contenuto da visualizzare e la terminazione mediante un tag di chiusura ed eventualmente degli attributi che caratterizzano tali elementi.
|
|
|
ATTRIBUTI DEGLI ELEMENTI: Un attributo fornisce ad un elemento delle informazioni specifiche sul suo uso in un documento SGML, ossia fornisce una certa proprietà ad un elemento. I nomi degli attributi sono dichiarati nella DTD e sono opzionali per gli elementi a cui si riferiscono. Un nome di attributo può essere usato da più elementi diversi e, in ogni caso, darà informazioni specifiche per l'elemento a cui è associato e non comune agli altri. Ogni attributo ha un valore dichiarato che deve essere anch'esso definito nella DTD.
In SGML (e quindi anche in HTML) la sintassi per gli attributi segue le seguenti regole:
Breve discussione sul metalinguaggio SGML, sulle sue caratteristiche, sulla struttura dei documenti e su come poter creare una nuova Document Type Definition al fine di definire un nuovo linguaggio di tipo markup, con particolare attenzione al linguaggio HTML.
(http://telemat.det.unifi.it/book/Internet/Sgml/sgml1.htm)
Questo documento introduce il metalinguaggio SGML e discute su come, partendo da SGML, è nato HTML.
(http://www.w3.org/TR/1999/REC-html401-19991224/intro/sgmltut.html)
La storia di SGML.
(http://www.oasis-open.org/cover/sgmlhist0.html)