我所知道的是(如果我错了,请纠正我):
这是否意味着XHTML是HTML的一个子集,或者由于任何其他原因而保留此声明?
答案 0 :(得分:5)
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”,但即使在这里,除了不同的序列化之外,还存在不可避免的差异。
答案 1 :(得分:2)
这是否意味着XHTML是HTML的一个子集
不,不。
XHTML是否是HTML的一个子集?
没有。 HTML也不是XHTML的子集。
例如:
<input name="surname">
是有效的HTML但不是有效的XHTML。 <div />
是有效的XHTML,但不是有效的HTML。传统上,HTML和XHTML是分开指定的。 HTML5在单个规范中定义了两种语法。但这两种语法是互斥的。但是,可以在文档中使用符合两种语法的标记。例如使用<input name="surname" />
和<div></div>
答案 2 :(得分:1)
你问了两个问题:
(a)XHTML是HTML的一个子集吗?答案,不。通过展示XHTML允许HTML不允许的内容(例如XML声明)轻松证明。
(b)如果H是S的子集而X是S的子集,这是否意味着X是H的子集?绝对不是:这将是一个严重的逻辑错误。