HTML y XHTML

XHTML es HTML escrito como XML.

¿Que es XHTML?

  • XHTML significa EXtensible Hyper Text Markup Language (Lenguaje de Marcado de Texto Extendible).
  • XHTML es casi identico a HTML.
  • XHTML es más estricto que HTML.
  • XHTML es HTML definido como una aplicación XML.
  • XTTML es soportado por la mayoría de los Navegadores Web.

 ¿Por qué XHTML?

Muchas Páginas en Internet contienen HTML mal escrito.

El siguiente código funciona en la mayoría de los Navegadores Web, pero no sigue las reglas del HTML:

<html>
<head>
<title>Página HTML mal escrita</title>
<body>
<h1>Mal HTML
<p>Este es un párrafo
</body>
</html>

El marcado actual consiste en diferentes Tecnologías para Navegadores Web. Algunos Navegadores Web se ejecutan en computadoras y algunos se ejecutan en teléfonos móviles u otros dispositivos como tablets. Los dispositivos más pequeños a menudo carecen de los recursos o el poder para interpretar el mal marcado.

XML es un lenguaje de marcado en donde los documentos deben estar marcados correctamente. Al combinar las fortalezas de HTML y XML, se desarrolló XHTML. Así, XHTML es HTML rediseñado como XML.

Las diferencias más importantes

Estructura del Documento:

  • En XHTML la declaración doctype es obligatorio.
  • El atributo xmlns en la etiqueta <html> es obligatorio.
  • Las etiquetas <html>, <head>, <title> y <body> son obligatorios.

Etiquetas XHTML:

  • Las etiquetas XHTML deben estar anidadas correctamente.
  • Las etiquetas XHTML deben estar siempre cerradas.
  • Las etiquetas XHTML deben estar en minúsculas.
  • Los documentos XHTML deben tener un elemento raíz.

Atributos XHTML:

  • Los nombres de atributo deben estar en minúsculas.
  • Los valores del atributo deben estar entre comillas dobles.
  • La minimización de atritubutos esta prohibido.

La declaración Doctype es obligatoria

Un documento XHTML debe tener la declarción <!doctype ... >.

Las etiquetas <html>, <head>, <title> y <body> deben estar declaradas, y el atributo xmlns en la etiqueta <html> debe especificar el nombre de espacio XML para el documento.

El siguiente ejemplo muestra un documento XHTML con el minimo de etiquetas requeridas.

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

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

<head>
 <title>Title of document</title>
</head>

<body>
 Algún contenido...
</body>

</html>

Las etiquetas XHTML deben estar correctamente anidadas

En HTML algunas etiquetas pueden anidarse incorrectamente de la siguiente manera:

<b><i>Este es un texto en negrita e italica</b></i>

En XHTML todos las etiquetas deber estar anidadas correctamente unas dentro de otras de la siguiente manera:

<b><i>Este es un texto en negrita e talica</i></b>

Las etiquetas XHTML siempre deben cerrarse

Esto es incorrecto:

<p>Este es un párrado.
<p>Este es otro párrafo.

Esto es correcto:

<p>Este es un párrado.</p>
<p>Este es otro párrafo.</p>

Las etiquetas vacias también deben cerrarse

Esto es incorrecto:

Un salto de línea: <br>
Una línea horizontal: <hr>
Una imagen: <img src="foto.jpg" alt="Mi foto">

Esto es correcto:

Un salto de línea: <br />
Una línea horizontal: <hr />
Una imagen: <img src="foto.jpg" alt="Mi foto" />

Las etiquetas deben estar en minúsculas

Esto es incorrecto:

<BODY>
<P>Esto es un Párrafo.</P>
</BODY>

Esto es correcto:

<body>
<p>Esto es un Párrafo.</p>
</body>

Los nombres de atributos deben estar en minúsculas

Esto es incorrecto:

<table WIDTH="100%">

Esto es correcto:

<table width="100%">

Los valores de atributos deben estar entre comillas

Esto es incorrecto:

<table width=100%>

Esto es correcto:

<table width="100%">

Los atributos minimizados no están permitodos

Esto es incorrecto:

<input type="checkbox" name="vehiculo" value="carro" checked />
<input type="text" name="apelllido" disabled />

Esto es correcto:

<input type="checkbox" name="vehiculo" value="carro" checked="checked" />
<input type="text" name="apellido" disabled="disabled" />

Como convertir de HTML a XHTML

  • Definir el doctype para XHTML en la primer línea de cada página.
  • Agregue el elemento xmlns a la etiqueta html de cada página.
  • Cambiar todos los nombres de las etiquetas a minúsculas.
  • Cambiar todos los nombre de atributos a minúsculas.
  • Cerrar todas las etiquetas vacías.
  • Poner entre comillas a todos los valores de los atributos.