Где определение типа HTML5?

"Старые" стандарты HTML/XHTML имеют для них определение DTD (определение типа документа):

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

В этих DTD указываются правила для вложенных элементов - "какие типы элементов могут отображаться в каких типах элементов". Я сделал диаграмму для XHTML 1.0 здесь (извините, у меня больше нет этого ресурса)

Я хотел бы обновить эту диаграмму с новой версией, которая также включает в себя новые элементы HTML5. Однако, похоже, нет DTD HTML5. Кажется, что правила вложенности определяются различными моделями контента, которые определены в HTML5.

Итак, нет DTD, правильно?

Последующий вопрос: Есть ли причина, по которой в HTML5 нет DTD? DTD - такой хороший метод определения правил вложенности для всех типов элементов. Почему бы им не включить такую ​​вещь?

Обновление: Я нашел это: http://www.w3.org/TR/html5/dom.html#kinds-of-content Я думаю, это самый близкий к DTD.

Обновление: Команда Visual Studio сделала XML-схему для XHTML5. Думаю, это отвечает на мой вопрос: 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

Ответ 1

Нет DTD HTML5. HTML5 RC явно говорит об этом при обсуждении сериализации XHTML, и это явно относится к сериализации HTML.

DTD были расценены разработчиками HTML5 как слишком ограниченными в выразительной силе, а валидаторы HTML5 (в основном, режим HTML5 http://validator.nu и его копия в http://validator.w3.org) использует схемы и специальные проверки, а не проверку на основе DTD.

Кроме того, HTML5 был разработан так, что писать DTD для него невозможно. Например, нет способа SGML, чтобы зафиксировать правило HTML5, что любое имя атрибута, которое начинается с "data-" и соответствует определенным общим правилам, действительно. В SGML атрибуты должны быть перечислены индивидуально, поэтому DTD должен быть бесконечным.

Можно создавать DTD, которые соответствуют HTML5 с некоторыми упущениями и, возможно, с некоторыми дополнительными правилами, но они обычно не являются DTD для HTML5. Мой эксперимент с идеей не очень обнадеживает: слишком много ограничений слишком сложно, и DTD должен быть настолько разрешительным, чтобы многие синтаксические ошибки идти невостребованным.

Ответ 3

Я создал DTD HTML5 для использования в моих проектах PHP XML. Это не красиво, но работает с хорошо сформированным XHTML5 (то есть HTML5 выражается как XML).

Вы можете взять его с моей учетной записи bitbucket здесь:

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

Наслаждайтесь!

Ответ 4

Определенный Маркус из sgmljs.net создан и проанализирован SGML DTD для HTML 5.1 и запустил поток в списке рассылки XML-DEV для обзора и обсуждения. Обсуждение продолжается вокруг определений сущностей.

Я только что завершил анализ рекомендации W3C HTML 5.1 на http://sgmljs.net/docs/html5.html (из языка разметки, а не web development PoV), и я публикую его здесь для обзора в форма исходного SGML DTD для анализа HTML 5.1 вместе с длинным текст анализа.

[...]

Я знаю, что WHATWG и W3C с тех пор давно отошли от SGML (и XML в большинстве веб-связанных спецификаций), рассматривая его как унаследованной техники и с некоторой самонадеянностью в текст спецификации и в других местах. Но как анализ HTML5 грамматические шоу, они по существу отказались от использования каких-либо формальных методов alltogether (и это показывает, по крайней мере, два недостатка, обсуждаемые в анализ).

Пока ничего официально, но, возможно, эта инициатива пойдет на пользу или, по крайней мере, найдет своих пользователей в качестве неофициального ресурса.

Ответ 5

Я думаю, что они покончили со старыми DTD, теперь мы просто запускаем HTML-страницы: <!DOCTYPE HTML>

Возможно, W3C выйдет с одним из них.