De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar

El lenguaje de marcado de hipertexto extensible ( XHTML ) es parte de la familia de lenguajes de marcado XML . Refleja o amplía las versiones del lenguaje de marcado de hipertexto (HTML), el lenguaje en el que se formulan las páginas web .

Mientras que HTML, antes de HTML5 , se definía como una aplicación del lenguaje de marcado estándar generalizado (SGML), un marco de lenguaje de marcado flexible, XHTML es una aplicación de XML , un subconjunto más restrictivo de SGML. Los documentos XHTML están bien formados y, por lo tanto, pueden analizarse utilizando analizadores XML estándar, a diferencia de HTML, que requiere un analizador específico de HTML indulgente. [1]

XHTML 1.0 se convirtió en una recomendación del World Wide Web Consortium (W3C) el 26 de enero de 2000. XHTML 1.1 se convirtió en una recomendación del W3C el 31 de mayo de 2001. El estándar conocido como XHTML5 se está desarrollando como una adaptación XML de la especificación HTML5. [2] [3]

Resumen

XHTML 1.0 es "una reformulación de los tres tipos de documentos HTML 4 como aplicaciones de XML 1.0". [4] El Consorcio World Wide Web (W3C) también continúa manteniendo la Recomendación HTML 4.01, y las especificaciones para HTML5 y XHTML5 se están desarrollando activamente. En el documento actual de la Recomendación XHTML 1.0, publicado y revisado en agosto de 2002, el W3C comentó que, "La familia XHTML es el siguiente paso en la evolución de Internet. Al migrar a XHTML hoy, los desarrolladores de contenido pueden ingresar al mundo XML con todos sus beneficios asociados, sin dejar de tener confianza en la compatibilidad con versiones anteriores y futuras de su contenido ". [4]

Sin embargo, en 2005, el Grupo de Trabajo de Tecnología de Aplicación de Hipertexto Web (WHATWG) se formó, independientemente del W3C, para trabajar en el avance del HTML ordinario no basado en XHTML. El WHATWG finalmente comenzó a trabajar en un estándar que admitía serializaciones XML y no XML , HTML5 , en paralelo a los estándares W3C como XHTML 2. En 2007, el grupo de trabajo HTML del W3C votó para reconocer oficialmente HTML5 y trabajar en él como el próximo -generación estándar HTML. [5] En 2009, el W3C permitió que expirara el estatuto del Grupo de Trabajo XHTML 2, reconociendo que HTML5 sería el único estándar HTML de próxima generación, incluidas las serializaciones XML y no XML. [6] De las dos serializaciones, el W3C sugiere que la mayoría de los autores usen la sintaxis HTML, en lugar de la sintaxis XHTML. [7]

Motivación

XHTML fue desarrollado para hacer HTML más extensible y aumentar la interoperabilidad con otros formatos de datos. [8] Además, los navegadores perdonaban los errores en HTML y la mayoría de los sitios web se mostraban a pesar de los errores técnicos en el marcado; XHTML introdujo un manejo de errores más estricto. [9] HTML 4 era aparentemente una aplicación del lenguaje de marcado estándar generalizado (SGML); sin embargo, la especificación de SGML era compleja y ni los navegadores web ni la Recomendación HTML 4 la cumplían plenamente. [10] El estándar XML, aprobado en 1998, proporcionó un formato de datos más simple, más cercano en simplicidad a HTML 4. [11]Al cambiar a un formato XML, se esperaba que HTML se volviera compatible con herramientas XML comunes; [12] los servidores y proxies podrían transformar el contenido, según sea necesario, para dispositivos restringidos como teléfonos móviles. [13] Al usar espacios de nombres , los documentos XHTML podrían proporcionar extensibilidad al incluir fragmentos de otros lenguajes basados ​​en XML como Scalable Vector Graphics y MathML . [14] Finalmente, el trabajo renovado brindaría la oportunidad de dividir HTML en componentes reutilizables ( Modularización XHTML ) y limpiar partes desordenadas del lenguaje. [15]

Relación con HTML

Existen varias diferencias entre XHTML y HTML. El Document Object Model (DOM) es una estructura de árbol que representa la página internamente en las aplicaciones, y XHTML y HTML son dos formas diferentes de representar eso en el marcado. Ambos son menos expresivos que el DOM; por ejemplo, "-" se puede colocar en los comentarios del DOM, pero no se puede representar en un comentario ni en XHTML ni en HTML, y generalmente la sintaxis XML de XHTML es más expresiva que HTML (por ejemplo , los espacios de nombres arbitrarios no están permitidos en HTML). XHTML usa una sintaxis XML, mientras que HTML usa un pseudo- SGMLsintaxis (oficialmente SGML para HTML 4 y anteriores, pero nunca en la práctica, y estandarizada fuera de SGML en HTML5). Debido a que el contenido expresable del DOM en la sintaxis es ligeramente diferente, hay algunos cambios en el comportamiento real entre los dos modelos. Sin embargo, las diferencias de sintaxis se pueden superar implementando un marco de traducción alternativo dentro del marcado.

Primero, existen algunas diferencias en la sintaxis: [16]

  • En términos generales, las reglas XML requieren que todos los elementos se cierren, ya sea mediante una etiqueta de cierre separada o utilizando una sintaxis de cierre automático (p <br/>. Ej. ), Mientras que la sintaxis HTML permite que algunos elementos no se cierren porque están siempre vacíos (p <input>. Ej. ) O su final puede determinarse implícitamente ("omisibilidad", por ejemplo <p>).
  • XML distingue entre mayúsculas y minúsculas para los nombres de elementos y atributos , mientras que HTML no lo es.
  • Algunas funciones abreviadas en HTML se omiten en XML, como (1) la minimización de atributos , donde los valores de los atributos o sus comillas pueden omitirse (por ejemplo , <option selected>o <option selected=selected>, mientras que en XML esto debe expresarse como <option selected="selected">); (2) la minimización de elementos puede usarse para eliminar elementos por completo (como se <tbody>infiere en una tabla si no se da); y (3) la sintaxis SGML raramente utilizada para la minimización de elementos ("shorttag"), que la mayoría de los navegadores no implementan. [17]
  • Existen muchos otros requisitos técnicos relacionados con los espacios de nombres y el análisis preciso de espacios en blanco y ciertos caracteres y elementos. El análisis exacto de HTML en la práctica no ha sido definido hasta hace poco; consulte la especificación HTML5 ( [HTML5] ) para obtener todos los detalles, o el resumen de trabajo ( HTML frente a XHTML ).

Además de las diferencias sintácticas, existen algunas diferencias de comportamiento, que surgen principalmente de las diferencias subyacentes en la serialización. Por ejemplo:

  • El comportamiento de los errores de análisis es diferente. Un error fatal de análisis en XML (como una estructura de etiqueta incorrecta) hace que se anule el procesamiento del documento.
  • La mayoría del contenido que requiere espacios de nombres no funcionará en HTML, excepto el soporte integrado para SVG y MathML en el analizador HTML5 junto con ciertos prefijos mágicos como xlink.
  • El procesamiento de JavaScript es diferente en XHTML, con cambios menores en la distinción entre mayúsculas y minúsculas en algunas funciones y precauciones adicionales para restringir el procesamiento a contenido bien formado. Los scripts no deben utilizar el método; no está disponible para XHTML. La propiedad está disponible, pero no insertará contenido con formato incorrecto. Por otro lado, se puede utilizar para insertar contenido con espacios de nombres bien formado en XHTML.document.write()innerHTML
  • Las hojas de estilo en cascada (CSS) también se aplican de forma diferente. Debido a la distinción entre mayúsculas y minúsculas de XHTML, todos los selectores de CSS se vuelven sensibles a las mayúsculas y minúsculas para los documentos XHTML. [18] Algunas propiedades CSS, como fondos, establecidas en el <body>elemento en HTML se 'heredan hacia arriba' en el <html>elemento; parece que [se necesita aclaración ] no es el caso de XHTML. [19]

Adopción

Las similitudes entre HTML 4.01 y XHTML 1.0 llevaron a muchos sitios web y sistemas de administración de contenido a adoptar la Recomendación inicial W3C XHTML 1.0. Para ayudar a los autores en la transición, el W3C brindó orientación sobre cómo publicar documentos XHTML 1.0 de una manera compatible con HTML y distribuirlos en navegadores que no fueron diseñados para XHTML. [20] [21]

Dicho contenido "compatible con HTML" se envía utilizando el tipo de medio HTML ( text/html) en lugar del tipo de medio oficial de Internet para XHTML ( application/xhtml+xml). Al medir la adopción de XHTML a la de HTML normal, por lo tanto, es importante distinguir si se está comparando el uso del tipo de medio o el contenido real del documento. [22] [23]

La mayoría de los navegadores web tienen un soporte maduro [24] para todos los posibles tipos de medios XHTML. [25] La excepción notable son las versiones 8 y anteriores de Internet Explorer de Microsoft ; en lugar de representar el application/xhtml+xmlcontenido, un cuadro de diálogo invita al usuario a guardar el contenido en el disco. Tanto Internet Explorer 7 (lanzado en 2006) como Internet Explorer 8 (lanzado en marzo de 2009) presentan este comportamiento. [26] El desarrollador de Microsoft, Chris Wilson, explicó en 2005 que las prioridades de IE7 eran la mejora de la seguridad del navegador y el soporte de CSS , y que el soporte XHTML adecuado sería difícil de injertar en el analizador de HTML orientado a la compatibilidad de IE;[27] sin embargo, Microsoft agregó soporte para verdadero XHTML en IE9 . [28]

Mientras el soporte no esté generalizado, la mayoría de los desarrolladores web evitan el uso de XHTML que no es compatible con HTML, [29] por lo que las ventajas de XML como espacios de nombres, análisis más rápido y navegadores de menor tamaño no benefician al usuario. [30] [31] [32]

Crítica

A principios de la década de 2000, algunos desarrolladores web comenzaron a preguntarse por qué los autores web dieron el salto a la creación en XHTML. [33] [34] [35] Otros respondieron que los problemas atribuidos al uso de XHTML podrían atribuirse principalmente a dos fuentes principales: la producción de documentos XHTML no válidos por algunos autores web y la falta de soporte para XHTML integrado en Internet Explorer. 6 . [36] [37] Continuaron describiendo los beneficios de los documentos web basados ​​en XML (es decir, XHTML) con respecto a la búsqueda, la indexación y el análisis, así como la preparación de la propia Web para el futuro.

En octubre de 2006, el inventor de HTML y presidente del W3C, Tim Berners-Lee , al presentar un importante esfuerzo del W3C para desarrollar una nueva especificación HTML, publicó en su blog que "El intento de hacer que el mundo cambiara a XML ... de una vez no El gran público que genera HTML no se movió ... Algunas grandes comunidades sí cambiaron y están disfrutando de los frutos de sistemas bien formados ... El plan es crear un grupo HTML completamente nuevo ". [38] El borrador de trabajo actual de HTML5 dice que "se ha prestado especial atención a la definición de criterios de conformidad claros para los agentes de usuario en un esfuerzo por mejorar la interoperabilidad ... al mismo tiempo que se actualizan las especificaciones HTML para abordar los problemas planteados en los últimos años". Ian Hickson, editor de la especificación HTML5 que critica el uso indebido de XHTML en 2002, [33] es miembro del grupo que desarrolla esta especificación y figura como uno de los coeditores del borrador de trabajo actual. [39]

Simon Pieters investigó la compatibilidad con XML de los navegadores móviles [40] y concluyó que “la afirmación de que XHTML sería necesario para dispositivos móviles es simplemente un mito”.

Versiones de XHTML

XHTML 1.0

En épocas anteriores [ ¿cuándo? ] , Wikipedia utilizó el tipo de documento y la sintaxis de transición XHTML 1.0, aunque no se sirvió como XHTML.

Diciembre de 1998 vio la publicación de un Borrador de Trabajo del W3C titulado Reformulando HTML en XML . Esto introdujo Voyager, el nombre en clave para un nuevo lenguaje de marcado basado en HTML 4, pero adhiriéndose a las reglas de sintaxis más estrictas de XML. En febrero de 1999, el nombre de la especificación había cambiado a XHTML 1.0: el lenguaje de marcado de hipertexto extensible , y en enero de 2000 se adoptó oficialmente como recomendación del W3C. [41] Hay tres DTD formales para XHTML 1.0, correspondientes a las tres versiones diferentes de HTML 4.01:

  • XHTML 1.0 Strict es el equivalente XML a HTML 4.01 estricto e incluye elementos y atributos que no se han marcado como obsoletos en la especificación HTML 4.01. A noviembre de 2015 , XHTML 1.0 Strict es el tipo de documento utilizado para la página de inicio del sitio web del World Wide Web Consortium .
  • XHTML 1.0 Transitional es el equivalente XML de HTML 4.01 Transitional e incluye los elementos de presentación (como center, fonty strike) excluidos de la versión estricta.
  • El conjunto de marcos XHTML 1.0 es el equivalente XML del conjunto de marcos HTML 4.01 y permite la definición de documentos del conjunto de marcos, una característica común de la Web a finales de la década de 1990.

La segunda edición de XHTML 1.0 se convirtió en una Recomendación del W3C en agosto de 2002. [42]

Modularización de XHTML

La modularización proporciona una colección abstracta de componentes a través de los cuales XHTML se puede subdividir y extender. La función está destinada a ayudar a XHTML a extender su alcance a plataformas emergentes, como dispositivos móviles y televisores habilitados para la Web. El borrador inicial de la modularización de XHTML estuvo disponible en abril de 1999 y alcanzó el estatus de Recomendación en abril de 2001. [43]

Las primeras variantes modulares de XHTML fueron XHTML 1.1 y XHTML Basic 1.0.

En octubre de 2008, la modularización de XHTML fue reemplazada por XHTML Modularization 1.1 , que agrega una implementación de esquema XML . El mismo fue reemplazado por una segunda edición en julio de 2010. [44]

XHTML 1.1: XHTML basado en módulos

XHTML 1.1 evolucionó a partir del trabajo relacionado con la modularización inicial de la especificación XHTML . El W3C publicó un primer borrador en septiembre de 1999; Estado Recomendación se alcanzó en mayo de 2001. [45] Los módulos combinados dentro XHTML 1.1 recrear eficazmente XHTML 1.0 Strict, con la adición de rubí de anotación elementos ( ruby, rbc, rtc, rb, rty rp) a un mejor apoyo idiomas de Asia Oriental. Otros cambios incluyen la eliminación del nameatributo de las ay los mapelementos, y (en la primera edición de la lengua) la eliminación del langatributo en favor de xml:lang.

Aunque XHTML 1.1 es ampliamente compatible con XHTML 1.0 y HTML 4, en agosto de 2002 el Grupo de Trabajo emitió una Nota formal advirtiendo que no debería transmitirse con el tipo de medio HTML. [46] Con un soporte de navegador limitado para el application/xhtml+xmltipo de medio alternativo , XHTML 1.1 demostró ser incapaz de obtener un uso generalizado. En enero de 2009 se publicó una segunda edición del documento ( Tipos de medios XHTML - Segunda edición ), que relajó esta restricción y permitió que se sirviera XHTML 1.1 como text/html. [47]

Se publicó una segunda edición de XHTML 1.1 el 23 de noviembre de 2010, que aborda varias erratas y agrega una implementación de esquema XML no incluida en la especificación original. [48] (Se publicó por primera vez brevemente el 7 de mayo de 2009 como una "Recomendación editada propuesta" [49] antes de ser rescindida el 19 de mayo debido a problemas no resueltos).

XHTML básico

Dado que los dispositivos de información pueden carecer de los recursos del sistema para implementar todos los módulos abstractos XHTML, el W3C definió una especificación XHTML con funciones limitadas llamada XHTML Basic. Proporciona un subconjunto de funciones mínimo suficiente para la creación de contenido más común. La especificación se convirtió en una recomendación del W3C en diciembre de 2000. [50]

De todas las versiones de XHTML, XHTML Basic 1.0 proporciona la menor cantidad de funciones. Con XHTML 1.1, es una de las dos primeras implementaciones de XHTML modular. Además de los módulos centrales (estructura, texto, hipertexto y lista), implementa los siguientes módulos abstractos: base, formularios básicos, tablas básicas, imagen, enlace, metainformación, objeto, hoja de estilo y destino. [51] [52]

XHTML Basic 1.1 reemplaza el módulo de formularios básicos con el módulo de formularios y agrega los módulos de eventos intrínsecos, presentación y secuencias de comandos. También admite etiquetas y atributos adicionales de otros módulos. Esta versión se convirtió en una recomendación del W3C el 29 de julio de 2008. [53]

La versión actual de XHTML Basic es 1.1 Second Edition (23 de noviembre de 2010), en la que el lenguaje se vuelve a implementar en el lenguaje de esquema XML del W3C . Esta versión también admite el langatributo. [54]

XHTML-Print

XHTML-Print, que se convirtió en una recomendación del W3C en septiembre de 2006, es una versión especializada de XHTML Basic diseñada para documentos impresos desde dispositivos de información hasta impresoras de gama baja . [55]

Perfil móvil XHTML

XHTML Mobile Profile (abreviado XHTML MP o XHTML-MP) es una variante de terceros de la especificación XHTML Basic del W3C. Al igual que XHTML Basic, XHTML se desarrolló para dispositivos de información con recursos de sistema limitados.

En octubre de 2001, una sociedad limitada llamada Wireless Application Protocol Forum comenzó a adaptar XHTML Basic para WAP 2.0 , la segunda versión principal del Wireless Application Protocol . WAP Forum basó su DTD en la modularización de XHTML del W3C, incorporando los mismos módulos que el W3C usó en XHTML Basic 1.0, excepto el módulo de destino. Comenzando con esta base, el Foro WAP reemplazó el Módulo de Formularios Básico con una implementación parcial del Módulo de Formularios, agregó soporte parcial para los módulos Legacy y Presentation, y agregó soporte completo para el Módulo de Atributo de Estilo.

En 2002, el Foro WAP se incorporó a la Open Mobile Alliance (OMA), que continuó desarrollando XHTML Mobile Profile como un componente de su especificación de navegación OMA.

Perfil móvil XHTML 1.1

A esta versión, finalizada en 2004, la OMA agregó soporte parcial para el Módulo de Scripting y soporte parcial para Eventos Intrínsecos. XHTML MP 1.1 es parte de v2.1 de la Especificación de navegación OMA (1 de noviembre de 2002). [56]

Perfil móvil XHTML 1.2

Esta versión, finalizada el 27 de febrero de 2007, amplía las capacidades de XHTML MP 1.1 con soporte completo para el módulo de formularios y los modos de entrada de texto OMA. XHTML MP 1.2 es parte de la v2.3 de la Especificación de navegación OMA (13 de marzo de 2007). [56]

Perfil móvil XHTML 1.3

XHTML MP 1.3 (finalizado el 23 de septiembre de 2008) utiliza la definición de tipo de documento XHTML Basic 1.1 , que incluye el Módulo de destino. Los eventos en esta versión de la especificación se actualizan a las especificaciones DOM Nivel 3 (es decir, son independientes de la plataforma y el idioma).

XHTML 1.2

El Grupo de Trabajo XHTML 2 consideró la creación de un nuevo lenguaje basado en XHTML 1.1. [57] Si se creara XHTML 1.2, incluiría WAI-ARIA y roleatributos para soportar mejor las aplicaciones web accesibles, y una mejor compatibilidad con la Web Semántica a través de RDFa . El inputmodeatributo de XHTML Basic 1.1, junto con el targetatributo (para especificar objetivos de marco ) también pueden estar presentes. El XHTML2 WG no había sido autorizado para llevar a cabo el desarrollo de XHTML1.2. Dado que el W3C anunció que no tiene la intención de renovar el XHTML2 WG, [6] y cerró el WG en diciembre de 2010, esto significa que la propuesta de XHTML 1.2 no se concretaría.

XHTML 2.0

Entre agosto de 2002 y julio de 2006, el W3C lanzó ocho borradores de trabajo de XHTML 2.0, una nueva versión de XHTML capaz de romper con el pasado descartando el requisito de compatibilidad con versiones anteriores. Esta falta de compatibilidad con XHTML 1.xy HTML 4 provocó una controversia temprana en la comunidad de desarrolladores web. [58] Algunas partes del lenguaje (como los roleatributos y RDFa) se separaron posteriormente de la especificación y se trabajaron como módulos separados, en parte para ayudar a que la transición de XHTML 1.xa XHTML 2.0 sea más fluida. Se esperaba que apareciera un noveno borrador de XHTML 2.0 en 2009, pero el 2 de julio de 2009, el W3C decidió dejar que el estatuto del Grupo de Trabajo XHTML2 expirara a finales de ese año, deteniendo efectivamente cualquier desarrollo adicional del borrador en un estándar. [6] En cambio, XHTML 2.0 y sus documentos relacionados se publicaron como Notas del W3C en 2010. [59] [60]

Las nuevas características que ha introducido XHTML 2.0 incluyen:

  • Los formularios HTML iban a ser reemplazados por XForms , una especificación de entrada de usuario basada en XML que permite que los formularios se muestren adecuadamente para diferentes dispositivos de renderizado.
  • Los marcos HTML iban a ser reemplazados por XFrames .
  • Los eventos DOM debían ser reemplazados por eventos XML , que usa el modelo de objetos de documento XML .
  • Se nldebía incluir un nuevo tipo de elemento de lista, el tipo de elemento, para designar específicamente una lista como lista de navegación. Esto habría sido útil para crear menús anidados, que actualmente se crean mediante una amplia variedad de medios, como listas anidadas desordenadas o listas de definición anidadas.
  • Cualquier elemento debía poder actuar como hipervínculo , e. g., <li href="articles.html">Articles</li>similar a XLink . Sin embargo, XLink en sí no es compatible con XHTML debido a diferencias de diseño.
  • Cualquier elemento debía poder hacer referencia a medios alternativos con el srcatributo, e. g., <p src="lbridge.jpg" type="image/jpeg">London Bridge</p>es lo mismo que <object src="lbridge.jpg" type="image/jpeg"><p>London Bridge</p></object>.
  • Se eliminó altel atributo del imgelemento: se debía dar un texto alternativo en el contenido del imgelemento, al igual que el objectelemento, e. g., <img src="hms_audacious.jpg">HMS <span class="italic">Audacious</span></img>.
  • Se hagregó un solo elemento de encabezado ( ). El nivel de estos encabezados fue determinado por la profundidad de la anidación. Esto habría permitido que el uso de encabezados fuera infinito, en lugar de limitar el uso a seis niveles de profundidad.
  • Los elementos de presentación restantes i, by ttaún permitidos en XHTML 1.x (incluso Strict), debían estar ausentes en XHTML 2.0. Los únicos elementos de presentación que quedaban debían ser supy subpara superíndice y subíndice, respectivamente, porque tienen usos importantes no relacionados con la presentación y son requeridos por ciertos idiomas. Todas las demás etiquetas estaban destinadas a ser semánticas (p. Ej., strongPara un énfasis fuerte ) al tiempo que permitían al agente de usuario controlar la presentación de elementos a través de CSS (p. Ej., Representadas como texto en negrita en la mayoría de los navegadores visuales, pero posiblemente representadas con cambios de tono en un texto). a lector de voz, fuente más grande + cursiva según las reglas en una hoja de estilo de final de usuario, etc.).
  • La adición de RDF triple con los atributos propertyy aboutpara facilitar la conversión de XHTML a RDF / XML.

XHTML5

HTML5 creció independientemente del W3C, a través de un grupo flexible de fabricantes de navegadores y otras partes interesadas que se autodenominan WHATWG , o Grupo de Trabajo de Tecnología de Aplicaciones de Hipertexto Web. El motivo clave del grupo fue crear una plataforma para aplicaciones web dinámicas; Consideraron que XHTML 2.0 estaba demasiado centrado en los documentos y no era adecuado para la creación de sitios de foros de Internet o tiendas en línea. [61]

HTML5 tiene una text/htmlserialización regular y una serialización XML, que también se conoce como XHTML5 . [62] El lenguaje es más compatible con HTML 4 y XHTML 1.x que con XHTML 2.0, debido a la decisión de mantener el modelo de eventos y elementos de formulario HTML existente. Sin embargo, agrega muchos elementos nuevos que no se encuentran en XHTML 1.x, como las etiquetas sectiony aside.

El lenguaje XHTML5, como HTML5, usa una declaración DOCTYPE sin DTD. Además, la especificación desaprueba los DTD XHTML anteriores al pedir a los navegadores que los reemplacen por uno que contenga solo definiciones de entidad para caracteres con nombre durante el análisis. [62]

Contenido semántico en XHTML

XHTML + RDFa es una versión extendida del lenguaje de marcado XHTML para soportar RDF a través de una colección de atributos y reglas de procesamiento en forma de documentos XML bien formados . Este lenguaje anfitrión es una de las técnicas que se utilizan para desarrollar contenido de la Web Semántica mediante la incorporación de un rico marcado semántico.

Documentos XHTML válidos

Se dice que un documento XHTML que se ajusta a una especificación XHTML es válido . La validez asegura la coherencia en el código del documento, lo que a su vez facilita el procesamiento, pero no necesariamente garantiza una representación coherente por parte de los navegadores. Se puede verificar la validez de un documento con el servicio de validación de marcado del W3C (para XHTML5, se debe usar Validator.nu Living Validator). En la práctica, muchos programas de desarrollo web proporcionan validación de código basada en los estándares del W3C .

Elemento raíz

El elemento raíz de un documento XHTML debe ser htmly debe contener un xmlnsatributo para asociarlo con el espacio de nombres XHTML . El URI del espacio de nombres para XHTML es http://www.w3.org/1999/xhtml. La etiqueta de ejemplo a continuación también presenta un xml:langatributo para identificar el documento con un lenguaje natural :

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

DOCTYPEs

Para validar un documento XHTML , se puede utilizar una Declaración de tipo de documento o DOCTYPE . Un DOCTYPE declara al navegador la definición de tipo de documento (DTD) a la que se ajusta el documento. Se debe colocar una Declaración de tipo de documento antes del elemento raíz .

La parte del identificador del sistema del DOCTYPE, que en estos ejemplos es la URL que comienza con http://, solo necesita apuntar a una copia del DTD para usar, si el validador no puede ubicar uno basado en el identificador público (la otra cadena entre comillas). No es necesario que sea la URL específica que se encuentra en estos ejemplos; de hecho, se anima a los autores a utilizar copias locales de los archivos DTD cuando sea posible. Sin embargo, el identificador público debe ser carácter por carácter igual que en los ejemplos.

Declaración XML

Se puede especificar una codificación de caracteres al principio de un documento XHTML en la declaración XML cuando el documento se entrega utilizando el tipo application/xhtml+xml MIME . (Si un documento XML carece de especificación de codificación, un analizador XML asume que la codificación es UTF-8 o UTF-16 , a menos que la codificación ya haya sido determinada por un protocolo superior).

Por ejemplo:

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

La declaración puede omitirse opcionalmente porque declara como su codificación la codificación predeterminada. Sin embargo, si el documento utiliza XML 1.1 u otra codificación de caracteres, es necesaria una declaración. Internet Explorer anterior a la versión 7 entra en modo peculiar , si encuentra una declaración XML en un documento servido como text/html.

Compatibilidad con versiones anteriores

Los documentos XHTML 1.x son en su mayoría compatibles con versiones anteriores de los agentes de usuario de HTML 4 cuando se siguen las pautas adecuadas. XHTML 1.1 es esencialmente compatible, aunque los elementos para la anotación ruby no forman parte de la especificación HTML 4 y, por lo tanto, generalmente los navegadores HTML 4 los ignoran. Los módulos XHTML 1.x posteriores, como los del roleatributo RDFa y WAI-ARIA, se degradan con gracia de manera similar.

XHTML 2.0 es significativamente menos compatible, aunque esto puede mitigarse hasta cierto punto mediante el uso de secuencias de comandos. (Esto puede ser una simple frase, como el uso de " document.createElement()" para registrar un nuevo elemento HTML dentro de Internet Explorer, o marcos JavaScript completos, como la implementación de FormFaces de XForms ).

Ejemplos

Los siguientes son ejemplos de XHTML 1.0 Strict, y ambos tienen el mismo resultado visual. El primero sigue las Pautas de compatibilidad HTML de la Nota de tipos de medios XHTML, mientras que el último rompe la compatibilidad con versiones anteriores, pero proporciona un marcado más limpio. [47]

Ejemplo 1.

<! 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 = " en "  lang = " en " >  <head>  <meta  http-equiv = " Content-Type "  content = " text / html; charset = utf -8 " />  <title> XHTML 1.0 Strict Example </title>  <script  type = " text / javascript " > // <! [CDATA [ function loadpdf () {  document.getElementById (" pdf-object "). Src = "http://www.w3.org/TR/xhtml1/xhtml1.pdf "; } //]]>  </script> </head>  <body  onload = "loadpdf ()" >  <p> Este es un ejemplo de un documento <abbr  title = "Extensible HyperText Markup Language" > XHTML </abbr> 1.0 Strict. <br  />  <img  id = "validation-icon"  src = "http://www.w3.org/Icons/valid-xhtml10"  alt = "XHTML 1.0 estricto válido" /> <br  />  <object  id = "objeto-pdf"  nombre = "objeto-pdf"  tipo = "aplicación / pdf"  data = "http: // www.w3.org/TR/xhtml1/xhtml1.pdf "  ancho = " 100% "  alto ="500" >  </objeto>  </p>  </body> </html>

Ejemplo 2.

<? xml version = "1.0" encoding = "UTF-8"?> <! 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 = " en " >  <head>  <title> XHTML 1.0 Strict Example </ title>  <script  type = "application / javascript" >  <! [CDATA [ function loadpdf () {  document.getElementById ("pdf-object") .src = "http://www.w3.org/TR/xhtml1/ xhtml1.pdf "; } ]]>  </script>  </head> <body  onload = "loadpdf ()" >  <p>Este es un ejemplo de un documento <abbr  title = "Extensible HyperText Markup Language" > XHTML </abbr> 1.0 Strict. <br  />  <img  id = "validation-icon"  src = "http://www.w3.org/Icons/valid-xhtml10"  alt = "XHTML 1.0 estricto válido" /> <br  />  <object  id = "pdf-object"  type = "application / pdf"  data = "http://www.w3.org/TR/xhtml1/xhtml1.pdf"  width = "100%"  height = "500" > </object>  < / p> </body> </html>

Notas:

  1. La función "loadpdf" es en realidad una solución para Internet Explorer. Se puede reemplazar agregando <param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf"/>dentro <object>.
  2. El imgelemento no obtiene un nameatributo en XHTML 1.0 Strict DTD . Úselo en su idlugar.

Compatibilidad cruzada de XHTML y HTML

Las serializaciones HTML5 y XHTML5 son en gran medida compatibles entre sí si se adhieren a la sintaxis XHTML5 más estricta, pero hay algunos casos en los que XHTML no funcionará como HTML5 válido (p. Ej., Las instrucciones de procesamiento están obsoletas en HTML [ aclarar ] , se tratan como comentarios y cerrar en el primer ">", mientras que están totalmente permitidos en XML, se tratan como su propio tipo y cierran en " ?>"). [63]

Ver también

  • Protocolo de interfaz de usuario extensible
  • HTML
  • Lista de referencias a entidades de caracteres XML y HTML

Referencias

  1. ^ Graff, Eliot (7 de mayo de 2014). "Polyglot Markup: un perfil robusto del vocabulario HTML5" . W3C .
  2. ^ "HTML frente a XHTML" . whatwg.org .
  3. ^ "El blog de WHATWG" . whatwg.org .
  4. ^ a b "Especificación XHTML 1.0, Sección 1: ¿Qué es XHTML?" . Consorcio World Wide Web . 2000-01-26 . Consultado el 16 de junio de 2007 .
  5. ^ "resultados de texto HTML 5, editor, preguntas sobre nombres" . w3.org .
  6. ^ a b c "Preguntas más frecuentes (FAQ) sobre el futuro de XHTML" . w3.org .
  7. ^ "Borrador de trabajo de HTML5, sección 1.6: HTML vs XHTML" . Consorcio World Wide Web . 2011-01-13 . Consultado el 16 de febrero de 2011 .
  8. ^ "Especificación XHTML 1.0, Sección 1.1: ¿Por qué es necesario XHTML?" . Consorcio World Wide Web . 2000-01-26 . Consultado el 16 de junio de 2007 .
  9. ^ Peregrino, Mark. "¿Cómo llegamos aquí? - Sumérjase en HTML5" . diveintohtml5.info . Consultado el 11 de junio de 2016 .
  10. Arjun Ray (6 de octubre de 1999). "Eliminando la Referencia Normativa a SGML (era: ACCIÓN ID.)" . Consultado el 29 de diciembre de 2008 . ... Sin embargo, dado que ISO 8879 no otorga a las aplicaciones el margen de maniobra para prohibir subconjuntos internos, se deduce que la letra de la especificación HTML [4] automáticamente la desautoriza para que sea una aplicación SGML conforme ...
  11. Tina Holmboe (6 de octubre de 2008). "XHTML: mitos y realidad" . El archivo del desarrollador . Consultado el 29 de diciembre de 2008 . ... Dado que los objetivos de diseño de XML en sí mismos reflejaban parcialmente los del HTML original, era lógico comenzar a trabajar en la formulación de un lenguaje de marcado basado en XML ...
  12. Kip Hampton (10 de enero de 2001). "Creación de utilidades web mediante XML :: XPath" . XML.com . Consultado el 29 de diciembre de 2008 . … El problema: desea aprovechar la potencia y la simplicidad que pueden ofrecer las herramientas XML, pero se enfrenta a un sitio lleno de documentos HTML antiguos. La solución: convierta sus documentos a XHTML y ponga Perl y empiece a trabajar ...XML::XPath
  13. Jean-Luc David (14 de abril de 2004). "Desarrollo de contenido inalámbrico usando XHTML Mobile" . XML.com . Consultado el 29 de diciembre de 2008 . … Una característica útil de XHTML es que se puede manipular como XML. Las plantillas de lenguaje de hoja de estilo extensible se pueden usar para transformar XHTML en WML o cualquier otro formato móvil propietario ...
  14. ^ "Curso intensivo de espacios de nombres" . Centro de desarrolladores de Mozilla . Consultado el 29 de diciembre de 2008 . … Ha sido un objetivo del W3C desde hace mucho tiempo hacer posible que diferentes tipos de contenido basado en XML se mezclen en el mismo archivo XML. Por ejemplo, SVG y MathML pueden incorporarse directamente en un documento científico basado en XHTML ...
  15. Steven Pemberton (21 de julio de 2004). "Preguntas frecuentes sobre HTML y XHTML" . Consorcio World Wide Web . Consultado el 29 de diciembre de 2008 . … Con un HTML basado en XML, otros lenguajes XML podrían incluir partes de XHTML, y los documentos XHTML podrían incluir partes de otros lenguajes de marcado. También podríamos aprovechar el rediseño para limpiar algunas de las partes más desordenadas de HTML y agregar algunas funciones nuevas necesarias, como mejores formularios ...
  16. Clark, James (15 de diciembre de 1997). "Comparación de SGML y XML" . Nota del Consorcio World Wide Web.
  17. ^ "Marcado de taquigrafía" . HTML 4, Apéndice B: Notas de rendimiento, implementación y diseño . W3C . Consultado el 30 de septiembre de 2011 .
  18. ^ "Sensibilidad a mayúsculas y minúsculas" . SitePoint Pty. Ltd . Consultado el 30 de septiembre de 2011 .
  19. ^ Wilson, Nicolás. "Diferencias CSS entre XHTML y HTML" .
  20. ^ "Especificación XHTML 1.0, Apéndice C: Pautas de compatibilidad HTML" . Consorcio World Wide Web . 2000-01-26 . Consultado el 16 de junio de 2007 .
  21. ^ "Tipos de medios XHTML, nota del grupo de trabajo W3C" . Consorcio World Wide Web . 2002-08-01 . Consultado el 12 de junio de 2008 .
  22. ^ [1]
  23. ^ Greta de Groat (2002). "Perspectivas en la Web y Google: Monika Henzinger , Directora de Investigación, Google", Journal of Internet Cataloging , vol. 5 (1), págs. 17-28, 2002.
  24. ^ Las primeras implementaciones (como Mozilla 0.7 y Opera 6.0, ambas lanzadas en 2001) no procesan XHTML de forma incremental a medida que se recibe a través de la red, lo que proporciona una experiencia de usuario degradada; consulte las preguntas frecuentes de Mozilla Web Author . Los navegadores posteriores como Opera 9.0, Safari 3.0 y Firefox 3.0 no tienen este problema.
  25. ^ "Prueba de tipo de medio XHTML - resultados" . w3.org .
  26. Chris Wilson (15 de septiembre de 2005). "El prólogo <? Xml>, el modo estricto y XHTML en IE" . Consultado el 16 de junio de 2007 . También he estado leyendo comentarios durante algún tiempo en el IEBlog solicitando soporte para el tipo MIME “application / xml + xhtml” en IE. Debo decir que IE7 no agregará soporte para este tipo MIME - por supuesto, continuaremos leyendo XHTML cuando se sirva como "texto / html", asumiendo que sigue las recomendaciones de compatibilidad HTML.
  27. Chris Wilson (15 de septiembre de 2005). "El prólogo <? Xml>, el modo estricto y XHTML en IE" . Consultado el 16 de junio de 2007 .... Si intentáramos admitir XHTML real en IE 7, habríamos terminado usando nuestro analizador HTML existente (que se centra en la compatibilidad) y pirateando las construcciones XML. Es muy poco probable que podamos soportar XHTML de esta manera; en particular, ciertamente no detectaríamos algunos casos de error aquí o allá, y admitiríamos silenciosamente los casos no válidos. Esto, por supuesto, causaría problemas de compatibilidad basados ​​en el manejo de errores del analizador en el futuro, lo que XML está tratando de evitar explícitamente; no queremos causar otro lío como el que tiene el manejo de errores HTML actual (basado en la compatibilidad con navegadores anteriores; puede culparme personalmente por eso de alguna manera, pero no a IE). Preferiría tomarme el tiempo para implementar XHTML correctamente después de IE 7, y que sea realmente interoperable ...
  28. Hachamovitch, Dean (16 de marzo de 2010). "HTML5, acelerado por hardware: primera vista previa de la plataforma IE9 disponible para desarrolladores" . IEBlog en Microsoft Developer Network . Microsoft . Consultado el 22 de marzo de 2010 . … En este momento, estamos buscando comentarios de los desarrolladores sobre nuestra implementación de las reglas de análisis de HTML5, las API de selección, la compatibilidad con XHTML y SVG en línea. Dentro de CSS3, buscamos comentarios de los desarrolladores sobre el soporte de IE9 para selectores, espacios de nombres, colores, valores, fondos y bordes, y fuentes.…
  29. ^ "Lista de sitios XHTML (los X-Philes)" . Consultado el 26 de agosto de 2008 .
  30. ^ "En 2007, 37 líderes en optimización de motores de búsqueda concluyeron que tener palabras clave en el atributo de palabras clave es poco o nada". Blog Sanger.nu, 9 de septiembre de 2008, consultado el 2 de agosto de 2011 Archivado el 21 de febrero de 2009 en Wayback Machine.
  31. ^ "Meta utilizada para SEO" . Archivado desde el original el 18 de marzo de 2016 . Consultado el 18 de marzo de 2016 .
  32. ^ Danny Sullivan , Cómo utilizar las metaetiquetas HTML , Search Engine Watch , 5 de diciembre de 2002
  33. ^ a b Ian Hickson, ex desarrollador del navegador Opera y cofundador de WHATWG (2002-09-08). "El envío de XHTML como texto / html se considera perjudicial" . Consultado el 16 de junio de 2007 .
  34. Anne van Kesteren, desarrolladora del navegador Opera (13 de junio de 2004). "XHTML no es HTML válido" . Consultado el 16 de junio de 2007 .
  35. ^ Maciej Stachowiak, desarrollador del navegador Safari de Apple (20 de septiembre de 2006). "Comprensión de HTML, XML y XHTML" . Consultado el 16 de junio de 2007 .
  36. Brad Fults (21 de diciembre de 2005). "Enviar XHTML como texto / html considerado nocivo para los sentimientos" . Consultado el 13 de septiembre de 2008 . No hay tantas desventajas (si las hay) de enviar XHTML como texto / html como afirma [Ian Hickson] y las ventajas que mencioné anteriormente hacen que valga la pena usarlo en mi humilde opinión. Hay algunas notas al pie de página sutiles y paréntesis [en el artículo de Hickson] que indican que la nocividad solo se aplica a los autores que no conocen las trampas de esta práctica, pero al igual que la etiqueta "No comer" en los pequeños paquetes de gel de sílice, Ian El aviso parece ser de sentido común y no vale la pena mencionarlo a ningún autor que realmente sepa qué es XHTML y cómo escribirlo.
  37. Paul McDonald (30 de junio de 2007). "El caso de XHTML" . Consultado el 13 de septiembre de 2008 . Algunas personas dicen que XHTML en la Web ha fallado, pero yo digo que es nuestro mayor éxito en la lucha por los Estándares Web. … Sin embargo, XHTML es algo bueno para la web, y es una pena que la gente esté tratando de presentar un caso en su contra. Para probar esto, desarrollaré el mito para usted y luego le mostraré por qué XHTML es lo mejor desde el pan de molde, cuando se trata de nuestra lucha por los estándares web. … Entonces, para concluir, enviar XHTML como texto / html no causa ningún daño o daño en ningún lugar hoy, siempre que su XHTML se valide. Y, si desea que los estándares web se generalicen cada vez más, utilice XHTML y valide sus páginas.
  38. Tim Berners-Lee (27 de octubre de 2006). "Reinventando HTML" . Archivado desde el original el 9 de junio de 2007 . Consultado el 16 de junio de 2007 . Algunas cosas están más claras en retrospectiva de varios años. Es necesario evolucionar HTML de forma incremental. El intento de hacer que el mundo cambiara a XML, incluidas las comillas alrededor de los valores de los atributos y las barras en las etiquetas vacías y los espacios de nombres de una sola vez, no funcionó. El gran público que genera HTML no se movió, en gran parte porque los navegadores no se quejaron. Algunas comunidades grandes cambiaron y están disfrutando de los frutos de sistemas bien formados, pero no todas. Es importante mantener HTML de forma incremental, así como continuar la transición a [un] mundo bien formado y desarrollar más poder en ese mundo.
    "El plan es crear un grupo HTML completamente nuevo. A diferencia del anterior, este estará habilitado para realizar mejoras incrementales en HTML, como también en xHTML paralelo. Tendrá una silla y un contacto de personal diferentes. Trabajará en HTML y xHTML juntos. Tenemos un fuerte apoyo para este grupo, de muchas personas con las que hemos hablado, incluidos los fabricantes de navegadores.
  39. ^ Ian Hickson; David Hyatt (13 de enero de 2011). "HTML5: un vocabulario y API asociadas para HTML y XHTML" . Consultado el 16 de febrero de 2011 .
  40. ^ Simon Pieters. "Resultados de las pruebas móviles" . Consultado el 31 de octubre de 2009 .
  41. ^ "XHTML 1.0: el lenguaje de marcado de hipertexto extensible, recomendación del W3C 26 de enero de 2000" . Consorcio World Wide Web . 2000-01-26 . Consultado el 19 de julio de 2008 .
  42. ^ "XHTML 1.0 El lenguaje de marcado de hipertexto extensible (segunda edición)" . Consorcio World Wide Web . 2002-08-01 . Consultado el 19 de julio de 2008 .
  43. ^ "Modularización de XHTML, Recomendación W3C 10 de abril de 2001" . Consorcio World Wide Web . 2001-04-10 . Consultado el 19 de julio de 2008 .
  44. ^ "Modularización XHTML 1.1 - Segunda edición, Recomendación W3C 29 de julio de 2010" . Consorcio World Wide Web . 2010-07-29 . Consultado el 31 de diciembre de 2010 .
  45. ^ "XHTML 1.1 - XHTML basado en módulos, Recomendación W3C 31 de mayo de 2001" . Consorcio World Wide Web . 2001-05-31 . Consultado el 19 de julio de 2008 .
  46. ^ "Tipos de medios XHTML, nota del grupo de trabajo del W3C 1 de agosto de 2002" . Consorcio World Wide Web . 2002-08-01 . Consultado el 19 de julio de 2008 .
  47. ^ a b "Tipos de medios XHTML - Segunda edición, Nota del grupo de trabajo W3C 16 de enero de 2009" . Consorcio World Wide Web . 2009-01-16 . Consultado el 28 de enero de 2009 .Este documento reemplaza las Pautas de compatibilidad HTML que se encuentran originalmente en XHTML 1.0 Apéndice C.
  48. ^ "XHTML 1.1, XHTML Basic 1.1, Recomendaciones de impresión XHTML revisadas" . ARCHIVO DE NOTICIAS DEL W3C: 2010 . Consorcio World Wide Web . Consultado el 12 de diciembre de 2010 .
  49. ^ "XHTML 1.1 - XHTML basado en módulos - Segunda edición" . Consorcio World Wide Web . 2009-05-07 . Consultado el 25 de mayo de 2009 .
  50. ^ "XHTML Basic, W3C Recomendación 19 de diciembre de 2000" . Consorcio World Wide Web . 2000-12-19 . Consultado el 19 de julio de 2008 .
  51. ^ "Comparaciones de sabores XHTML" . Consorcio World Wide Web . 2007-01-09 . Consultado el 30 de enero de 2013 .
  52. ^ XHTML básico . W3.org. Consultado el 17 de julio de 2013.
  53. ^ XHTML ™ Basic 1.1 . W3.org. Consultado el 17 de julio de 2013.
  54. ^ "XHTML ™ Basic 1.1 - Segunda edición" . w3.org .
  55. ^ "XHTML-Print, Recomendación W3C 20 de septiembre de 2006" . Consorcio World Wide Web . 2006-09-20 . Consultado el 19 de julio de 2008 .
  56. ^ a b "Archivo de exploración de OMA" . Lanzamientos de OMA . Open Mobile Alliance Ltd. 26 de septiembre de 2011.
  57. ^ "Agenda [XHTML]: 2008-07-09" . w3.org .
  58. ^ Vea tanto XHTML 2.0 Considerado Dañino como XHTML 2.0 Considerado Esperanzado por el desarrollador de navegadores Tantek Çelik, quien critica los primeros borradores de XHTML 2.0 por la ausencia delstyleatributo y elciteelemento. El desarrollador Daniel Glazman ofrece críticas similares , pero también muestra su apoyo a algunos cambios incompatibles con versiones anteriores, como la decisión de eliminar loselementosinsydel.
  59. ^ "XHTML 2.0, W3C Working Group Note 16 de diciembre de 2010" . Consorcio World Wide Web . 2010-12-16 . Consultado el 31 de diciembre de 2010 .
  60. ^ "Documentos del grupo de trabajo XHTML2 publicados como notas del W3C" . Consorcio World Wide Web . 2010-12-16 . Consultado el 31 de diciembre de 2010 .
  61. Ian Hickson (22 de enero de 2008). "HTML 5, 1.1.2. Relación con XHTML2" . Consorcio World Wide Web . Consultado el 19 de julio de 2008 . ... XHTML2 ... define un nuevo vocabulario HTML con mejores características para hipervínculos, contenido multimedia, anotación de ediciones de documentos, metadatos enriquecidos, formas interactivas declarativas y descripción de la semántica de obras literarias humanas como poemas y artículos científicos ... Sin embargo, carece de elementos para expresar la semántica de muchos de los tipos de contenido que no son documentos que se ven a menudo en la Web. Por ejemplo, los sitios de foros, sitios de subastas, motores de búsqueda, tiendas en línea y similares, no se ajustan bien a la metáfora del documento y no están cubiertos por XHTML2 ... Esto La especificación tiene como objetivo extender HTML para que también sea adecuado en estos contextos ...
  62. ^ a b "9 La sintaxis XHTML - HTML5" . w3.org .
  63. ^ HTML frente a XHTML , Wiki de WHATWG

Enlaces externos

  • Página de inicio de marcado del W3C
  • Recomendación XHTML 1.0
  • Recomendación XHTML 1.1
  • Nota del grupo de trabajo XHTML 2.0
  • XHTML básico
  • XHTML 1.0 Strict / 1.1 Referencia en línea
  • Enlaces relacionados con el tipo MIME de documentos XHTML:
    • Cuidado con XHTML
    • El envío de XHTML como texto / html se considera perjudicial
    • Entrega de XHTML con el tipo MIME correcto
    • El camino hacia XHTML 2.0: tipos MIME - Mark Pilgrim (19/3/2003). Incluye ejemplos para servir condicionalmente application/xhtml+xmlusando PHP , Python y Apache (mediante reescritura de URL ).
    • Preguntas frecuentes de Mozilla Web Author: ¿En qué se diferencia el tratamiento de los documentos application / xhtml + xml del tratamiento de los documentos de texto / html? - resume el modo de procesamiento XHTML de un navegador web
  • Elementos vacíos en SGML, HTML, XML y XHTML
  • Tutorial estricto de XHTML 1.0 básico de Heptagrama
  • Validador de marcado del W3C
  • Biblioteca de conversión de HTML a XHTML para .NET