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

L'elemento radice

L'importanza dell'elemento radice. Come scrivere documenti XHTML ben dichiarati
L'importanza dell'elemento radice. Come scrivere documenti XHTML ben dichiarati
Link copiato negli appunti

Riprendiamo l'analisi delle quattro sezioni della nostra pagina XHTML. E consideramo
l'elemento radice:

Figura 1: Dichiarazione dell'elemento radice
Dichiarazione dell'elemento radice

Come abbiamo visto, l'elemento radice di un documento XHTML deve essere <html>, che deve a sua volta contenere tutti gli altri elementi. Niente di nuovo direte, tutte le pagine HTML iniziano più o meno così:

<html>
<head>
<title>Lezione 7 - L'elemento radice</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
......... Contenuto della pagina ..............
</body>
</html>

Ma le differenze ci sono e qui potete capire davvero cosa significa il rigore di XML.

<HTML> è obbligatorio

Perchè prima non lo era? Incredibilmente la risposta è: no! <html> era considerato di default. Piccola prova:

<head>
<title>Lezione 7 - L'elemento radice</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>Questo è HTML!</h1>
</body>

Copiate e incollate queste poche righe in Blocco Note; salvate come "prova.html". Aprite in un browser. La scritta "Questo è HTML!" comparirà bella ed evidente. Ma cosa volete farci, i nostri browser sono fatti così. Sanno perdonare molto, forse troppo. Si calcola che l'80% della potenzialità del parser HTML di un browser venga usata per risolvere gli errori di scrittura presenti nelle pagine. È evidente che sottoponendo questa pagina a validazione non sarete nemmeno presi in considerazione. Semplicemente questo non è un documento XHTML. Se un giorno i browser (come è auspicabile) effettueranno la verifica la nostra paginetta di test verrà sdegnosamente rifiutata perchè non corretta. Ma affronteremo l'argomento browser in una prossima lezione. Ora ribadiamo: <html> è obbligatorio.

Il namespace

L'elemento <html> può assumere questi attributi:

dir Determina la direzione del testo
lang Specifica il linguaggio di base dell'elemento quando
è interpretato come HTML
xml:lang Specifica il linguaggio di base dell'elemento quando
è interpretato come XML
xmlns Specifica il namespace predefinito per XHTML

L'unico attributo obbligatorio è xmlns. Il W3C, come visto, specifica anche il valore obbligatorio di tale attributo: "http://www.w3.org/1999/xhtml" (vedi figura 1).

La necessità di un namespace (spazio di nomi) dipende dalla derivazione da XML. Linguaggio estensibile per definizione. È possibile, infatti, estendere il set di tag di XHTML con elementi di altri linguaggi, anche creati personalmente. Specificare uno o più namespace evita la possibilità di conflitti tra i tag. Chiariamo anche qui con un esempio.

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//OVERFLOW//DTD XHTML-FML 1.0//EN"
"http://www.mozquito.org/dtd/xhtml-fml1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:x="http://www.mozquito.org/xhtml-fml">
<head>
<title>Untitled</title>
</head>
<body>
<x:form>
</x:form>

</body>
</html>

Il codice riporta l'implementazione di FML (Form Markup Language) in un documento XHTML. FML, su cui torneremo, è un linguaggio che ridefinisce e potenzia l'uso dei form. Come si può notare all'interno dell'elemento <html> sono stati definiti due namespace: in rosso è evidenziato quello standard di XHTML, in blue quello di FML.

La differenza tra i due, a parte l'URI, sta nel prefisso. Il primo non ne ha. Il secondo ha come prefisso "x". Significa che i tag non preceduti da prefisso sono quelli standard di XHTML e come tali verranno intepretati. Ora date uno sguardo al codice. Nel corpo della pagina è stato inserito un form. Ma il tag è preceduto da x! Vuol dire che esso appartiene al namespace FML e come tale deve essere trattato dal browser. Senza specificare il prefisso avremmo avuto un classico form XHTML.

L'argomento namespace è attualmente uno dei più dibattuti nella comunità XML e dunque vi rimandiamo ad uno dei tanti siti sull'argomento o ad un manuale aggiornato per chiarificazioni e approfondimenti.

Riferimenti

Nozione e uso dei namespace: dal corso XML di HTML.it una buona introduzione all'argomento.

Form Markup Language: articoli e reference su questa interessante estensione di XHTML

Ti consigliamo anche