【发布时间】:2013-08-27 10:48:15
【问题描述】:
我所知道的是(如果我错了请纠正我):
- XML 是 SGML 的子集。
- XHTML 是一个应用程序,也是 XML 的一个子集。
- HTML 是 SGML 的一种应用程序。
这是否暗示 XHTML 是 HTML 的一个子集,还是出于任何其他原因该陈述成立?
【问题讨论】:
标签: html xml xhtml subset sgml
我所知道的是(如果我错了请纠正我):
这是否暗示 XHTML 是 HTML 的一个子集,还是出于任何其他原因该陈述成立?
【问题讨论】:
标签: html xml xhtml subset sgml
XML 不是 SGML 的子集,但很接近。 XML 有自己的规则,与 SGML 有部分不同,尽管它主要由 SGML 组成,省略了大部分功能。
XHTML(它是几种标记语言的统称)可以称为应用程序和 XML 的子集,但除此之外,XHTML 标记具有分配给它们的含义,而 XML 本身并没有说明任何含义.
HTML 名义上是 SGML 在 HTML 2.0、HTML 3.2、HTML 4.0 和 HTML 4.01 规范中的应用,但这始终只是理论上的。只有验证器将 HTML 视为 SGML。从来没有任何浏览器实现了这些规范中定义的 HTML。一些 SGML 特性,原则上是其中的一部分,缺乏全部支持。
即使子集关系都为真,“XHTML 是 HTML 的子集”的结论也不会从前提中得出。 A ⊂ B 和 C ⊂ B 和 D ⊂ B 并不意味着 C ⊂ D。
XHTML 不是 HTML 的子集。有一些 XHTML 规范包含 HTML 规范中未包含的元素。 XHTML 和 HTML 都是集合名词。 XHTML 1.0 在 XML 语法中被描述为 HTML 4.01,因此它们可能被称为替代语法形式。但即使这样也不是完全正确的。除了明显的句法差异外,XHTML 1.0 和 HTML 4.01 之间还有几个记录不充分的差异。 HTML5 被定义为两种语法,两种序列化,“HTML”和“XHTML”,但即使在这里,除了序列化不同之外,也不可避免地存在差异。
【讨论】:
这是否暗示 XHTML 是 HTML 的子集
没有。
XHTML 是 HTML 的子集吗?
没有。 HTML 也不是 XHTML 的子集。
例如:
<input name="surname"> 是有效的 HTML,但不是有效的 XHTML。 <div /> 是有效的 XHTML,但不是有效的 HTML。传统上,HTML 和 XHTML 是分开指定的。 HTML5 在一个规范中定义了这两种语法。但是这两种语法是互斥的。但是,可以在文档中使用符合这两种语法的标记。例如通过使用<input name="surname" /> 和<div></div>
【讨论】:
<div /> 原则上是有效的 HTML(尽管它并不代表您的想法),实际上浏览器将其视为 <div>。
你问了两个问题:
(a) XHTML 是 HTML 的子集吗?回答,没有。通过证明 XHTML 允许 HTML 不允许的东西(例如 XML 声明),很容易证明。
(b) 如果 H 是 S 的子集并且 X 是 S 的子集,这是否意味着 X 是 H 的子集?绝对不是:那将是一个严重的逻辑错误。
【讨论】: