2010-01-22 12 views
8

Así que aquí está lo que entiendo (por favor corregir si mal):diferencia práctica entre XHTML, HTML y XML

  • HTML5 es la nueva versión (o al menos que pronto será publicado) de HTML y contiene características que XHTML todavía no tiene
  • XHTML servido como texto tipo MIME/html es igual a hTML con el fin de prestar
  • la conversión de texto/html en application/xhtml + xml es difícil porque no es hTML
  • XML es no es compatible con HTML

Así que mi pregunta es, ¿qué tiene XHTML que ver con HTML además del uso de etiquetas? ¿Cuál es el propósito práctico de usar XHTML sobre XML, o no hay ninguno?

Respuesta

4

Sí, HTML5 tendrá características (incluso elementos/etiquetas) que XHTML aún no posee. También reintroducirá algunas etiquetas de HTML4 que se eliminaron para XHTML. (Iframe, es uno de ellos, creo)

Si usted quiere saber acerca de las diferencias entre HTML 4/XHTML y HTML 5, leer la entrada de Wikipedia sobre HTML 5: http://en.wikipedia.org/wiki/HTML_5#Differences_from_HTML_4.01.2FXHTML_1.x

Sin embargo, no, XHTML no es igual a HTML a los efectos de la representación. http://hixie.ch/advocacy/xhtml

XHTML es más XML que HTML. Utiliza esencialmente (la mayoría de) los elementos ('etiquetas') de HTML respetando la gramática más estricta y la semántica de XML.

Es no igual a HTML4 con el fin de renderizar. Si utiliza un tipo de MIME de XHTML - ya que es XML - se puede terminar con errores de análisis desagradables si lo haces mal:

A nasty XHTML parse error

... pero a pesar de este problema utilizando XHTML puede dar lugar a más comportamiento consistente entre navegadores que HTML4; dado que HTML4 no es tan estricto, los navegadores intentan interpretar el marcado ambiguo, y los desarrolladores del navegador terminan con cierta libertad para elegir cómo se tratan estas ambigüedades. Esto conduce a inconsistencias, pero con XHTML - que es XML - se supone que el navegador se niega a mostrar la página en todo si es ambiguo.

XHTML puede conducir a problemas con los navegadores más antiguos, sin embargo, especialmente con los elementos vacíos (etiquetas auto-cierre) como <br />; un navegador antiguo no sabrá qué hacer con el / y podría pensar que forma parte del nombre de la etiqueta y luego perderá el salto de línea.

Por último, no sé a qué te refieres con "Convertir de texto/html a application/xhtml + xml es difícil porque no es HTML", pero te animo a que revises el libro "Refactoring HTML" by Elliotte Rusty Harold ... parece ser una respuesta de 300 páginas a la pregunta;)

+0

Los navegadores no tienen la libertad de inventar sus propias reglas sobre cómo analizar HTML (más). Ahora que HTML5 define el algoritmo de análisis correcto. – Ms2ger

+0

Los navegadores nunca tienen la libertad de inventar sus propias reglas sobre cómo analizar HTML; solo cómo manejar los errores. – Quentin

+0

@ ms2ger - Buen punto; Debería haber usado el término "HTML4" en lugar de solo "HTML" en ese párrafo después de la imagen. Lo estoy editando ahora :) –

0

No, HTML5 no tendrá las características que XHTML no tiene, porque define XHTML5 en el mismo documento.

1

HTML5 es la nueva versión (o al menos que pronto será publicado)

Proyecto. Inestable.Sujeto a cambios. No va a ser lanzado pronto.

XHTML servido como texto tipo MIME/html es igual a HTML para los propósitos de representación

Más o menos. Escribir HTML compatible XHTML es más trabajo que escribir HTML o XHTML, y no le permite usar ninguno de los bits interesantes de XHTML.

La conversión de texto/html en application/xhtml + xml es difícil porque no es HTML

la conversión de HTML a XHTML es en realidad bastante trivial. Tidy puede hacerlo para muchos documentos (incluidos todos los documentos HTML válidos).

XML no es compatible con HTML

Sería más exacto decir que el HTML no es XML.

Así que mi pregunta es, ¿qué tiene XHTML que ver con HTML además del uso de etiquetas? ¿Cuál es el propósito práctico de usar XHTML sobre XML, o no hay ninguno?

La ventaja de usar XHTML sobre XML es más o menos lo mismo que usar un auto sobre un montón de metal y plástico. XML es un conjunto de herramientas para crear lenguajes de marcado.

La ventaja de usar XHTML sobre HTML es que puede mezclar diferentes lenguajes de marcado en un solo documento, por lo que (por ejemplo) podría tener un documento XHTML + SVG + MathML. Esto requiere que el cliente admita todos los idiomas implicados (o que los no compatibles se degraden con elegancia).

Por desgracia, esto no es práctico para la mayoría de los proyectos desde Internet Explorer ...

doesn't support XHTML http://dorward.me.uk/tmp/xhtml/msiexhtml.png

+0

¿Qué tiene que ver la extensión de archivo con la forma en que el navegador maneja el archivo? En mi experiencia, la forma en que el servidor web maneja el archivo es más importante. No lo he probado, pero si le dices al servidor web que trate ".xhtml" como ".html", entonces no habrá ningún problema, ¿no? – craigmoliver

+0

@craigmoliver - Sí, sería un problema, ya que luego pierde todos los beneficios de XHTML (es decir, documentos mixtos de espacio de nombres). – Quentin

0

Desde una perspectiva programadores: HTML tenía más débiles (poca o ninguna) las limitaciones estructurales de diseño, o al menos web- los navegadores no requieren que estos produzcan alguna forma de salida. Cada navegador tenía su propia lógica para tratar de reconstruir la estructura faltante.

XHTML impone restricciones estructurales más estrictas ... y es un subconjunto de XML; es simplemente más estricto que el HTML. La semántica más estricta permite:

  1. Algoritmos más consistentes en los navegadores, lo que significa una mayor coherencia entre las implementaciones del navegador.
  2. Menos reloj-ciclos por representación - lo que significaba dispositivos de potencia inferior podría manejar mejor renderizado páginas web
  3. estricta semántica estructural son un requisito para la "web semántica", que significa la estructura se puede aprovechar para permitir la extracción constante de información útil de páginas web.

XHTML5 extiende HTML para permitir la web más interactiva por lo que yo entiendo, y es quizás más importante que el HTML a XHTML, como la semántica más estrictas deberían haber sido forzada desde el principio. XHTML5 agrega muchos cambios notables al protocolo.

En cuanto a XML vs HTML para la web, un navegador necesita una estructura rudimentaria del documento fijo para dar sentido al documento, quizás esto ya no es tan significativo como antes: con esto quiero decir que XSLT y CSS pueden convertir un documento en un resultado presentable para un navegador web. Sin embargo, un documento debe tener una estructuración intrínseca al documento que sea significativa para un navegador sin técnicas web modernas. HTML4 permite estructurar un documento para que los navegadores rudimentarios como lynx puedan mostrar el documento; después de todo, lynx no tiene la posibilidad de renderizar CSS y elementos de estilo como imágenes.

XHTML5 está en otra liga, y probablemente excluya completamente a los navegadores rudimentarios, pero su vocabulario de etiquetas fijas proporciona significado para navegadores web, desarrolladores web y diseñadores. los navegadores web probablemente necesiten ciertas etiquetas para habilitar las nuevas funciones funky, pero el vocabulario en sí mismo es más elegante que el solo tener que pensar en una página web como un documento ad hoc XML.

+0

XHTML no tiene "semántica estructural más estricta". Tiene la misma semántica, una estructura más simple y reglas de manejo de errores más estrictas. (1) No. Acaba de llegar en un momento en que los navegadores prestaban más atención a las especificaciones en lugar de escribir raspadores de etiquetas sin leer las especificaciones de SGML. (2) Eso se debe a la estructura más simple y a los requisitos de manejo de errores. Es discutible en estos días, los "dispositivos de baja potencia" son mucho más poderosos que cuando salió XHTML. – Quentin

+0

(3) XHTML no agrega nada a la semántica que no estaba ya en HTML 4.01 (excepto por la posibilidad de mezclar espacios de nombres con cosas como RDF). (X) HTML5 se dirige en la dirección incorrecta en lo que respecta a la semántica (cf http://www.w3.org/TR/html5/the-xhtml-syntax.html#the-marquee-element-0). – Quentin

+0

@david Estoy de acuerdo con (2) ... sin embargo, si la forma de hacer sopa de etiquetas hubiera continuado junto con la evolución de las técnicas de diseño, los "dispositivos de baja potencia" estarían en una situación mucho peor hoy en día . Adelante y edite mi respuesta para agregar sus comentarios si lo desea, parece que su terminología es mejor que la mía: D –

Cuestiones relacionadas