ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Eshop | Java | Tools | Web | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

XML PARSING IN JAVA
Siti Web con XML e Java
Uno sguardo al passato
Un Open Standard: XML
Caratteristiche dell'XML
Applicazioni dell'XML
Il Parser
Da XML a HTML
Conclusioni
Bibliografia
L'Autore

<<< Uno sguardo al passato >>>

Tutti conoscono bene o male l'HTML, il formato di dati che viene utilizzato per le pagine Web (talvolta definito a sproposito un "linguaggio di programmazione"). È anche abbastanza risaputo che l'HTML è una applicazione dell' SGML, ma il più delle volte quando si arriva a chiedere cosa è l'SGML cominciano a comparire i primi scuotimenti di spalle.
Esaminiamo allora lo Standard General Markup Language e chiariamo in che senso l'HTML è una applicazione dell'SGML. Questo discorso si applica in toto all'XML, che è una versione semplificata dell'SGML, e di conseguenza all'obiettivo del nostro articolo. L'SGML è un formalismo per descrivere formati di marcatura di testo. Non è dunque un linguaggio, è un meta-linguaggio: utilizzando l'SGML si descrive un insieme di marcatori e le regole per l'uso. Questi marcatori poi vengono utilizzati per costruire un documento. A che serva una cosa del genere è presto detto: immaginiamo di avere molti documenti di tipo diverso. Per esempio un grosso organismo come il DoD (Department of Defense) degli USA (casualmente uno dei maggiori sponsor dell'SGML) potrebbe avere il problema di dover archiviare in maniera consistente migliaia e migliaia di documenti di tipo diversissimo: articoli di programmazione in ADA come pure trattati di strategia militare. Per esempio in un articolo di programmazione ci saranno parti ricorrenti come titolo, autore, titoletto di paragrafo, listatini.
Archiviare i documenti in maniera consistente significa anche riuscire a sottoporre ad elaborazione un enorme database di documenti. Deve essere possibile effettuare ricerche, per esempio, per titolo, o autore, ma anche arrivare a ottenere tutti i listati ADA scritti da un dato autore. Non basta un semplice formato ASCII per fare una cosa del genere (per esempio, come si fa a rintracciare all'interno di in un testo il nome dell'autore o il listato senza apposite convezioni di marcatura?), occorre un formato più strutturato. Un formato che aggiunga al testo delle marcature, o tag, per renderlo strutturato. Si può quindi immaginare di archiviare gli articoli di programmazione utilizzando un formato come quello mostrato in Figura 1.
Questo metodo di marcare i documenti, qualcono noterà, assomiglia all'HTML, solo che i marcatori sono diversi. Esatto! In realtà,lo scopo dell'SGML è quello di descrivere il tipo del documento, ovvero:
i tag che può contentere,
le entità del testo: caratteri e altri elementi equivalenti ai caratteri: per esempio in HTML >; è l'entità per inserire il simbolo di maggiore nel testo,
Le regole di "buona formazione": per esempio in HTML un documento correttamente ha la forma <HTML><HEAD>…</HEAD><BODY>…</BODY></HTML>
Una infinità di altri dettagli più o meno importanti.
Con l'SGML si può descrivere qualunque tipo di document: per far questi si usa l'SGML per scrivere un DTD (Document Type Descriptor). I parser di SGML utilizzano il DTD per sapere come trattare documenti. Ll'HTML non è che un particolare insieme di marcatori descritto da una specifica in SGML. Esistono i DTD per l'HTML 2, per l'HTML 3, per l'HTML 3.2, e così via (ognuno di questi standard utilizza tag diversi), quindi l'HTML è una applicazione dell'SGML in quanto i documenti sono conformi alle regole dell'SGML e possono essere elaborati da sistemi che lo gestiscono.
In origine si intendeva arrivare ad un Web che supportasse il puro SGML; in attesa di sviluppare browser adeguati (l'SGML è molto complesso) venne utilizzata una particolare marcatura adatta allo sviluppo di documenti ipertestuali, l'HypertText Markup Language. Notare che l'HTML in origine doveva descrivere la pagina molto in astratto, in modo da consentire in un secondo tempo la visualizzazione, che veniva personalizzata a seconda del browser che si disponeva. L'HTML 2 è molto schematico: intestazioni, paragrafi, liste puntate e numerate e poco più. Lo stretto necessario per andare oltre il testo semplice senza arrivare alla descrizione fisica della pagina.
Netscape però a suo tempo ha cominciato ad estendere il browser in maniera proprietaria, aggiungendo tag per abbellire le pagine che venivano visualizzati bene con il suo browser. Per questo motivo, l'HTML si è arricchito sempre di più di elementi che ne snatuaravano lo scopo: il semplice tag CENTER è un elemento di descrizione fisica di quello che deve essere una descrizione logica del documento. La descrizione della visualizzazione doveva essere affidata agli stili, cosa che è stata in parte recuperata per il Web con l'introduzione dei Cascading Style Sheet. Bene o male che sia, le cose sono andate così, e l'HTML invece di rimanere un formato di descrizione logica e astratta dei documenti (al quale se ne dovevano affiancare altri più specifici per le varie esigenze come articoli scientifici, testi di programmazione o ricettari), è stato arricchito allo spasimo diventando un completo formato di descrizione fisica dei documenti, con tanto di tag per specificare il font, la dimensione, il colore del testo o le perfino la gif dello sfondo.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com