HTML 和 XML 在语法上非常相似,所以我想知道有效的 HTML 代码是否始终符合 XML 规范。
问问题
181 次
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 & that</em>
) - 明确必须包含未编码内容的标签(即
<script>
) - 命名实体(例如
©
,代替©
)
该标准并未明确允许所有这些概念,但所有 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 回答