4.24 [A+] XML: HTML y XHTML
Objetivos:
En el siguiente vídeo se explican las diferencias entre XML, HTML y XHTML.
XHTML es el acrónimo de eXtensible Hypertext Markup Language, en castellano Lenguaje extensible de marcado de hipertexto.
XHTML es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web.
Si XHTML es el sucesor de HTML, ¿qué relación existe con XML?
En su versión 1.0, XHTML es solamente la versión XML de HTML, por lo que tiene, básicamente, las mismas etiquetas y funcionalidades, pero cumple las especificaciones, más estrictas, de XML.
Recordemos que HTML, XHTML y XML son los tres estándares de facto desarrollados por el World Wide Web Consortium, el W3C, un consorcio internacional que produce recomendaciones para la World Wide Web.
Desde la publicación de la primera página web en diciembre de 1990, el lenguaje HTML ha ido mejorando con nuevas versiones. En noviembre de 1995 se publicó HTML 2.0. En enero de 1997 HTML 3.2. Y en diciembre de 1997, apareció HTML 4.
La última revisión, HTML 4.01, se publicó en diciembre de 1999.
En enero de 2000 se publico XHTML 1.0, una reformulación de HTML 4 utilizando XML 1.0.
Una revisión de XHTML 1.0 fue publicada en agosto de 2002.
XHTML es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web.
En su versión 1.0, XHTML es solamente la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML.
XHTML incorpora a las páginas web el rigor de XML, lo cual se traduce en un mejor procesamiento, un mantenimiento más sencillo y es el primer paso hacia la llamada web semántica.
Desgraciadamente, todas estas promesas se pararon en seco a mediados del año 2009.
En julio del año 2009, el W3C anunció que cuando el grupo de trabajo de XHTML 2, la próxima versión de XHTML, terminase su trabajo a finales de 2009, no iba a ser renovado, ya que el W3C quería aumentar los recursos destinados a HTML 5. Finalmente, en diciembre de 2010 el grupo de trabajo de XHTML 2 fue definitivamente cerrado.
¿Y qué es HTML 5? HTML 5 es la quinta y última versión, por ahora, del lenguaje de etiquetado HTML.
Pero, ¿qué pasó con XHTML?
XHTML 1.0 fue publicado en el año 2000, y en los siguientes años se desarrollaron numerosas tecnologías que lo complementaban o que lo iban a suceder. Desgraciadamente, todas estas tecnologías complicaron bastante el desarrollo y el uso de XHTML.
En el año 2004, algunos miembros de Apple, Mozilla Foundation y Opera Software fundaron el Web Hypertext Application Technology Working Group porque no estaban contentos con la evolución de XHTML y con la falta de interés del W3C por las necesidades reales de los desarrolladores web.
De forma independiente, este grupo empezó a desarrollar su propia visión de cómo debía ser la próxima versión de HTML.
En el año 2006, el W3C mostró su interés por participar en el desarrollo de HTML 5, y en el año 2007, el W3C formó un grupo de trabajo destinado a trabajar con el WHATWG en el desarrollo de la especificación de HTML5.
Por tanto, el W3C abandonó sus trabajos sobre XHTML 2.0, y pasó a centrar su interés en HTML 5, versión que está actualmente en desarrollo y que se espera que se termine en 2014.
Entonces, ¿está muerto XHTML?
No, para nada, no está muerto. Existen millones de sitios web y miles de herramientas basados en XHTML.
Más aún, HTML 5 se está desarrollando con dos sintaxis, una basada en XHTML y otra basada en HTML. Por tanto, tiene mucho sentido seguir trabajando con XHTML los próximos años.
A continuación, vamos a ver las principales diferencias que existen entre HTML y XHTML 1.0.
En HTML 4 existen tres variantes del lenguaje: la versión estricta, la versión transicional y la versión con marcos.
En XHTML 1.0 se conservan las tres variantes, pero claro están, con sus propios DOCTYPEs. Así tenemos la versión estricta, la versión transicional y la versión con marcos.
En la página web “Lista recomendada de declaraciones de Doctype” del W3C podemos en encontrar estas declaraciones que acabamos de ver y algunas más.
En esta misma página web del W3C también podemos encontrar esta plantilla para crear un nuevo documento XHTML 1.0. Este documento está configurado para el juego de caracteres UTF-8. Si se quisiera utilizar otro juego de caracteres, como por ejemplo ISO-8859-1, también llamado Latin-1, habría que añadir esta declaración de documento XML y habría que cambiar el valor del juego de caracteres en esta etiqueta.
Para comprobar si una página XHTML está correctamente escrita, se puede emplear algún validador como por ejemplo el que proporciona el W3C.
Veamos a continuación las principales diferencias que existen entre HTML y XHTML 1.0. Debido a que XHTML es una aplicación de XML, ciertas prácticas que eran posibles en HTML, que está basado en SGML, ahora no son posibles.
Pero en primer lugar recordemos la estructura de un elemento HTML. Un elemento HTML se compone de una etiqueta inicial y una etiqueta final que tienen el mismo nombre. La etiqueta inicial puede llevar atributos, pero la final nunca lleva. En HTML, los atributos pueden llevar un valor. Por último, las etiquetas pueden tener contenido: el contenido puede estar formado por otras etiquetas de HTML o puede ser simplemente texto como en este ejemplo.
En primer lugar, los elementos anidados deben tener un correcto orden de apertura/cierre: el que se abre el último, debe cerrarse el primero. Por ejemplo, en HTML, es posible este ejemplo, pero esto es totalmente imposible en XHTML porque los elementos están superpuestos. La forma correcta de escribirlo en XHTML sería la siguiente.
Los elementos, los nombres de elementos y atributos deben de ir siempre en minúsculas. Esto es debido a que XML diferencia las mayúsculas y minúsculas. En HTML, es posible escribir las etiquetas y atributos en mayúsculas y minúsculas, sin ningún problema. En XHTML esto es totalmente incorrecto, todo tiene que estar escrito en minúsculas.
Los elementos vacíos deben cerrarse siempre: o bien aparece la etiqueta final, o bien la etiqueta inicial termina con />. En HTML, los elementos vacíos no llevan etiqueta de cierre. Por tanto, se pueden escribir directamente de esta forma. Sin embargo, esto es incorrecto en XHTML. En XHTML, o se cierra la etiqueta o se escribe con una etiqueta vacía.
Los elementos no vacíos también deben de cerrarse siempre en XHTML. En HTML se permite no cerrar ciertos elementos, ya que se cierran de forma implícita. Pero esto es totalmente imposible en XHTML.
Por ejemplo, la etiqueta <p> de párrafo se puede no cerrar en HTML, pero esto está mal en XHTML. En XHTML los elementos se deben de cerrar siempre.
Los valores de los atributos deben siempre ir encerrados entre comillas simples o dobles. En HTML, los valores de los atributos se pueden escribir sin comillas. Sin embargo, esto es incorrecto en XHTML, siempre hay que encerrar los valores de los atributos entre comillas dobles o comillas simples.
No está permitida la minimización de atributos. En aquellos casos en que el atributo no tiene definido un conjunto de valores, sino que simplemente está o no está, se usa el nombre del atributo como único valor posible. En HTML, es posible minimizar los valores de los atributos, y simplemente se escribe el nombre del atributo como vemos aquí en este ejemplo <dl compact> o <option selected> o <input checked>. Esto es totalmente incorrecto en XHTML. En XHTML se tiene que asignar siempre un valor y se toma la regla de asignarle como valor el mismo nombre del atributo.
El tratamiento de los espacios en blanco en los valores de los atributos varía en XHTML respecto a HTML:
Los espacios en blanco al principio y al final se eliminan.
Y uno o más espacios en blanco, incluyendo los saltos de línea, se traducen en un único espacio en blanco entre las palabras del valor de un atributo.
En XHTML, el contenido de la etiqueta <script> y <style> está definido como #PCDATA. Como resultado de ellos, los símbolos < y & se interpretan por parte del procesador de XML como inicio de etiqueta y como entidad de carácter. Si se encierra el contenido de script o de estilo con CDATA se evita este comportamiento. Como alternativa más cómoda, también se pueden almacenar en ficheros separados.
En SGML se pueden definir exclusiones: evitar que ciertos elementos sean contenidos en otros elementos. Esto no es posible definirlo en XML y, por tanto, tampoco en XHTML. En XHTML no se pueden definir de forma formal a través del DTD, sino que sólo se puede proporcionar en forma de lista.
En HTML 4, tanto el atributo name como el atributo id se pueden emplear para identificar un fragmento de código. En XHTML sólo es posible emplear el atributo id.
En HTML, el tratamiento de los atributos con conjuntos de valores predefinidos, como align o type, es no sensible a mayúsculas y minúsculas. Sin embargo, en XHTML sí que es sensible a las mayúsculas y minúsculas y se deben escribir siempre los valores en minúsculas.
En HTML, las referencias de entidad se pueden escribir como &X y el código hexadecimal o como &x y el código hexadecimal. En XML, y por tanto en XHTML, sólo se puede emplear la versión en minúsculas.
Y con esto termina este videotutorial sobre las diferencias entre HTML y XHTML. Como hemos visto, estas diferencias están originadas por el hecho de que XHTML es una aplicación de XML que impone una serie de reglas más estrictas.
Si necesitas más información o quieres contactar conmigo, en mis páginas web http://accesibilidadweb.dlsi.ua.es y en http://desarrolloweb.dlsi.ua.es podrás encontrar más información sobre la accesibilidad web y el desarrollo web o también puedes contactar directamente conmigo a través de mi dirección de correo electrónico sergio.lujan@ua.es.
No hay comentarios:
Publicar un comentario