[>a2193.html>] [<a2191.html<] [^a2.html^]
XHTML è una rivisitazione dell'HTML in forma di applicazione XML. Allo stato attuale, XHTML 1.0 è progettato in modo da essere molto simile all'HTML 4.*; ciò dovrebbe permettere anche ai programmi di navigazione che non conoscono l'XML di poterlo interpretare correttamente. Evidentemente, XHTML è proprio la premessa all'introduzione pratica dell'XML nella documentazione in rete.
Come accennato, XHTML è qualcosa di molto simile all'HTML tradizionale, con alcune differenze importanti, dovute all'XML e alle scelte progettuali di questo formato. In particolare:
gli elementi devono essere delimitati correttamente con i marcatori di apertura e chiusura;
non ci possono più essere elementi vuoti indicati con il solo marcatore di apertura, dal momento che al loro posto si possono solo usare i marcatori speciali nella forma <.../>;
i nomi degli elementi e degli attributi vanno scritti utilizzando solo lettere minuscole;
gli attributi devono essere assegnati correttamente (non si possono usare più degli attributi booleani) e il valore assegnato deve essere delimitato da apici doppi o singoli;
l'attributo lang, se utilizzato, deve essere abbinato anche all'attributo xml:lang, in base alle convenzioni dell'XML;
se non si può evitare l'uso dell'attributo name, questo deve essere abbinato anche all'attributo id;
se il valore assegnato a un attributo deve contenere una e-commerciale (&), occorre indicarla nella forma &, anche se si tratta di un URI;
se il valore assegnato a un attributo deve contenere una e-commerciale (&), occorre indicarla nella forma &, anche quando si tratta di un URI;
se per qualche ragione non si dichiara la codifica utilizzata, deve trattarsi della forma UTF-8 oppure UTF-16;
l'elemento isindex è obsoleto e si preferisce usare l'elemento input.
Trattandosi di un'applicazione XML, l'inizio dovrebbe essere scontato: si deve specificare che si tratta di un file XML, quindi si passa a indicare il DTD a cui si fa riferimento:
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"> <head> <title>Esempio XHTML</title> <meta name="keywords" content="XML, SGML, XSL, DSSSL" /> </head> <body> <p>Ciao mondo!</p> </body> </html>
L'esempio mostra un file XHTML completo, anche se molto breve. Si può osservare che il marcatore di apertura, oltre agli attributi xml:lang e lang, contiene l'attributo xmlns, a cui viene assegnato un URI prestabilito.
In XML, l'insieme di caratteri codificato è quello della codifica universale. Di conseguenza, per la migliore compatibilità con il passato, la forma codificata del carattere predefinita è UTF-8. Se il file utilizza l'ASCII tradizionale, senza estensioni, tutto va bene e non occorre altro; diversamente vanno usate preferibilmente le codifiche UTF-8 oppure UTF-16, come prevede in generale l'XML. L'esempio seguente mostra in che modo va modificata l'istruzione iniziale per indicare espressamente la codifica:
<?xml version="1.0" encoding="UTF-8" ?>
Volendo verificare la validità di un file XHTML attraverso il suo DTD, si può agire in modo simile a quanto si fa in generale con l'SGML. Questo è già stato descritto nel capitolo 135; tuttavia occorre ricordare che la definizione SGML da utilizzare è quella specifica per l'XML.
Il DTD di XHTML, assieme alla definizione delle entità standard, possono essere ottenuti a partire da <http://www.w3.org/TR/xhtml1/DTD/>, mentre la dichiarazione SGML si può trovare tra i sorgenti del pacchetto SP di James Clark. Si veda a questo proposito quanto già descritto nel capitolo 149.
W3C, XHTML 1.0: The Extensible HyperText Markup Language
1) Per motivi di compatibilità con i vecchi navigatori, i marcatori di questo genere vanno indicati avendo l'accortezza di lasciare uno spazio prima della barra finale; per esempio: <br />.