Есть ли машиночитаемая версия спецификаций HTML5?

Я ищу машиночитаемую версию спецификаций HTML5, сродни DTD, хотя любой формат будет делать до тех пор, пока он будет разбираться.

спецификации HTML5, похоже, не содержат ничего подобного, поэтому моей первой идеей было изучить валидаторы. Я выкопал в источники валидатора validator.nu, но кажется, что используемая ими схема строится путем разбора спецификаций (например, разбора его HTML и его текст на английском языке), и мне придется создать валидатор для его создания.

В частности, я ищу список элементов, их модели содержимого и список их атрибутов с их типом, и являются ли они обязательными или имеют значение по умолчанию.

Наконец, я должен упомянуть, что я не ищу проверку конкретных документов. Я бы использовал W3C validator или validator.nu напрямую. Я ищу спецификации, чтобы использовать их в своих приложениях.

Ответ 1

Трайлинг через сайт W3 Я вижу только две интересные вещи:

  • "Поскольку HTML5 больше не является формальным после SGML DOCTYPE больше не работает служит этой цели, и, следовательно, нет дольше нужно обращаться к DTD. "от рабочий проект HTML5. Он не говорит, что нет ни одного, просто чтобы клиенты не нуждались в одном
  • И что Очевидно, что HTML5 по-прежнему является рабочим проектом, а не спецификации, что подразумевает может быть DTD, опубликованным позже.

Я выглядел так же сложно, как вы, вероятно, ничего конкретного. Я думаю, что метод validator.nu является лучшим, поскольку рабочий проект, вероятно, изменится несколько раз, прежде чем спецификация будет согласована. Если кто-то опубликовал неофициальный DTD, ему потребуется постоянное обслуживание.

+1 отличный вопрос, мне хотелось бы найти конкретный ответ. Я надеюсь, что кто-то еще сможет!

Ответ 2

Я прочитал этот вопрос, и он ответил и решил начать новый проект: WHATWG HTML5 Standard Parser. В настоящее время он анализирует одностраничную версию стандартной html-страницы и предоставляет элементы вместе с разрешенными атрибутами.

Надеемся на то, чтобы что-то началось... Приглашения потянуть приветствуются!!!

Ответ 3

Нет BNF/CFG для HTML5, потому что HTML5 частично говорит о постепенном улучшении и исправлении ошибок молча. Если на странице есть сломанная разметка, браузер обязан отображать страницу, а также может и не жаловаться на пользователя.

Подробнее об этой истории можно прочитать на Погружение в HTML5/Как мы сюда попали?:

Как и следовало ожидать, тот факт, что "взломанная" разметка HTML все еще работала в веб-браузерах, заставила авторов создать сломанные HTML-страницы. Много сломанных страниц. По некоторым оценкам, более 99% HTML-страниц в Интернете сегодня имеют по крайней мере одну ошибку. Но поскольку эти ошибки не позволяют браузерам отображать видимые сообщения об ошибках, никто их не исправляет.

Я думаю, это не особенно полезно, поэтому я извиняюсь. Вы можете попробовать посмотреть XHTML 1.1 DTD или SGML DTD как отправные точки. Или, если вы хотите использовать эвристический подход с наилучшей попыткой, посмотрите анализатор HTML, например Beautiful Soup.

Ответ 4

ОБНОВЛЕНИЕ

Начиная с 2014-10-28 HTML5 является рекомендацией (!)... Но этот вопрос не устарел (теперь валидаторы являются более сложными, чем простой DTD).

ANSWER

нет простого синтаксического анализатора, как показывают подсказки @ruediste... Сегодня, возможно, лучший парсер находится в https://validator.nu/ ... так что

  • Вы показываете первую часть ответа: это сложный парсер, а validator.nu - хороший парсер.
  • Рекомендация W3C 2014-10-28 подтверждает, что нет простого анализатора (например, DTD или списка элементов), чтобы сказать "это допустимый HTML5".
  • ... этот другой вопрос показывает, что, возможно, только контекст (использование/сообщество) может проверять список тегов и атрибутов.