Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

XHTML: il futuro di HTML

Introduzione pratica a XHTML: cos'è, a cosa serve e come verrà utilizzato.
Introduzione pratica a XHTML: cos'è, a cosa serve e come verrà utilizzato.
Link copiato negli appunti

Uno dei principali timori legati alla comparsa di XML è stato per molti l'abbandono del glorioso HTML. Sono passati ormai quattro anni dalla pubblicazione dello standard XML e il buon vecchio HTML è sempre vivo e vegeto e non sembra voler abbandonare la scena.

Il fatto è che XML non si pone come rivale di HTML, dal momento che copre un ruolo molto più ampio e diversificato di quello ricoperto da HTML. Tuttavia l'introduzione di questo metalinguaggio, cioè di linguaggio per la definizione di altri linguaggi, non può sciare inalterata la scena finora dominata dall'inossidabile HTML. Effettivamente, nelle intenzioni del W3C l'attuale specifica dell'HTML, risalente al dicembre '97, non subirà nessun'altra modifica. Il successore ufficiale del buon vecchio HTML sarà HTML, la cui release 1.0 costituisce la prima modifica all'HTML 4.01 dal suo rilascio.

Ma cos'ha di diverso XHTML da HTML? Per quale motivo abbandonare l'HTML? Quali vantaggi offre il successore dell'HTML? In quest'articolo proveremo ad analizzare XHTML e cercheremo di comprendere quali vantaggi offre rispetto al vecchio HTML

Da HTML a XHTML

Da un punto di vista tecnico XHTML 1.0 è una riformulazione dell'HTML 4.01 come applicazione XML, cioè come linguaggio definito tramite XML. Ciò significa che le modifiche apportate all'HTML 4.01 sono essenzialmente di natura sintattica e non prevedono l'introduzione di nuovi tag. Continueremo pertanto ad utilizzare tag come <body>, <p>, <table>, etc. tenendo presente però che XHTML eredita il carattere pignolo di XML. Infatti, la flessibilità sintattica dell'HTML e l'abitudine alla tolleranza agli errori da parte dei browser si scontra con la rigidità sintattica tipica dell'XML. Questo sarà lo scoglio principale da superare, che tutto sommato non è poi così arduo. Possiamo riassumere nei seguenti punti le principali regole da tenere presenti nella scrittura di documenti XHTML:

  1. tutti i tag e i loro attributi sono espressi in minuscolo
  2. È obbligatorio inserire il tag di chiusura (ad esempio, se usiamo <p> dobbiamo chiudere con </p>)
  3. i valori degli attributi devono essere specificati tra doppi apici o singoli apici (ad esempio, <table width="30%">)
  4. i tag vuoti seguono la cosiddetta sintassi minimizzata (per esempio, il tag <br> diventa <br/>)
  5. utilizzare l'attributo id al posto di name per identificare gli elementi di un documento

Seguendo queste semplici regole possiamo riscrivere il seguente codice HTML:

<html>
<head>
  <title>Pagina HTML</title>
</head>
<BODY>
  <br>
  <IMG src="immagine.jpg" ALT="Immagine.JPG">
  <p>
   Questa È una pagina HTML con un link a
  <A href="http://www.html.it">HTML.IT</A>
</body>
</html>

nel seguente codice XHTML equivalente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang ="en">
<html>
<head>
  <title>Pagina HTML</title>
</head>
<body>
  <br/>
  <img src="immagine.jpg" alt="Immagine JPG" />
  <p>
   Questa È una pagina HTML con un link a
   <a href="http://www.html.it">HTML.IT</a>
  </p>
</body>
</html>

Come è evidente, la conversione da HTML a XML non è così drastica. A parte l'applicazione delle regole sopra esposte, notiamo la presenza della direttiva di elaborazione indicante la versione di XML utilizzata e il riferimento al DTD che definisce il linguaggio XHTML. In sostanza, il documento XHTML non è altro che un documento XML basato su uno specifico DTD.

In collaborazione con Manthys

Le varianti dell'XHTML

La definizione dell'XHTML prevede l'utilizzo di questo linguaggio in tre varianti. Ciascuna di queste varianti specifica le modalit?on cui vengono applicate le regole del linguaggio. Le varianti previste sono:

  • XHTML Strict

    questa variante specifica l'uso più rigoroso dell'XHTML; un documento XHTML scritto utilizzando questa variante non può utilizzare alcun tag o attributo relativo all'aspetto grafico del documento (font, colori, ecc.); l'aspetto grafico è esclusivamente controllato dai fogli di stile (CSS)

  • XHTML Transitional

    questa variante ammette l'utilizzo di tag e attributi che regolano l'aspetto grafico del documento XHTML

  • XHTML Frameset

    questa variante prevede l'utilizzo dei frame nei documenti XHTML

È compito dello sviluppatore specificare quale variante intende utilizzare per un documento XHTML inserendo all'inizio del documento una delle seguenti dichiarazioni:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">

In questo modo i diversi parser, validatori o browser interpreteranno correttamente il documento facendo riferimento all'opportuno DTD.

I moduli XHTML

Un'altra caratteristica di XHTML è la struttura del linguaggio in moduli. I vari tag del linguaggio vengono organizzati in gruppi omogenei in modo da costituire blocchi autonomi (moduli). I moduli attualmente previsti possono essere distinti in due categorie: i moduli fondamentali (Core Modules), che rappresentano l'insieme dei tag che devono essere supportati da qualsiasi interprete XHTML, e i moduli di estensione (Extension Modules), moduli opzionali il cui supporto può dipendere dal tipo di browser o dispositivo di visualizzazione utilizzato.

I moduli fondamentali previsti dall'attuale definizione comprendono:

  • Structure Module

    raggruppa l'insieme dei tag che definiscono la struttura di un documento XHTML (<html>, <head>, ecc.)

  • Text Module

    raggruppa l'insieme dei tag di qualificazione del testo (<h1>, <h2>, <div>, <p>, <em>, <cite>, ecc.)

  • Hypertext Module

    contiene il tag <a>

  • List Module

    contiene i tag che consentono di specificare liste (<ul>, <ol>, <li>, ecc.)

I moduli di estensione sono numerosi e ciascuno contiene i tag relativi alla definizione di particolari elementi di un documento XHTML. Tra i principali ricordiamo:

  • Forms

    raggruppa l'insieme dei tag che consentono di definire le form e i controlli ad esse legate (<form>, <input>, ecc.)

  • Tables

    contiene i tag per la definizione di tabelle (<table>, <tr>, <td>, ecc.)

  • Images

    contiene il tag <img>

  • Frames

    raggruppa l'insieme dei tag che consentono di strutturare un documento in frame (<frameset>, <frame>, ecc.)

  • Scripting

    contiene i tag che consentono di inserire o meno script (<script>, <noscript>)

La strutturazione in moduli dell'XHTML consente di definire sottoinsiemi del linguaggio o di estenderlo rendendolo flessibile alle esigenze di specifici client che si affacciano alla navigazione del web.

Perché XHTML?

Ma perché si è resa necessaria la riformulazione di HTML in termini di XML? I motivi sono da ricercarsi nell'ottica di standardizzare le definizioni dei vari linguaggi di markup, riportandoli alla sintassi XML. Possiamo evidenziare i seguenti punti:

  • la definizione di HTML come applicazione XML consente di utilizzare strumenti ormai standard per analizzare ed elaborare documenti (parser XML, validatori XML, ecc.). Come conseguenza, tuttavia, è richiesto maggior rigore sintattico e quindi minore tolleranza da parte dei browser nei confronti delle inesattezze sintattiche a cui ci aveva abituati l'HTML.
  • l'HTML risulta non del tutto adeguato per consentire un accesso universale al web. In sostanza, HTML è stato progettato considerando come client unicamente il computer. La presenza di altri client (telefonini, PDA, WebTV, ecc.) porta a riformulare le specifiche del linguaggio. La definizione modulare di XHTML consente di stabilire i livelli di specifica supportati da un determinato dispositivo client.
  • XHTML eredita l'estensibilità di XML, che consente l'evoluzione del linguaggio senza richiedere, in teoria, alcun aggiornamento del browser o dispositivo che l'utente utilizza per navigare sul web. Sarà sufficiente fare riferimento all'opportuno DTD (Document Type Definition) o Schema XML

Conclusioni

Dal momento che XHTML non fa altro che ridefinire la sintassi di HTML in termini di XML in teoria i due linguaggi di markup sono compatibili. Infatti, dando un rapido sguardo alle principali differenze tra i due linguaggi evidenziate nel paragrafo precedente, non emergono incompatibilità sostanziali (grazie anche all'alta tolleranza sintattica dell'HTML tradizionale). Tuttavia qualche problema potrebbe emergere dai diversi comportamenti che possono avere i browser in presenza di tag sconosciuti (per esempio in presenza del tag <br/>).

I browser più moderni, comunque, interpretano correttamente un documento XHTML, per cui la transizione verso il successore di HTML non dovrebbe risultare troppo traumatico.

Ti consigliamo anche