2010-10-29 33 views
59

Les "anciens" standards HTML/XHTML ont une DTD (Document Type Definition) défini pour eux:Où est la définition de type de document 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

Cette DTD précise les règles pour les éléments de nidification - « qui des types d'éléments peuvent apparaître dans quels types d'éléments ". J'ai fait un diagramme pour XHTML 1.0 ici (désolé, je n'ai plus cette ressource)

Je voudrais mettre à jour ce diagramme avec une nouvelle version qui inclut également les nouveaux éléments HTML5. Cependant, il ne semble pas y avoir de DTD HTML5. Il semble que les règles d'imbrication sont définies par les différents modèles de contenu définis dans HTML5.

Donc, il n'y a pas de DTD, correct?

question de suivi: Y at-il une raison pour laquelle il n'y a pas DTD en HTML5? La DTD est une méthode très intéressante pour définir les règles d'imbrication de tous les différents types d'éléments. Pourquoi n'incluraient-ils pas une telle chose?

Mise à jour: Je trouve ceci: http://www.w3.org/TR/html5/dom.html#kinds-of-content Je pense que, c'est le plus proche d'avoir une DTD.

Mise à jour: L'équipe Visual Studio a fait un schéma XML pour XHTML5. Je suppose que cela répond à ma question: 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

Le lien 'http: //vidasp.net ...' m'a redirigé [ici] (http://www.scanerrors.com/dutch.php?t202id=515953&t202kw=Javascript) – RubenGeert

+0

@ pythonforspss.org Oui. Je n'ai plus ce domaine. J'ai supprimé ce lien. Merci de m'avoir informé. –

+0

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

Répondre

53

Il n'y a pas de DTD HTML5. Le RC HTML5 explicitement says this lors de la discussion de la sérialisation XHTML, et cela s'applique clairement à la sérialisation HTML.

DTDs ont été considérés par les concepteurs de HTML5 comme trop limité en puissance expressive et validateurs HTML5 (essentiellement le mode HTML5 de http://validator.nu et sa copie à http://validator.w3.org) utiliser des schémas ad hoc contrôles, pas de validation basée DTD.

En outre, HTML5 a été conçu de sorte qu'il n'est pas possible d'écrire une DTD pour cela. Par exemple, il n'existe aucune méthode SGML pour capturer la règle HTML5 selon laquelle tout nom d'attribut commençant par "data-" et respectant certaines règles générales est valide. En SGML, les attributs doivent être répertoriés individuellement, de sorte qu'une DTD doit être infinie.

Il est possible de concevoir des DTD qui correspondent à HTML5 avec quelques omissions et peut-être avec des règles supplémentaires imposées, mais il ne s'agira pas vraiment de DTD HTML5. Mon idée n'est pas très encourageante: trop de limitations, trop compliquées, et la DTD devrait être si permissive que de nombreuses erreurs de syntaxe ne seraient pas prises en compte.

+0

Alors DTD est une chose SGML? –

+2

DTD est une chose SGML et XML. Une DTD XML est encore plus limitée en puissance expressive qu'une DTD SGML; XML est une simplification de SGML dans ce domaine aussi. –

+0

@ JukkaK.Korpela - Je ne sais pas si je m'en soucie toujours, mais l'entrée dans votre DTD HTML5 faux semble être définitivement incorrecte. Le seul enfant autorisé est , et cela ne semble pas être inclus, alors que les enfants invalides sont listés via% phrase; – pgoetz

21

Correct. Il n'y a pas de DTD. Cependant, les documents HTML5 devraient commencer par <!DOCTYPE html> Il y a donc un DOCTYPE, mais pas de DTD.

Voir:

+0

@Adam Le DOCTPYE n'a aucune référence à une DTD, évidemment. Cependant, il serait bien qu'il y ait une DTD "non officielle" juste pour avoir un bon aperçu des règles d'imbrication ... –

+5

@ Šime Vidas La DTD provient des racines SGML du HTML. HTML5 n'est plus basé sur SGML, donc il n'y a pas de DTD. – Adam

+0

+ réponse concise. En outre, il convient de mentionner que HTML5 est actuellement un projet de travail, avec un tas de changements au cours des derniers mois. Une DTD a du sens après avoir atteint un statut stable, ce qui n'est pas le cas actuellement. Malgré qu'il est sûr de supposer et d'utiliser certains éléments et API qui sont stables, mais l'ensemble de la spécification ne l'est pas. – Dave

0

Je pense qu'ils ont fait disparaître les vieux DTDs, maintenant, nous venons de lancer des pages HTML avec: <!DOCTYPE HTML>

Peut-être que le W3C en sortir avec un finalement.

7

J'ai créé une DTD HTML5 pour mes projets PHP XML. Ce n'est pas beau, mais cela fonctionne avec XHTML5 bien formé (c'est-à-dire, HTML5 exprimé en XML).

Vous pouvez saisir de mon compte bitbucket ici:

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

Enjoy!

+1

Il y en a un autre, là: https://www.cs.tut.fi/~jkorpela/html5-dtd.html – Hibou57

+0

La DTD de Jukka K. Korpela a déjà été mentionnée par lui-même dans la réponse acceptée, @ Hibou57. – Palec

1

Certains Marcus de sgmljs.net ont créé et analyzed un SGML DTD for HTML 5.1 et ont lancé un thread in the XML-DEV mailing list pour examen et discussion. La discussion tourne autour des définitions d'entité jusqu'à présent.

Je viens de terminer mon analyse de la recommandation HTML du W3C 5.1 à http://sgmljs.net/docs/html5.html (à partir d'un langage de balisage plutôt que développement web PoV), et je publie ici pour examen sous la forme d'un premier SGML DTD pour l'analyse HTML 5.1, avec un long texte d'analyse .

[...]

Je suis conscient que WHATWG et le W3C ont depuis longtemps éloignés de SGML (et XML dans la plupart des travaux de spécification liés au Web), le traitant comme une technique héritée et avec un peu attitude présomptueuse dans le texte de spécification et ailleurs. Mais comme l'analyse de la grammaire montre de HTML5, ils ont essentiellement abandonné l'utilisation de toutes les méthodes formelles ensemble (et il montre dans au moins deux défauts discutés dans l'analyse ).

Rien d'officiel pour le moment, mais peut-être que cette initiative aura du succès, ou du moins trouvera ses utilisateurs comme une ressource non officielle.

+0

J'ai trouvé l'information sur l'initiative intéressante et cette réponse a certainement apporté plus qu'un simple lien, @cpburnz (et d'autres critiques). [Une autre réponse] (https://stackoverflow.com/a/28543847/2157640) dans ce Q & A a un contenu très similaire - juste un lien et une courte description d'une autre DTD HTML 5 non officielle. Il a obtenu 6 upvotes et pas de downvotes. J'ai inclus des informations pertinentes de la liste xml-dev et je ne vois pas de meilleure façon de répondre à cette question maintenant. – Palec