2010-10-29 17 views
59

Los estándares HTML/XHTML "viejos" tienen una DTD (Definición de Tipo de Documento) definido por ellos:¿Dónde está la definición de tipo de documento HTML5?

HTML 4.01 http://www.w3.org/TR/html401/sgml/dtd.html
XHTML 1.0 http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict

Este DTD especifican las normas para elementos de agrupamiento - ", que tipos de elementos pueden aparecer en qué tipos de elementos ". Hice un diagrama para XHTML 1.0 aquí (lo siento, ya no tengo ese recurso)

Me gustaría actualizar ese diagrama con una nueva versión que también incluye los nuevos elementos HTML5. Sin embargo, no parece haber una DTD HTML5. Parece que las reglas de anidación están definidas por los diversos modelos de contenido que se definen en HTML5.

Entonces no hay DTD, ¿correcto?

Seguimiento pregunta: ¿Existe una razón por la cual no hay una DTD en HTML5? El DTD es un buen método para definir las reglas de anidación para todos los diferentes tipos de elementos. ¿Por qué no incluirían tal cosa?

Actualización: encontré esto: http://www.w3.org/TR/html5/dom.html#kinds-of-content supongo, este es el más parecido a tener un DTD.

Actualización: El equipo de Visual Studio hace un esquema XML para XHTML5. Supongo que eso responde mi pregunta: http://blogs.msdn.com/b/webdevtools/archive/2009/11/18/html-5-intellisense-and-validation-schema-for-visual-studio-2008-and-visual-web-developer.aspx

+0

El enlace 'http: //vidasp.net ...' me redirigió [aquí] (http://www.scanerrors.com/dutch.php?t202id=515953&t202kw=Javascript) – RubenGeert

+0

@ pythonforspss.org Sí. Ya no tengo ese dominio. He eliminado ese enlace. Gracias por informarme. –

+0

Lo mismo para XSD: http://stackoverflow.com/questions/5638366/is-there-an-xhtml-xsd-equivalent-available-for-html5 –

Respuesta

53

No hay DTD HTML5. El HTML5 RC explícitamente says this cuando se habla de serialización XHTML, y esto también se aplica claramente a la serialización HTML.

DTD han sido considerados por los diseñadores de HTML5 como demasiado limitados en potencia expresiva, y validadores de HTML5 (básicamente el modo HTML5 de http://validator.nu y su copia en http://validator.w3.org) utilizan esquemas y controles ad hoc, no de validación basada en DTD.

Además, HTML5 ha sido diseñado para que escribir una DTD para él sea imposible. Por ejemplo, no existe una forma de SGML de capturar la regla HTML5 de que cualquier nombre de atributo que comience con "datos-" y cumpla con ciertas reglas generales es válido. En SGML, los atributos deben enumerarse individualmente, por lo que una DTD debería ser infinita.

Es posible diseñar DTD que corresponden a HTML5 con algunas omisiones y quizás con algunas reglas adicionales impuestas, pero realmente no serán DTDs HTML5. Mi experiment con la idea no es muy alentador: demasiadas limitaciones, demasiado complicadas, y la DTD tendría que ser tan permisiva que muchos errores de sintaxis quedarían sin detectar.

+0

Entonces, ¿DTD es algo de SGML? –

+2

DTD es una cosa SGML y XML. Una DTD XML es aún más limitada en potencia expresiva que una DTD SGML; XML es una simplificación de SGML en esta área, también. –

+0

@ JukkaK.Korpela - no estoy seguro de si todavía te preocupas por esto, pero la entrada en tu falso DTD HTML5 parece ser definitivamente incorrecta. El único hijo permitido es , y esto no parece estar incluido, mientras que los hijos no válidos se enumeran a través de% phrase; – pgoetz

21

Correcto. No hay DTD. Sin embargo, los documentos HTML5 deberían comenzar con <!DOCTYPE html> . De modo que hay un DOCTYPE, pero no DTD.

Ver:

+0

@ Adam El DOCTPYE no tiene ninguna referencia a una DTD, obviamente. Sin embargo, sería bueno si hubiera una DTD "no oficial" solo por el bien de tener una buena visión general de las reglas de anidación ... –

+5

@ Šime Vidas La DTD es de las raíces SGML de HTML. HTML5 ya no se basa en SGML, por lo que no hay DTD. – Adam

+0

+1 respuesta concisa. Además, vale la pena mencionar que HTML5 es actualmente un borrador en funcionamiento, con un montón de cambios en los últimos meses. Una DTD tiene sentido después de alcanzar un estado estable, que no es el caso en este momento. A pesar de que es seguro suponer y utilizar algunos elementos y API que son estables, pero no todas las especificaciones. – Dave

0

Creo que lo hicieron con la edad DTD, ahora sólo empezamos páginas HTML con: <!DOCTYPE HTML>

Tal vez el W3C salir con uno eventualmente.

7

He creado una DTD HTML5 para usar en mis proyectos de PHP XML. No es bonito, pero funciona con XHTML5 bien formado (es decir, HTML5 expresado como XML).

lo pueda levantar de mi cuenta bitbucket aquí:

https://bitbucket.org/kashbridge/dtd/overview

Enjoy!

+1

Hay otra, allí: https://www.cs.tut.fi/~jkorpela/html5-dtd.html – Hibou57

+0

La DTD de Jukka K. Korpela ya ha sido mencionada por él mismo en la respuesta aceptada, @ Hibou57. – Palec

1

Certain Marcus de sgmljs.net creado y analyzed un SGML DTD for HTML 5.1 y comenzó un thread in the XML-DEV mailing list para su revisión y discusión. La discusión gira en torno a las definiciones de las entidades hasta el momento.

que acaba de completar mi análisis de HTML 5.1 recomendación del W3C en http://sgmljs.net/docs/html5.html (a partir de un lenguaje de marcado en lugar de web POV desarrollo), y yo estoy publicando aquí para su revisión en la forma de una inicial SGML DTD para analizar HTML 5.1, junto con un extenso texto de análisis .

[...]

Soy consciente de que WHATWG y W3C han puesto mucho alejado de SGML (y XML en la mayoría del trabajo de especificación relacionada con la web), tratándolo como una técnica legado y con un poco actitud presuntuosa en el texto de la especificación y en otros lugares. Pero como muestra el análisis de la gramática de HTML5, esencialmente han abandonado el uso de todos los métodos formales en conjunto (y se muestra en al menos dos defectos discutidos en el análisis ).

Nada oficial todavía, pero tal vez esta iniciativa obtendrá tracción, o al menos encontrará a sus usuarios como un recurso no oficial.

+0

Encontré la información sobre la iniciativa interesante y esta respuesta ciertamente trajo más que solo un enlace, @cpburnz (y otros revisores). [Otra respuesta] (https://stackoverflow.com/a/28543847/2157640) en este Q & A tiene contenido muy similar, solo un enlace y una breve descripción de otro HTML 5 DTD no oficial. Obtuvo 6 votos ascendentes y ningún voto a la baja. Incluí información relevante de la lista xml-dev y no veo una mejor manera de responder esta pregunta ahora. – Palec

Cuestiones relacionadas