Где находится определение типа документа 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
этот DTDs определяет правила для вложенности элементов - "какие типы элементов могут появляться в каких типах элементов". Я сделал диаграмму для XHTML 1.0 здесь (извините, у меня больше нет этого ресурс)
Я хотел бы обновить эту диаграмму с новой версией, которая также включает в себя новые элементы HTML5. Однако, там, кажется, не быть ДТД на HTML5. Похоже, что правила вложенности определяются различными моделями контента, которые определены в HTML5.
Так что нет DTD, правильно?
следующий вопрос: есть ли причина, почему нет DTD в HTML5? 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
5 ответов:
нет HTML5 DTD. HTML5 RC явно говорит при обсуждении сериализации XHTML, и это явно относится и к сериализации HTML.
DTDs были расценены конструкторами HTML5 как слишком ограниченные в выразительной силе, и валидаторы HTML5 (по существу режим HTML5 http://validator.nu и его копия в http://validator.w3.org) используйте схемы и специальные проверки, не основанные на DTD утверждение.
кроме того, HTML5 был разработан таким образом, что написание DTD для него невозможно. Например, нет способа SGML захватить правило HTML5, что любое имя атрибута, которое начинается с "data-" и соответствует определенным общим правилам, является допустимым. В SGML атрибуты должны быть перечислены отдельно, поэтому DTD должен быть бесконечным.
можно создать DTD, соответствующие HTML5 с некоторыми упущениями и, возможно, с некоторыми дополнительными правилами, но они на самом деле не будет HTML5 DTDs. Мой эксперимент С этой идеей не очень обнадеживает: слишком много ограничений, слишком сложно, и DTD должен быть настолько разрешительным, что многие синтаксические ошибки не будут перехвачены.
правильно. Нет никакого DTD. Однако документы HTML5 должны начинаться с
<!DOCTYPE html>Так что есть DOCTYPE, но не ДРТ.посмотреть:
Я создал HTML5 DTD для использования в моих проектах PHP XML. Это не красиво, но он работает с хорошо сформированным XHTML5 (то есть HTML5 выражается как XML).
вы можете взять его из моей учетной записи bitbucket здесь:
https://bitbucket.org/kashbridge/dtd/overview
наслаждайтесь!
некий Маркус из sgmljs.net создан и анализируемой an SGML DTD для HTML 5.1 и начал поток в списке рассылки XML-DEV для рассмотрения и обсуждения. До сих пор дискуссия вращается вокруг определений сущностей.
Я только что завершил свой анализ рекомендации W3C HTML 5.1 по адресу http://sgmljs.net/docs/html5.html (из языка разметки, а не веб-разработка PoV), и я публикую его здесь для обзора в форма начального SGML DTD для разбора HTML 5.1, наряду с длительным анализ текста.
[...]
Я знаю, что WHATWG и W3C с тех пор давно отошли от SGML (и XML в большинстве связанных с веб-спецификацией работ), рассматривая его как техника наследия и с несколько самонадеянным отношением в текст спецификации и в другом месте. Но как анализ HTML5-х грамматика показывает, что они по существу отказались от использования любого формального методы все вместе (и это показывает, по крайней мере, два недостатка, обсуждаемые в анализ.)
пока ничего официального, но, возможно, эта инициатива наберет обороты, или хотя бы найдет своих пользователей в качестве неофициального ресурса.
Я думаю, что они покончили со старыми DTDs, теперь мы просто начинаем HTML-страницы с:
<!DOCTYPE HTML>может быть, W3C выйдет с одним в конце концов.
Comments