比较/对比HTML,XHTML,XML和HTML5

时间:2009-09-15 19:05:11

标签: html xml xhtml html5

好的,所以我不太确定这些语言之间的区别。有人可以澄清吗?我知道XML有用户定义的标签,而html是预先定义的,但这基本上就是我的知识范围。

我知道HTML5应该取代HTML,但是XML也不应该这样做吗?基本上,这里的哪种语言可以替代另一种,哪种补充? XML取代XHTML吗?

9 个答案:

答案 0 :(得分:31)

HTML是超文本标记语言,用于创建结构化文档并提供文档背后的语义含义。 HTML5是HTML规范的下一个版本。

XML是可扩展标记语言,它提供了创建,构建和编码文档的规则。您经常会看到XML用于存储数据并允许应用程序之间的通信。它与编程语言无关 - 所有主要的编程语言都提供了读取和编写XML文档的机制,可以作为核心的一部分,也可以作为外部库的一部分。

XHTML是基于XML的HTML。它提供与HTML相同的功能,但具有与XML文档相同的规则。这些规则处理标记的结构。

答案 1 :(得分:10)

XML是一种元语言。元语言是一种语言,它提供了一种语法机制,用于创建其他语言而不通过预定义语法约束表达式。 XML在SGML doctype语言中定义。遵守XML的严格语法要求称为良构性,这是一种精确准确的实践,用于在各种不同的应用程序和用户代理之间实现文档的统一处理。

SGML是一种像XML这样的元语言,甚至是XML的父级。 SGML提供了一种广泛的形式,用于在语法使用中定义数据,而无需提供数据类型约定。与SGML XML不同,它具有严格且极其简化的语法,不会引起混淆。与SGML不同,XML还具有数据类型定义。 XML中的元素以lambda方式提供命名空间范围,而SGML不提供对命名空间的支持。

Doctype是一种基于SGML的语言,它使用完全不同于XML的语法来定义标记语言语法和广泛的数据类型约定,以便将数据元素与文本区分开来。

XML Schema是一种XML编写语言,除了元素,结构和属性的特定数据类型约定外,还允许语言语法定义具有精确的结构形式。与SGML词汇表不同,用Schema编写的语言在结构上具有自我意识,因此他们可以在结构的任何不同点知道自己的内部需求。由于结构自我意识,模式定义的语言能够立即通过参考模式文档进行验证,而Doctype中定义的语言需要不相关的软件和静态定义才能执行验证。

HTML 1.0是用英文文本编写的,既不是SGML也不是XML。

HTML 2 - 4是用SGML编写的,具有SGML灵活性,例如大写标签或没有匹配结束标签的开始标签。

XHTML 1.0是一种SGML定义的HTML语言形式,带有一些扩展要求,可以逐步兼容XML语法。

XHTML 1.1是XML中定义的HTML语言,具有XML格式要求。

HTML5与HTML 1.0一样,未使用任何元语言定义。它是用英文文本编写的,并且与XML序列化的统一要求相对立。 HTML5似乎是为了可用性和媒体交付而创建的,而不考虑结构或语言层次结构。

XHTML5代表“HTML5的XML序列化”,是HTML5的XML语法,可以在将DOM树序列化回HTML5时使用(DOM树无法区分标签汤标签和正确标签)并且必须遵守更严格的XML规则和命名空间。它用于更容易的机器读取或数据交换,或者需要比较两个HTML5文档时。它与HTML5标准一起指定(感谢hsivonen指出这一点)。

答案 2 :(得分:8)

XML是一种语法:它定义了如何写入数据,但不定义您可以编写的数据。例如:

<something otherthing="stuff">content</something>

HTML是一个词汇表:它定义了你可以编写的元素类型(例如BODY,P,LI等),但对你如何编写它并不是非常严格(参见“Tag soup”);

XHTML是(大约)HTML词汇表,除了使用(更严格的)XML语法编写。因此(因为语法更严格)软件解析更容易,但非程序员更难以正确编写。它不是很受欢迎,因为Internet Explorer不能正确支持它。

HTML5是HTML的下一代版本(HTML 4的当前版本),仍处于草稿阶段,尚未成为标准版本,部分浏览器部分支持(因此,实验性)。 HTML5将明确支持使用XML语法或标记汤提供服务。

答案 3 :(得分:6)

您可以谷歌或使用维基百科进行精确定义。我只想举个例子:

HTML:

<DIV id=header>header</div>

XHTML:

<div id="header">header</div>

HTML 5:

<header>header</header>

XML是基于XHTML的语法:

<something otherthing="stuff">content</something>

答案 4 :(得分:5)

首先,有 SGML ,它是HTML和XML的概念祖先,是

  • S 标准(ISO 8879:1986),以便不同的组织和计划可以交换文件
  • G 通用,以便用户可以定义新标签
  • M arkup,因此可以使用描述内容的结构信息来扩充文档内容
  • L anguage,因此有一个定义标记的语法。

然后, HTML 被创建为一组特定的SGML标记,用于定义网页的呈现方式。

XML 是作为SGML的简化而创建的。

创建

XHTML 是为了将HTML重新格式化为格式良好的XML(例如,需要结束标记,这在SGML和HTML中是非常必要的。)

HTML 5 是HTML的当前版本。它拒绝了XHTML背后的动机,并且允许比XML规则更宽松的标记规范。

答案 5 :(得分:4)

查看two serializations of HTML5抽象语言的图形。 alt text

答案 6 :(得分:2)

HTML是网页的标记语言,而XML是信息的标记语言。 XML从未被视为HTML的直接替代品,它具有不同的范围。

HTML 5只是HTML的最新版本。 HTML的“当前”版本(几乎所有正在使用的浏览器都支持的版本)是4.01。

XHTML是一种基于HTML的标准,已经过调整,以符合更严格的XML规则。 XHTML文档也是一个XML文档,如果写得正确,它可以被任何XML解析器解析。

答案 7 :(得分:1)

HTML是为网页制作的标记语言。 HTML 5是HTML的第五个版本。

XML是另一种标记语言。 XHTML是XML的一种方言,非常类似于HTML,并且意在取代它,但由于支持不佳基本上只与HTML一起存在。

答案 8 :(得分:-1)

所有这些语言的标准都由World Wide Web Consortium维护。

确切的差异和细微之处超出了stackoverflow问题的范围,但是w3schools.com有一些教程可以帮助你开始这个。

我建议你阅读你在w3schools上提到的每种语言的介绍。这应该会让你对差异有所了解。