HTML符合XML规范吗?

时间:2013-01-04 22:52:16

标签: html xml specifications

HTML和XML在语法上非常相似,所以我想知道的是,有效的HTML代码是否始终符合XML规范。

3 个答案:

答案 0 :(得分:3)

不,它不会。

HTML 2到4.x是SGML应用程序,而不是XML应用程序。 (HTML +可能也是一个SGML应用程序,从规范的简要说明中已经不清楚了)

HTML 5有自己的解析规则。

(XHTML和HTML 5的XML序列化虽然是XML)

答案 1 :(得分:2)

  

HTML是否符合XML规范?

不,它没有。 HTML支持:

  • 未公开的标签(例如<img>代替<img />
  • 错误嵌套的代码(例如<b><i>bla</b></i>代替<b><i>bla</i></b>
  • 未加引号的属性(例如<a name=foo>...</a>
  • 非编码的内容(例如<em>this & that</em>代替<em>this &amp; that</em>
  • 明确必须包含未编码内容的标记(即<script>
  • 命名实体(例如&copy;代替&#169;

标准没有明确允许所有这些概念,但所有HTML解析器都理解并支持它们。

它们在XML中都不合法。

答案 2 :(得分:1)

HTML更宽松。例如,

<!DOCTYPE html>
<title>foo</title>
bar

是一个有效的HTML5文档,但它显然不是有效的XML,因为XML需要一个包含整个文档的顶级元素。

但是,您可以使用XHTML种语言之一,这些语言是XML的应用程序,其语义与相应的HTML标准相同。