我正在寻找HTML5规范的机器可读版本,类似于DTD,尽管只要它可以解析,任何格式都可以。
HTML5 specs似乎不包含任何类型,所以我的第一个想法是查看验证器。我挖到the sources of the validator.nu validator但似乎他们使用的模式是通过解析规范来构建的(例如解析它的HTML及其英文文本),并且我必须构建验证器来生成它。
更具体地说,我正在寻找一个元素列表,它们的内容模型,以及它们的类型属性列表,以及它们是否是必需的或者它们具有默认值。
最后,我要提一下,我并不是在寻找有效的特定文件。我会直接使用W3C的验证器或validator.nu。我正在寻找规范,以便我可以在我自己的应用程序中使用它们。
答案 0 :(得分:2)
在W3的网站上搜寻我只能看到两件有趣的事情:
我看起来和你可能没有任何具体的一样努力。我认为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 DTD或SGML DTD作为起点。或者,如果您需要基于启发式的最佳尝试方法,请查看HTML解析器,例如Beautiful Soup。
答案 3 :(得分:0)
自2014-10-28以来HTML5 is a recommendation(!)......但这个问题并没有过时(验证器现在比简单的DTD更复杂)。
没有简单的解析器,因为@ruediste线索显示...今天,也许最好的解析器位于https://validator.nu/ ......所以,
答案 4 :(得分:0)