【问题标题】:Is XHTML a subset of HTML?XHTML 是 HTML 的子集吗?
【发布时间】:2013-08-27 10:48:15
【问题描述】:

我所知道的是(如果我错了请纠正我):

  • XML 是 SGML 的子集。
  • XHTML 是一个应用程序,也是 XML 的一个子集。
  • HTML 是 SGML 的一种应用程序。

这是否暗示 XHTML 是 HTML 的一个子集,还是出于任何其他原因该陈述成立?

【问题讨论】:

    标签: html xml xhtml subset sgml


    【解决方案1】:

    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”,但即使在这里,除了序列化不同之外,也不可避免地存在差异。

    【讨论】:

      【解决方案2】:

      这是否暗示 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>
      【解决方案3】:

      你问了两个问题:

      (a) XHTML 是 HTML 的子集吗?回答,没有。通过证明 XHTML 允许 HTML 不允许的东西(例如 XML 声明),很容易证明。

      (b) 如果 H 是 S 的子集并且 X 是 S 的子集,这是否意味着 X 是 H 的子集?绝对不是:那将是一个严重的逻辑错误。

      【讨论】:

        猜你喜欢
        • 2012-11-23
        • 2011-10-23
        • 2011-01-13
        • 2021-04-08
        • 2020-05-06
        • 1970-01-01
        • 1970-01-01
        • 2012-05-30
        • 1970-01-01
        相关资源
        最近更新 更多