Menú principal

¿Qué es xhtml?

Citando al Consorcio W3C (www.w3.org/TR/xhtml1/#xhtml):

"The XHTML family is the next step in the evolution of de Internet. By migrating to XHTML today, content developers can enter the XML world with all of its attendant benefits, while still remaining confident in their content´s backward and future compatibility."

"La familia del xhtml es el siguiente estadio en la evolución de Internet. A través del cambio a XHTML, los creadores de contenidos pueden adentrarse en el mundo XML con todos los beneficios que esto conlleva, a la vez que aseguran la compatibilidad de sus contenidos pasados y futuros."

XHTML una reformulación de HTML 4.0 como una aplicación XML 1.0. Esto significa que el comité del W3C ser reunió y echó un vistazo a cada etiqueta (o elemento) de HTML 4 y determinó cómo definir dicho elemento utilizando XML. Por tanto, dede el punto de vista de los autores web, el código de un archivo de una página web XHTML es casi igual que el código para la misma página en un archivo HTML 4. Se utilizan las mismas etiquetas y atributos en ambos con algunas excepciones.

Para ello, se utilizan las reglas de alguno de los tres DTDs (Strict, Transitional y Frameset) definidos por el W3C. La compatibilidad con agentes de usuario HTML existentes es posible siguiendo un pequeño conjunto de reglas.

Prólogo XML, declaración DOCTYPE y Namespace (espacios nominales)

Un documento XHTML puede contener varios elementos estructurales para ser considerado correcto.

El prólogo XML (Prolog XML) es una declaración que puede aparecer sobre la declaración DOCTYPE. El prólogo (prolog) se recomienda pero no es obligatorio. El hecho de que no sea obligario tiene que ver con que algunos navegadores, si se usa, (incluyendo IE 4.5 para Mac, IE 6 para Windows y Netscape 4 para Windows) muestran mal las páginas XHTML .

Sin embargo, debido a que la codificación de la información es importante en muchos casos -particularmente cuando trabajamos con documentos internacionales- si no usamos la declaración XML, debemos asegurarnos de codificarla en el servidor o en etiquetas meta. Aquí vemos un ejemplo de prólogo XML, que define la versión XML del documento y el tipo de codificación.

         <?xml version="1.0" encoding="UTF-8"?>

La Declaración DOCTYPE (DOCTYPE Declaration). Disponemos únicamente de tres DTDs en XHTML 1: Strict, Transitional y Frameset. El DOCTYPE declara la versión del lenguaje, interpretación y localización del DTD relacionado.

Los documentos XHTML tiene que empezar con una declaración DOCTYPE

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Los elementos de <!DOCTYPE> en este ejemplo son:

html. Indica que elemento raíz del documento es la etiqueta <html>.
PUBLIC. Indica que el elemento <!DOCTYPE> tiene un identificador público formal (FPI,   Formal Public Identifier), que sigue a la palabra reservada PUBLIC. 
"-//W3C//DTD XHTML 1.0 Transitional//EN". Es el FPI de la DTD necesaria para   leer la página web de XHTML.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd". La dirección web,    que aparece entre comillas, donde el explorador puede recuperar la DTD del    documento, y que define y proporciona la sintaxis para todas las entidades y atributos    que se utilizan en el documento XHTML.

Aunque todavía se pueden utilizar etiquetas no aprobadas cuando seleccionamos una DTD de transición o de conjunto de marcos, deberíamos evitar hacerlo. El W3C ha eliminado todas las etiquetas obsoletas de la especificación de XHTML 1.1. Estas son los elementos (y etiquetas) de HTML 4.01 (y por extensión de XHTML 1.0) que no están probadas, y cuyo uso deberíamos evitar en nustras páginas XHTML (y trabajar para eleminarlas de nuestras páginas HTML también.)

APPLET
BASEFONT
CENTER
DIR
FONT
ISINDEX
MENU
S
STRIKE
U

Los espacios nominales XML para XHTML. Un espacio nominal XML es una colección de elementos y atributos únicos. En XHTML, los nombres de espacio apuntan al documento relacionado del W3C. Los nombres de espacio se sitúan en el elemento raíz del árbol que forma el documento, html:

         <html xmlns="http://www.w3.org/1999/xhtml">

 

Sintáxis XHTML

Sensible a las mayúsculas y minúsculas  

HTML no entiende de mayúsculas y minúsculas. Esto siginifica que los nombres de los elementos y atributos pueden estar en mayúsculas, minusculas o mezcladas:

         <body background="my.gif">
         <BODY BACKGROUND="my.gif">
         <BoDy background="my.gif">

Todos estos ejemplos significan la misma cosa en HTML.

En XHTML todos los elementos y nombres de atributos deben escribirse en minúsculas.

         <body background="my.gif">


Sintaxis bien formada


A excepción de la página de marcos, un documento XHTML bien formado tiene un elemento raíz <html> que contiene dos secciones integradas, que no se solapan ("encabezado" y "cuerpo"):

        <html>
           <head>....</head>
           <body>....</body>
        <html>

La sección de encabezado (entre las etiquetas de sección <head> y </head>) tiene que empezar inmediatamente después de la etiqueta <html>. Además, la sección de encabezado tiene que terminar (con una etiqueta </head>) antes de que empiece la sección de cuerpo (entre las etiquetas <body> y </body>. Los documentos de marcos de XHTML también tienen que estar bien formados. Sin embargo, en un documento de marcos, se sustituye la sección del "cuerpo" pur una sección de "marcos" como se indica a continuación:

        <html>
           <head>....</head>
           <frameset cols="100, 400, *">
                <frame src="marco1.html" name="izquierdo" >
                <frame src="marco2.html" name="derecho" >
           <frameset>
        <html>


Los elementos deben anidarse, no solaparse


Los elementos tienen que estar correctamente anidados. Por ejemplo, muchos navegadores interpretan correctamente este código:

        <b><i>Bienvenidos a nuestra web</b></i>

En XHTML todo elemento tiene que estar correctamente cerrado. Ténicamente también es ilegal en HTML solapar etiquetas, aunque es muy tolerado por los exploradores web. Lo correcto sería:

        <b><i>Bienvenidos a nuestra web</i></b>


Los nombres de todos los elementos y atributos tiene que escribirse en minúsculas.

HTML (a diferencia de XHTML) no distingue entre mayúsculas y minúsculas, lo que significa que <HEAD> es lo mismo que <head> en un documento HTML. Este código sería incorrecto en XHTML:

        <B><i>Bienvenidos a nuestra web</i></B>

En XHTML todo los atributos tiene que tener los valores entre comillas. Esto es incorrecto:

        <table border=2>


Es necesario cerrar las etiquetas contenedoras que estén abiertas y cada etiqueta vacía tiene que tener un terminador.

        <p>Código correcto</p>
        <p>Código incorrecto

        <br />Código correcto
        <br>Código incorrecto