繁体   English   中英

XHTML是HTML的一个子集吗?

[英]Is XHTML a subset of HTML?

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

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

这是否意味着XHTML是HTML的一个子集,或者由于任何其他原因而保留此语句?

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>

你问了两个问题:

(一)XHTML是HTML的一个子集吗? 答案,不。 通过展示XHTML允许HTML不允许的内容(例如XML声明)轻松证明。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM