是否有HTML5规格的机器可读版本?

时间:2011-07-04 22:04:07

标签: html5

我正在寻找HTML5规范的机器可读版本,类似于DTD,尽管只要它可以解析,任何格式都可以。

HTML5 specs似乎不包含任何类型,所以我的第一个想法是查看验证器。我挖到the sources of the validator.nu validator但似乎他们使用的模式是通过解析规范来构建的(例如解析它的HTML及其英文文本),并且我必须构建验证器来生成它。

更具体地说,我正在寻找一个元素列表,它们的内容模型,以及它们的类型属性列表,以及它们是否是必需的或者它们具有默认值。

最后,我要提一下,我并不是在寻找有效的特定文件。我会直接使用W3C的验证器或validator.nu。我正在寻找规范,以便我可以在我自己的应用程序中使用它们。

5 个答案:

答案 0 :(得分:2)

在W3的网站上搜寻我只能看到两件有趣的事情:

  • “由于HTML5不再正式基础 在SGML上,DOCTYPE不再 为此目的服务,因此没有 更长时间需要参考DTD。“来自 HTML5工作草案。它并没有说没有一个,只是客户不需要一个
  • 那个 HTML5显然仍然是一个工作草案,而不是一个 规范,暗示那里 可能是稍后发布的DTD

我看起来和你可能没有任何具体的一样努力。我认为validator.nu的方法是最好的,因为工作草案可能会在规范达成一致之前多次改变。如果有人发布了非正式的DTD,则需要不断维护。

+1很棒的问题,我希望我能找到具体的答案。我希望别人可以!

答案 1 :(得分:1)

我已经阅读了这个问题及其答案,并决定开始一个新项目:WHATWG HTML5 Standard Parser。目前,它解析标准html页面的单页版本,并提供元素和允许的属性。

希望得到一些启动......欢迎拉请求!!!

答案 2 :(得分:0)

HTML5没有BNF / CFG,因为HTML5部分是关于渐进增强并默默修复错误。如果页面标记有破坏标记,浏览器有责任显示页面,也可以向用户投诉。

有关此历史的更多信息,请参阅Dive Into HTML5 / How Did We Get Here?

  

正如您所料,“破坏的”HTML标记在Web浏览器中仍然有效的事实导致作者创建了破碎的HTML页面。很多破页。据估计,目前网络上超过99%的HTML网页至少有一个错误。但是因为这些错误不会导致浏览器显示可见的错误消息,所以没有人修复它们。

我想这不是特别有帮助,所以我道歉。您可以尝试查看XHTML 1.1 DTDSGML DTD作为起点。或者,如果您需要基于启发式的最佳尝试方法,请查看HTML解析器,例如Beautiful Soup

答案 3 :(得分:0)

UPDATING

自2014-10-28以来HTML5 is a recommendation(!)......但这个问题并没有过时(验证器现在比简单的DTD更复杂)。

ANSWER

没有简单的解析器,因为@ruediste线索显示...今天,也许最好的解析器位于https://validator.nu/ ......所以,

  1. 你展示答案的第一部分:它是一个复杂的解析器,而validator.nu是一个很好的解析器。
  2. 2014-10-28 W3C的建议确认没有简单的解析器(如DTD或元素列表)来说“这是一个有效的HTML5”。
  3. ... this other question表明,也许只有上下文(使用/社区)可以验证标签和属性列表。

答案 4 :(得分:0)

截至2019年4月的新消息 The WHATWG HTML5 spec as JSON,但还很不完善,尚在开发中。

使用Python解析多页标准。

完全公开:我做到了。

另请参见

HTML5 RelaxNG schemas