Существует ли машиночитаемая версия спецификаций HTML5? - PullRequest
13 голосов
/ 05 июля 2011

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

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

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

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

Ответы [ 5 ]

2 голосов
/ 05 июля 2011

Просматривая сайт W3, я могу видеть только две вещи, представляющие интерес:необходимо обратиться к DTD. "из рабочего проекта HTML5.Он не говорит, что его нет, просто клиентам не нужен один

И, очевидно, что HTML5 все еще является рабочим проектом, а не спецификацией, которая подразумевает, что может бытьDTD, опубликованный позже

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

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

1 голос
/ 21 сентября 2014

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

Надеемся начать что-то ... Запросы на извлечение приветствуются !!!

0 голосов
/ 23 апреля 2019

НОВОЕ по состоянию на апрель 2019 г. Спецификация WHATWG HTML5 в виде JSON , хотя и очень неполная и находится в процессе разработки.

Использует Python для разбора многостраничного стандарта.

Полное раскрытие: я сделал это.

См. Также

HTML5 схемы RelaxNG

0 голосов
/ 09 марта 2015

ОБНОВЛЕНИЕ

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

ОТВЕТ

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

  1. Вы показываете первую часть ответа: это сложный парсер, а validator.nu хороший парсер.
  2. Рекомендация W3C 2014-10-28 подтверждает, что не существует простого парсера (например, DTD или списка элементов), который бы говорил «это правильный HTML5».
  3. ... этот другой вопрос показывает, что, возможно, только контекст (use / community) может проверять список тегов и атрибутов.
0 голосов
/ 26 октября 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...