2009-07-02 18 views
31

Incluso si HTML5 es el camino a seguir para HTML, tenemos dos opciones como desarrolladores: sintaxis XHTML y sintaxis HTML. He estado utilizando XHTML como mi tipo de documento principal durante 5 o más años, así que estoy muy cómodo con él.Sintaxis HTML5 - HTML vs XHTML

Pero mi pregunta es que no se permitirá la sintaxis xml, ¿hay alguna razón para seguir con una sintaxis XML válida? ¿Ganas algo yendo con uno sobre otro, además de preferencia (compatibilidad, etc.)? Personalmente, me voy a sentir un poco sucio volviendo a no cerrar las etiquetas,
es algo natural para mí ahora, pero ¿obtendría algo que regrese a la sintaxis HTML?

Actualización: Supongo que mi verdadera pregunta es ¿hay alguna razón para cambiar de sintaxis XHTML a HTML? He estado usando XHTML durante años y no estoy seguro si hay una razón para volver atrás. Compatibilidad con el navegador (IE a veces es finiky con la aplicación/xhtml + xml mime-type), etc.

+1

nada le impide cerrar todas las etiquetas con HTML normal ... –

+4

@Evan - sí hay; ¡no es válido! en particular, cosas como

+0

Me pregunto cómo algo como
volaría en la sintaxis HTML –

Respuesta

15

supongo que mi verdadera pregunta es ¿hay alguna razón para cambiar de XHTML a HTML sintaxis?He estado usando XHTML para años y no estoy seguro de si hay un motivo para volver. Compatibilidad con el navegador (IE a veces fue finiky con la aplicación/xhtml + xml tipo mime), etc.?

Como se mencionó en una respuesta anterior, text/html se consigue analiza como HTML y application/xhtml+xml consigue analizado como XML. Por lo tanto, debe usar la sintaxis que coincida con el tipo MIME que utiliza.

Si ahora está sirviendo text/html pero usando la sintaxis XHTML, entonces debe arreglar su contenido para usar la sintaxis HTML5. Puede que ya esté cerca, ya que HTML5 permite la sintaxis de elementos vacíos XMLesque /> para elementos vacíos (elementos que siempre están vacíos, como img y br).

Si está utilizando ahora application/xhtml+xml, IE de la ayuda habría una razón para cambiar a text/html y la sintaxis HTML si se preocupan por el apoyo a IE.

Tratando de escribir documentos políglotas que son correctos HTML5 y XHTML5 (para servir diferentes tipos MIME hacen diferentes navegadores con los mismos bytes de carga útil) es más difícil de lo que parece a primera vista y no vale la pena.

0

La ventaja de la sintaxis XHTML es que es XML. Se puede analizar, comprender y manipular fácilmente. La sintaxis HTML es mucho más difícil de usar para los clientes.

Pero, en última instancia, es solo una cuestión de sintaxis. Ambos formularios están permitidos para HTML5.

+1

Eso no es verdad. XML no es más fácil de analizar que HTML 4.01 Estricto, siempre que ambos sean válidos. La razón detrás de las etiquetas de cierre automático en XML es que es un marco para definir los lenguajes de marcado, por lo que no es necesario saber de antemano cuáles son las etiquetas de cierre automático. Por otro lado, los navegadores ya saben cuáles son estas etiquetas, por lo que saben muy bien que después de un
no deberían esperar un
. Eso es todo. –

+3

XPath o XSLT son dos tecnologías listas para analizar y manipular XML. No funcionan con HTML.HTML permite más que solo etiquetas no cerradas, también le permite cerrar etiquetas en un orden diferente al que se abrieron. Entonces no, eso no es "todo". :) – jalf

+1

HTML 4.01 Estricto, no permite cerrar etiquetas en un orden diferente. Solo que algunas personas lo hicieron no significa que esté permitido. Lo único difícil con HTML es que no impone reglas draconianas en el marcado. XHTML es correcto o no. Entonces, HTML, como se define en los estándares, está bien. Lo que tenemos en el mundo real no está bien. –

21

La ventaja de la sintaxis XHTML es que es XML. Se puede analizar, comprender y manipular fácilmente. La sintaxis HTML es mucho más difícil de usar para los clientes.

¡Tonterías! La especificación de HTML5 define cómo analizar el HTML de una manera que es relativamente fácil de implementar, y se están desarrollando analizadores listos para usar que se pueden integrar fácilmente en las cadenas de herramientas. Incluso es posible integrar un analizador HTML5 en una cadena de herramientas XML en lugar de un analizador XML.

Pero lo que necesita comprender es que, en la práctica, lo más probable es que use HTML de todos modos, incluso si cree que está utilizando XHTML basado en el DOCTYPE. Si su contenido se sirve como texto/html, en lugar de application/xhtml + xml u otro tipo XML MIME, su contenido se procesará como HTML.

Con HTML5, puede optar por utilizar la sintaxis solo HTML, lo que significa que solo es compatible con ser servido y procesado como texto/html. No es XML bien formado. O use sintaxis solo XHTML, lo que significa que es un XML bien formado, pero usa funciones XML que no son compatibles con HTML. O bien, puede escribir un documento Polyglot, que se ajuste y sea compatible con el procesamiento HTML y XHTML (en principio, esto es conceptualmente similar a escribir XHTML 1.0 que cumpla con las directrices del Apéndice C).

+0

De hecho. Esto es lo que todos los navegadores han estado haciendo durante toda su vida. –

+2

Lachlan, no es fácil de implementar y usted sabe, como yo, que la cantidad de analizadores html 5 sigue siendo muy baja en comparación con los analizadores XML. – karlcow

+2

@Lachlan, sabes muy bien que el HTML 5 sigue siendo un borrador y está sujeto a cambios. Tal como lo entiendo, ninguno de los navegadores disponibles para el público en general implementa la especificación del analizador HTML5 en su totalidad, y mucho menos otros agentes de usuario. Por otro lado, los analizadores XML son omnipresentes. Tal vez algún día, los analizadores html5 serán tan prácticos de usar como los xml, pero todavía no. Tal vez algún día, IE implementará application/xhtml + xml y los autores web pueden, si así lo desean, dejar el texto/html atrás. Mientras tanto, si uno desea, como yo lo hago, analizar las páginas web propias, usar un documento políglota es el camino a seguir. – Alohci

2

Al usar XHTML, puede mezclarlo con otro contenido XML, es decir, MathML, SVG o su propio formato patentado, simplemente cambiando el espacio de nombres en algún momento. Además, puede incrustar XHTML dentro de otros documentos XML.

(bueno, en realidad MathML y ​​SVG se pueden utilizar en no XML HTML 5 también, pero son especiales con carcasa)

+0

"Al usar XHTML puede mezclarlo con otro contenido XML, por ejemplo, MathML, SVG o su propio formato propietario, simplemente cambiando el espacio de nombres en algún momento". <- excepto para IE. –

+1

IE no es compatible con HTML5 en primer lugar, ¿o sí? – jalf

+0

Siempre tuve la libertad de no llamar a IE un navegador web. HTML5 fue diseñado para compatibilidad, por lo que al menos algunas partes de una página web funcionarán. – liori

7

El proyecto de HTML5 es muy claro acerca de qué sintaxis conviene utilizar:

  • utilizar la sintaxis HTML al enviar páginas como text/html
  • sintaxis XHTML
  • usarlo al enviar páginas como application/xhtml + xml

Referencia: http://dev.w3.org/html5/spec/Overview.html#authors-using-xhtml

+0

cierto, pero en realidad no responde a la pregunta de cuál debería ser el preferido cuando tiene la opción de usar cualquier tipo de contenido. – jalf

+0

, usa HTML cuando es texto/html y XHTML cuando es application/xhtml + xml. Si bien puede usar XHTML con texto/html, eso no es recomendable, y de otro modo, HTML con application/xhtml + xml no es posible. –

+2

Lo siento, pero realmente no responde mi pregunta. Entiendo que el tipo de mina es lo que le dice al navegador qué sintaxis usar, estaba preguntando cuál usar yo mismo. Puedo configurar el tipo MIME para que sea lo que quiera, así que sé * cómo * cambiar entre los dos. – Parrots

0

Actualización: Supongo que mi verdadera pregunta es ¿hay alguna razón para cambiar de sintaxis XHTML a HTML? He estado usando XHTML durante años y no estoy seguro si hay una razón para volver atrás. Compatibilidad con el navegador (IE a veces es finiky con la aplicación/xhtml + xml mime-type), etc.

Tienes que considerar realmente dos cosas. El idioma que está escribiendo y el idioma que está enviando. La Web se define por 3 componentes:

  • URI
  • Un recurso - Markup Language (documento)
  • Un protocolo - HTTP (herramienta para la gestión de espacio de información)

Puede escribir una documento con una sintaxis XML en su escritorio, como el uso de XHTML. En este entorno específico, si le da la extensión ".xhtml" al nombre del archivo y lo abre con su navegador local, se analizará como XML. Si le da la extensión ".html" al nombre del archivo, se analizará como HTML. Básicamente en su herramienta de creación, es XML, pero esto ya no importa una vez que lo procesa con una herramienta.

En la Web, su recurso identificado por un URI se enviará con un tipo mimet específico, la mayoría de las veces, en la actualidad, las personas usan texto/html. El mimetype define cómo el cliente (navegador, bot de motor de búsqueda, etc.) debe procesar su documento. Si está utilizando una sintaxis XML pero la envía con text/html, el documento será procesado por un analizador html.

Para enviar sus documentos a través del cable como XML, debe configurar su servidor para enviarlo como application/xhtml + xml. (Nota: que IE8 y versiones anteriores no entienden lo que es application/xhtml + xml y se propondrá el menú de guardar.)

El HTML 5 modelo abstracto ha sido diseñado de manera que pueda casi escritura se con una sintaxis html o una sintaxis xml en text/html. Casi porque incluso si escribe con una sintaxis XML (cierre de elementos vacíos, comillas alrededor de atributos, etc.) tendrá problemas para páginas complejas que llaman scripts y espacios de nombres, debido a la forma en que los analizadores XML y los analizadores de HTML se encargan de ellas.

2

No debe usar XHTML para servir contenido en la Web (o cualquier red que incluya clientes de Internet Explorer); ver Sending XHTML as text/html Considered Harmful para el razonamiento completo.

+0

Eso no es cierto, hay casos en que XHTML debe publicarse en la web como application/xhtml + xml, cuando específicamente quiere/necesita usar algunos de los beneficios de XHTML (vea más abajo en el artículo para ver ejemplos). Normalmente, sin embargo, será mejor que sirva HTML como texto/html. –

1

La mayoría de los beneficios de XHTML tienen failed to materialise. Si bien no lo recomendaría para nuevos proyectos, XHTML sirve como text/html parece ser bastante manejable y generalizada, siempre y cuando siga el compatibility guidelines. Probablemente no valga la pena cambiar ningún proyecto importante a la serialización HTML.

0

Me gusta XHTML, porque me obliga a escribir una buena página. Hay muchas ventajas para XHTML, porque los navegadores lo analizan más rápido y necesita crear XML bien formado en lugar de solo HTML. Además, necesita publicar una página con el Tipo MIME application/xhtml+xml o no obtiene ninguna de las ventajas de la X. El único problema con XHTML es que no se mostrará en IE8 ni en versiones anteriores.

Cuestiones relacionadas