# Relazione tra HTM e XML

L'XML e' spesso considerato una sostituzione dell'HTML. Sebbene questo possa essere in parte vero, in realta' i due linguaggi sono complementari e, relativamente al modo in cui vengono trattati i dati, operano su livelli differenti. Nei casi in cui l'XML viene utilizzato per strutturare e descrivere i dati sul Web, l'HTML e' usato per formattare i dati.

### Pregi di HTML :

Data la semplicita' della struttura dei documenti HTML, rappresenta un veloce strumento per lo scambio delle informazioni sul Web. Le istanze HTML non devono essere validate ma e' sufficiente che siano "ben formate", ovvero sintatticamente corrette. Il modo con cui viene visualizzato il documento dipende dallo Style-Sheet del browser stesso.

### Limiti di HTML :

I limiti di HTML discendono proprio dai suoi pregi e sono dovuti soprattutto ad un uso distorto di questo strumento. Dal momento che non e' richiesta una strutturazione semanticamente corretta delle informazioni, HTML diventa molto povero per le applicazioni di elaborazione dei dati, quindi il problema viene completamente demandato agli applicativi scritti in Java, Java Script, ecc. La sua struttura non e' estensibile e questo lo rende praticamente inutilizzabile per le industrie che si sono viste costrette a crearsi standards differenti per ogni diversa applicazione, ed ancora una volta e' compito del software elaborare i dati per il trasferimento delle informazioni sul Web. Un altro problema da non sottovalutare si puo' verificare dalla parte del client qualora non abbia un dispositivo video del tipo previsto dal server (per esempio dispositivi per il braille o monitor non grafici).

Inoltre l'HTML non offre i meccanismi per mantenere il controllo della formattazione. Infatti non si possono specificare le dimensioni video di un documento o controllare le dimensioni della finestra di un browser. Per superare questo problema sono stati inseriti nuovi tag e i fogli di stile; i nuovi tag forniscono istruzioni di formattazione come ad esempio il tag <FONT> per specificare il tipo di carattere; gli utenti pero', possono ignorare queste specifiche e utilizzare le loro; inoltre questi tag sono di formattazione e non di descrizione (come dovrebbero essere essendo l'HTML un linguaggio di descrizione del documento). Tutto questo fa si' che uno sviluppatore di pagine Web non sappia mai con certezza cosa un client visualizzera' sullo schermo del computer.

Il W3C (ente guida per lo sviluppo del Web), si rese conto che la creazione di una moltitudine di nuovi tag che rispondessero a ogni possibile esigenza di formattazione era irrealistica ed incoerente con i principi ed i concetti dell'HTML vennero quindi introdotti i CSS; (Cascading Style Sheet) che permettono attraverso le norme di stile di definire come devono apparire determinati elementi di un documento; anche con i CSS pero', si deve scegliere fra un assortimento di proprieta' predefinite.

Bisogna anche specificare che lasciare al browser la decisione di come presentare un documento, fu esplicitamente voluto come impostazione del progetto HTML (infatti come si e' gia' detto e' un linguaggio di descrizione del documento). Il browser conosce le preferenze degli utenti e soprattutto l'ambiente in cui si trova ad operare; tutte informazioni che logicamente l'autore di un documento HTML non conosce (a parte pochi casi, come un ambiente intranet omogeneo). Il poter decidere come visualizzare un documento e' molto utile ad esempio quando un utente non dispone di un browser grafico, oppure per utenti che hanno problemi di vista e hanno bisogno di caratteri molto grandi, oppure addirittura per utenti non vedenti. Sfortunatamente, le case produttrici di browser, non hanno capito la filosofia di base dell'HTML; il risultato di questo e' che allo stato attuale un numero enorme di pagine sul Web, contengono insiemi di tag specifici per determinati browser, e anche per determinate versioni dello stesso browser; queste pagine sono molto spesso illeggibili. Gradualmente l'HTML sta passando da un linguaggio di descrizione, ad un linguaggio di presentazione , con tutti i problemi qui descritti; l'XML puo' fornire una soluzione, fornendo un layout a chiunque e indipendentemente dal browser utilizzato, attraverso l'utilizzo dell'Exstensible Style Language (XSL), che diventera' uno standard universalmente accettato.

L'XML si differenzia dall'HTML per tre maggiori aspetti:

- Possono essere definiti nuovi tag ed attributi.
- La struttura di un documento puo' essere vista in modo gerarchico nidificando i tag in ogni livello di complessita'
- Ogni documento XML puo' contenere una opzionale descrizione della sua grammatica, in modo che possa essere utilizzata da applicazioni che richiedono una validazione della struttura del documento.