1

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

4

3 回答 3

3

不,不会的。

HTML 2 到 4.x 是 SGML 应用程序,而不是 XML 应用程序。(HTML+ 也可能是一个 SGML 应用程序,从规范的简短浏览中并不清楚)

HTML 5 有自己的解析规则。

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

于 2013-01-04T22:54:26.387 回答
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 中都不合法。

于 2013-01-04T23:02:35.017 回答
1

HTML 更宽松。例如,

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

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

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

于 2013-01-04T22:55:34.737 回答