Где находится определение типа документа HTML5?

StackOverflow https://stackoverflow.com/questions/4053917

  •  27-09-2019
  •  | 
  •  

Вопрос

В «старых» стандартах 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.Однако, похоже, HTML5 DTD не существует.Похоже, что правила вложения определяются различными моделями контента, определенными в 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

Это было полезно?

Решение

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

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

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

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

Другие советы

Правильный.ДТД нет.Однако документы HTML5 должны начинаться с <!DOCTYPE html> Итак, DOCTYPE есть, но нет DTD.

Видеть:

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

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

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

Наслаждаться!

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

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

[…]

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

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

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

Возможно, W3C в конечном итоге выпустит такой вариант.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top