El lenguaje de marcado de hipertexto extensible ( XHTML ) es parte de la familia de lenguajes de marcado XML que refleja o amplía versiones del ampliamente utilizado 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 de Lenguaje de marcado generalizado estándar (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 indulgente específico de HTML. [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. XHTML ahora se conoce como "la sintaxis XML para HTML" [2] [3] y está en desarrollo. como una adaptación XML del estándar de vida HTML. [4] [5]
XHTML 1.0 fue "una reformulación de los tres tipos de documentos HTML 4 como aplicaciones de XML 1.0". [6] El Consorcio World Wide Web (W3C) también mantuvo simultáneamente la Recomendación HTML 4.01. En el documento de 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 hoy a XHTML, los desarrolladores de contenido pueden ingresar al mundo XML con todas las sus beneficios asociados, sin dejar de confiar en la compatibilidad futura y retrospectiva de su contenido". [6]
Sin embargo, en 2005, se formó el Grupo de Trabajo de Tecnología de Aplicaciones de Hipertexto Web (WHATWG), 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.0. En 2007, el grupo de trabajo HTML del W3C votó a favor de reconocer oficialmente HTML5 y trabajar en él como el estándar HTML de próxima generación. [7] En 2009, el W3C permitió que expirara el estatuto del Grupo de Trabajo XHTML 2.0, reconociendo que HTML5 sería el único estándar HTML de próxima generación, incluyendo serializaciones XML y no XML. [8] De las dos serializaciones, el W3C sugiere que la mayoría de los autores utilizan la sintaxis HTML, en lugar de la sintaxis XHTML. [9]
Las recomendaciones del W3C de XHTML 1.0 y XHTML 1.1 se retiraron el 27 de marzo de 2018, [10] [11] junto con HTML 4.0, [12] HTML 4.01, [13] y HTML5. [14]
XHTML fue desarrollado para hacer HTML más extensible y aumentar la interoperabilidad con otros formatos de datos. [15] Además, los navegadores toleraban 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. [16] HTML 4 era aparentemente una aplicación del lenguaje de marcado generalizado estándar (SGML); sin embargo, la especificación para SGML era compleja y ni los navegadores web ni la Recomendación HTML 4 se ajustaban completamente a ella. [17] El estándar XML, aprobado en 1998, proporcionó un formato de datos más simple, más cercano en simplicidad a HTML 4. [18] Al cambiar a un formato XML, se esperaba que HTML fuera compatible con las herramientas XML comunes; [19] Los servidores y proxies podrían transformar el contenido, según sea necesario, para dispositivos restringidos como los teléfonos móviles. [20] Al utilizar 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 . [21] Finalmente, el trabajo renovado brindaría la oportunidad de dividir HTML en componentes reutilizables ( Modularización XHTML ) y limpiar partes desordenadas del lenguaje. [22]
Existen varias diferencias entre XHTML y HTML. El modelo de objetos de documento (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, "--" puede colocarse en comentarios en el DOM, pero no puede representarse en un comentario ni en XHTML ni en HTML) y, en general, la sintaxis XML de XHTML es más expresiva que HTML (por Por ejemplo, los espacios de nombres arbitrarios no están permitidos en HTML). XHTML usa una sintaxis XML, mientras que HTML usa una sintaxis pseudo- SGML (oficialmente SGML para HTML 4 y versiones anteriores, pero nunca en la práctica, y estandarizado lejos de SGML en HTML5). Debido a que los contenidos expresables del DOM en sintaxis son ligeramente diferentes, existen 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: [23]
<br />
<input>
<p>
<option selected>
<option selected=selected>
<option selected="selected">
<tbody>
Además de las diferencias sintácticas, existen algunas diferencias de comportamiento, que en su mayoría surgen de las diferencias subyacentes en la serialización. Por ejemplo:
xlink
.document.write()
innerHTML
<body>
<html>
Las similitudes entre HTML 4.01 y XHTML 1.0 llevaron a muchos sitios web y sistemas de gestión de contenidos 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 manera compatible con HTML y servirlos en navegadores que no fueron diseñados para XHTML. [27] [28]
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
). Por lo tanto, al medir la adopción de XHTML con respecto a la de HTML normal, es importante distinguir si lo que se compara es el uso del tipo de medio o el contenido real del documento. [29] [30]
La mayoría de los navegadores web tienen soporte maduro [31] para todos los tipos de medios XHTML posibles. [32] La excepción notable es Internet Explorer versiones 8 y anteriores de Microsoft ; En lugar de representar application/xhtml+xml
el contenido, 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. [33] El desarrollador de Microsoft Chris Wilson explicó en 2005 que las prioridades de IE7 eran mejorar la seguridad del navegador y el soporte CSS , y que sería difícil incorporar un soporte XHTML adecuado al analizador HTML orientado a la compatibilidad de IE; [34] sin embargo, Microsoft agregó soporte para XHTML verdadero en IE9 . [35]
Mientras el soporte no esté generalizado, la mayoría de los desarrolladores web evitan el uso de XHTML que no sea compatible con HTML, [36] 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. [37] [38] [39]
A principios de la década de 2000, algunos desarrolladores web comenzaron a preguntarse por qué los autores web alguna vez dieron el salto a la creación en XHTML. [40] [41] [42] 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 parte de algunos autores web y la falta de soporte para XHTML integrado en Internet Explorer. 6 . [43] [44] Continuaron describiendo los beneficios de los documentos web basados en XML (es decir, XHTML) con respecto a la búsqueda, indexación y 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 , presentando un importante esfuerzo del W3C para desarrollar una nueva especificación HTML, publicó en su blog que "El intento de lograr que el mundo cambiara a XML... de repente fracasó". No funcionó. El gran público generador de HTML no se movió... Algunas comunidades grandes sí cambiaron y están disfrutando de los frutos de sistemas bien formados... El plan es constituir un grupo HTML completamente nuevo." [45] El borrador de trabajo actual de HTML5 dice que "se ha prestado especial atención a definir criterios claros de conformidad 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 inadecuado de XHTML en 2002, [40] es miembro del grupo que desarrolla esta especificación y figura como uno de los coeditores del borrador de trabajo actual. [46]
Simon Pieters investigó la compatibilidad XML de los navegadores móviles [47] y concluyó que "la afirmación de que XHTML sería necesario para los dispositivos móviles es simplemente un mito".
En diciembre de 1998 se publicó un borrador de trabajo del W3C titulado Reformulación de HTML en XML . Esto introdujo Voyager, el nombre en clave de un nuevo lenguaje de marcado basado en HTML 4, pero que se adhiere 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. [48] Hay tres DTD formales para XHTML 1.0, correspondientes a las tres versiones diferentes de HTML 4.01:
center
y font
) strike
excluidos de la versión estricta.La segunda edición de XHTML 1.0 se convirtió en una recomendación del W3C en agosto de 2002. [49]
La modularización proporciona una colección abstracta de componentes a través de los cuales se puede subdividir y ampliar XHTML. La característica tiene como objetivo ayudar a XHTML a extender su alcance a plataformas emergentes, como dispositivos móviles y televisores con acceso a Internet. El borrador inicial de Modularización de XHTML estuvo disponible en abril de 1999 y alcanzó el estado de Recomendación en abril de 2001. [50]
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 . Fue reemplazada por una segunda edición en julio de 2010. [51]
XHTML 1.1 evolucionó a partir del trabajo relacionado con la modularización inicial de la especificación XHTML . El W3C publicó el primer borrador en septiembre de 1999; el estado de Recomendación se alcanzó en mayo de 2001. [52] Los módulos combinados dentro de XHTML 1.1 recrean efectivamente XHTML 1.0 Strict, con la adición de elementos de anotación Rubyruby
( ,,, y ) para soportar mejor los idiomas de Asia Oriental. Otros cambios incluyen la eliminación del atributo de los elementos y y (en la primera edición del idioma) la eliminación del atributo a favor de .rbc
rtc
rb
rt
rp
name
a
map
lang
xml:lang
Aunque XHTML 1.1 es en gran medida 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. [53] Con soporte limitado del navegador para el application/xhtml+xml
tipo de medio alternativo, XHTML 1.1 resultó incapaz de lograr un uso generalizado. En enero de 2009 se publicó una segunda edición del documento ( XHTML Media Types – Second Edition ), relajando esta restricción y permitiendo que XHTML 1.1 se sirva como text/html
. [54]
La segunda edición de XHTML 1.1 se publicó el 23 de noviembre de 2010, y aborda varias erratas y agrega una implementación de esquema XML no incluida en la especificación original. [55] (Se publicó brevemente por primera vez el 7 de mayo de 2009 como una "Recomendación editada propuesta" [56] antes de ser rescindida el 19 de mayo debido a problemas no resueltos).
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 Básico. Proporciona un subconjunto mínimo de funciones 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. [57]
De todas las versiones de XHTML, XHTML Basic 1.0 ofrece 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 principales (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. [58] [59]
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. [60]
La versión actual de XHTML Basic es la 1.1 Segunda edición (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 lang
atributo. [61]
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 fue desarrollado 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. A partir de esta base, el Foro WAP reemplazó el Módulo de Formularios Básicos con una implementación parcial del Módulo de Formularios, agregó soporte parcial para los módulos Legacy y Presentación, y agregó soporte completo para el Módulo de Atributos 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.
A esta versión, finalizada en 2004, la OMA añadió soporte parcial para el Módulo de Scripting y soporte parcial para Eventos Intrínsecos. XHTML MP 1.1 es parte de la versión 2.1 de la Especificación de navegación OMA (1 de noviembre de 2002). [63]
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 versión 2.3 de la Especificación de navegación OMA (13 de marzo de 2007). [63]
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 neutrales en cuanto a plataforma y lenguaje).
El Grupo de Trabajo XHTML 2 consideró la creación de un nuevo lenguaje basado en XHTML 1.1. [64] Si se creara XHTML 1.2, incluiría WAI-ARIA y role
atributos para soportar mejor las aplicaciones web accesibles, y soporte mejorado para la Web Semántica a través de RDFa . El inputmode
atributo de XHTML Basic 1.1, junto con el target
atributo (para especificar objetivos de fotograma ) también puede estar presente. 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 intención de renovar el WG XHTML2, [8] y cerró el WG en diciembre de 2010, esto significa que la propuesta XHTML 1.2 no se concretaría.
Entre agosto de 2002 y julio de 2006, el W3C publicó ocho borradores de trabajo de XHTML 2.0, una nueva versión de XHTML capaz de romper con el pasado al descartar el requisito de compatibilidad con versiones anteriores. Esta falta de compatibilidad con XHTML 1.x y HTML 4 provocó cierta controversia en la comunidad de desarrolladores web. [65] Algunas partes del lenguaje (como los role
atributos 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 fuera más fluida. Se esperaba que el noveno borrador de XHTML 2.0 apareciera en 2009, pero el 2 de julio de 2009, el W3C decidió dejar que los estatutos del Grupo de Trabajo XHTML2 expiraran a finales de ese año, deteniendo efectivamente cualquier desarrollo posterior del borrador en un estándar. [8] En cambio, XHTML 2.0 y sus documentos relacionados se publicaron como Notas del W3C en 2010. [66] [67]
Las nuevas características introducidas por XHTML 2.0 incluyen:
nl
Se incluiría 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 definiciones anidadas.<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.src
atributo, 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>
.alt
atributo del img
elemento: se debía proporcionar un texto alternativo en el contenido del img
elemento, de manera muy similar al object
elemento, e. g., <img src="hms_audacious.jpg">HMS <span class="italic">Audacious</span></img>
.h
Se agregó un único elemento de encabezado ( ). El nivel de estos títulos estaba determinado por la profundidad del anidamiento. Esto habría permitido que el uso de títulos fuera infinito, en lugar de limitar su uso a seis niveles de profundidad.i
, b
y tt
, todavía permitidos en XHTML 1.x (incluso Estricto), estarían ausentes en XHTML 2.0. Los únicos elementos de presentación que quedaban eran sup
y sub
para superíndice y subíndice respectivamente porque tienen usos no presentacionales significativos y son requeridos por ciertos lenguajes. Todas las demás etiquetas estaban destinadas a ser semánticas (por ejemplo, strong
para un fuerte énfasis ), al tiempo que permitían al agente de usuario controlar la presentación de los elementos a través de CSS (por ejemplo, representados como texto en negrita en la mayoría de los navegadores visuales, pero posiblemente representados con cambios de tono en un texto). lector de voz, fuente más grande + cursiva según las reglas en una hoja de estilo de usuario, etc.).property
y about
para facilitar la conversión de XHTML a RDF/XML.HTML5 creció independientemente del W3C, a través de un grupo informal de fabricantes de navegadores y otras partes interesadas que se autodenominaban 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 en Internet o tiendas en línea. [68]
HTML5 tiene una text/html
serialización regular y una serialización XML, que también se conoce como XHTML5 . [69] El lenguaje es más compatible con HTML 4 y XHTML 1.x que XHTML 2.0, debido a la decisión de mantener los elementos de formulario HTML y el modelo de eventos existentes. Sin embargo, agrega muchos elementos nuevos que no se encuentran en XHTML 1.x, como etiquetas section
y aside
.
El lenguaje XHTML5, al igual que HTML5, utiliza una declaración DOCTYPE sin DTD. Además, la especificación desaprueba las DTD XHTML anteriores al pedir a los navegadores que las reemplacen con una que contenga solo definiciones de entidades para caracteres con nombre durante el análisis. [69]
XHTML+RDFa es una versión extendida del lenguaje de marcado XHTML para admitir 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 utilizadas para desarrollar contenido de la Web Semántica mediante la incorporación de marcado semántico enriquecido.
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 comprobar la validez de un documento con el Servicio de validación de marcado W3C (para XHTML5, se debe utilizar 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 .
El elemento raíz de un documento XHTML debe ser html
y debe contener un xmlns
atributo para asociarlo con el espacio de nombres XHTML . El URI del espacio de nombres para XHTML es http://www.w3.org/1999/xhtml
. La siguiente etiqueta de ejemplo incluye además un xml:lang
atributo para identificar el documento con un lenguaje natural :
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "ar" >
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 de 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 localizar 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. El identificador público, sin embargo, debe ser carácter por carácter igual que en los ejemplos.
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" ?>
Opcionalmente, la declaración se puede omitir porque declara que su codificación es 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
.
Los documentos XHTML 1.x son en su mayoría compatibles con agentes de usuario 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, los navegadores HTML 4 generalmente los ignoran. Los módulos XHTML 1.x posteriores, como los del role
atributo RDFa y WAI-ARIA, se degradan elegantemente de manera similar.
XHTML 2.0 es significativamente menos compatible, aunque esto se puede mitigar hasta cierto punto mediante el uso de secuencias de comandos. (Esto puede ser frases simples, como el uso de document.createElement()
para registrar un nuevo elemento HTML en Internet Explorer, o marcos completos de JavaScript, como la implementación FormFaces de XForms ).
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 sobre tipos de medios XHTML, mientras que el segundo rompe la compatibilidad con versiones anteriores, pero proporciona un marcado más limpio. [54]
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" /> <título> Ejemplo estricto de XHTML 1.0 </título> <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 <abbr title= "Lenguaje de marcado de hipertexto extensible" > XHTML </abbr> 1.0 Documento estricto . <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" datos= "http://www.w3.org/TR/xhtml1/xhtml1.pdf" ancho= "100%" alto= "500 " > </objeto> </p> </cuerpo> </html>
Ejemplo 2.
<?xml versión="1.0" codificación="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> Ejemplo estricto de XHTML 1.0 </ título> < tipo de script= "aplicación/javascript" > <![CDATA[ función 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= "Lenguaje de marcado de hipertexto extensible" > XHTML </abbr> 1.0 estricto . <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" tipo= "aplicación/pdf" datos= "http://www.w3.org/TR/xhtml1/xhtml1.pdf" ancho= "100%" alto= "500" >>objeto> < /p> </cuerpo> </html>
Notas:
<param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf"/>
dentro de <object>
.img
elemento no obtiene un name
atributo en la DTD estricta de XHTML 1.0. Úselo id
en su lugar.Las serializaciones HTML5 y XHTML5 son en gran medida intercompatibles si se adhieren a la sintaxis más estricta de XHTML5, pero hay algunos casos en los que XHTML no funcionará como HTML5 válido (por ejemplo, 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 se cierran en ?>
). [70]
... Sin embargo, dado que ISO 8879 no otorga a las aplicaciones la libertad de prohibir subconjuntos internos, se deduce que la letra de la especificación HTML [4] automáticamente le quita el derecho a ser una aplicación conforme a SGML...
... Dado que los objetivos de diseño del XML en sí reflejaban parcialmente los del HTML original, era lógico comenzar a trabajar en la formulación de un lenguaje de marcado basado en XML...
... El problema: desea aprovechar el poder y la simplicidad que pueden ofrecer las herramientas XML, pero se enfrenta a un sitio lleno de documentos HTML obsoletos.
La solución: Convierta sus documentos a XHTML y ponga Perl
a trabajar...
XML::XPath
... Una característica útil de XHTML es que puede manipularse como XML.
Las plantillas de lenguaje de hojas de estilo extensibles se pueden utilizar para transformar XHTML en WML o cualquier otro formato móvil propietario...
... Ha sido un objetivo de larga data del W3C hacer posible que diferentes tipos de contenido basado en XML se mezclen en el mismo archivo XML.
Por ejemplo, SVG y MathML podrían incorporarse directamente en un documento científico basado en XHTML...
... con un HTML basado en XML, otros lenguajes XML podrían incluir bits de XHTML, y los documentos XHTML podrían incluir bits 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...
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 muestre como "text/html", suponiendo que siga las recomendaciones de compatibilidad HTML.
...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 construcciones XML.
Es muy poco probable que podamos soportar bien XHTML de esta manera;
En particular, no detectaríamos algunos casos de error aquí o allá y apoyaríamos silenciosamente los casos no válidos.
Por supuesto, esto causaría problemas de compatibilidad basados en el manejo de errores del analizador en el futuro, lo cual XML está tratando explícitamente de evitar;
No queremos causar otro desastre como el que existe con el manejo de errores HTML actual (debido a la compatibilidad con navegadores anteriores; puedes culparme personalmente por eso, pero no a IE).
Preferiría tomarme el tiempo para implementar XHTML correctamente después de IE 7 y que sea verdaderamente interoperable...
...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, estamos buscando comentarios de los desarrolladores sobre el soporte de IE9 para selectores, espacios de nombres, colores, valores, fondos y bordes, y fuentes...
No hay tantas desventajas (si las hay) en 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 sutiles a pie de página y paréntesis [en el artículo de Hickson] que indican que la nocividad sólo se aplica a los autores que no conocen los peligros 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 tener sentido común y no vale la pena mencionarlo a ningún autor que realmente sepa qué es XHTML y cómo escribirlo.
Algunas personas dicen que XHTML en la Web ha fracasado, 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é intentando presentar argumentos 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 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, siga utilizando XHTML y valide sus páginas.
Algunas cosas quedan más claras en retrospectiva de varios años.
Es necesario evolucionar HTML de forma incremental.
El intento de lograr que el mundo cambiara a XML, incluyendo comillas alrededor de valores de atributos y barras diagonales en etiquetas y espacios de nombres vacíos, todo a la vez, no funcionó.
El gran público generador de 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 hacia [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, éste se creará para realizar mejoras incrementales en HTML, así como en XHTML paralelo. Tendrá un presidente y un contacto con el personal diferente. 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.
style
atributo y el cite
elemento. 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 los elementos ins
y del
.... XHTML2... define un nuevo vocabulario HTML con mejores características para hipervínculos, contenido multimedia, anotaciones en 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 no documental 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 encajan bien en la metáfora del documento y no están cubiertos por XHTML2...
Esta
especificación tiene como objetivo ampliar HTML para que también sea adecuado en estos contextos. ...
application/xhtml+xml
utilizando PHP , Python y Apache (mediante reescritura de URL ).