2009-09-15 91 views
22

好的,所以我不太确定这些语言之间的区别。有人可以澄清吗?我知道XML具有用户定义的标签,并且html是预定义的,但基本上我知道的程度。比较/对比HTML,XHTML,XML和HTML5

我知道HTML5应该取代HTML,但不是XML应该这样做呢?基本上,这里的哪些语言是另一种语言的替代品,哪些是补语? XML是否取代XHTML?

回答

29

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

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

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

+0

我的一些描述可能会使用一些工作。随意清理任何措辞,如果你想。我会尽力捅入,并在稍后清理它。 – 2009-09-15 19:12:06

+6

请注意,HTML5也会更新XHTML。也被称为XHTML5。 – Anne 2009-09-15 19:46:19

+2

如果说XHTML是HTML的继承者,而HTML5将会取代XHTML,那么我会错误吗?或者HTML和HTML5永远不会成为XHTML的替代品? – GiH 2009-09-16 14:59:23

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> 
+0

HTML也允许使用小写元素名称。 – Gumbo 2009-09-15 19:20:47

+1

是的,但它也允许大写。这就是为什么我把“DIV”和“div”放在一起的原因 – marcgg 2009-09-15 20:19:05

0

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

确切的区别和细节超出了对stackoverflow问题的范围,但w3schools.com有一些教程,可以帮助你开始在这。

我建议阅读你在w3schools上被问到的每种语言的介绍。这应该给你一些关于差异的想法。

+3

确切的区别和微妙之处在于它是面包和黄油的叠加。 [w3schools不知道它是正确还是微妙](http://w3fools.com/) – Benxamin 2011-04-15 16:11:07

1

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

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

2

HTML是网页的标记语言,而XML是信息的标记语言。 XML从来不是直接替代HTML,它有不同的范围。

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

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

+1

当前版本的HTML是4.01。 – Gumbo 2009-09-15 19:22:06

+0

@Gumbo:这就是我的意思。 ;) – Guffa 2009-09-15 20:11:56

8

XML是一种语法:它定义了你如何写入数据,而不是写什么数据。例如:

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

HTML是一个词汇,它定义了什么样的元素,你可以写(例如BODY,P,李等),但不是很严格你如何写呢(见“Tag soup “);

XHTML是(大约)HTML词汇表,除了使用(更严格的)XML语法编写外。因此它(因为语法更严格)更易于软件解析,但非程序员难以正确书写。它不是很流行,因为Internet Explorer不能正确支持它。 HTML5是HTML(HTML 4的最新版本)的下一代版本,仍处于草稿阶段,尚未成为标准,部分浏览器(以及实验版)部分支持HTML5。 HTML5将明确支持使用XML语法或作为标记汤来提供服务。

9

XML是一种元语言。元语言是一种语言,它提供了用于创建其他语言的语法机制,而不必通过预定义的语法来限制表达式。 XML在SGML文档类型语言中定义。遵守XML严格的语法要求被称为格式良好性,这是一种精确准确地满足一系列要求的实践,旨在实现跨不同应用程序和用户代理的文档的统一处理。

SGML是一种像XML这样的元语言,甚至是XML的父代。 SGML提供了一种广泛的形式,用于在不使用数据类型约定的情况下定义语法使用中的数据。与SGML不同,XML具有一种严格且极其简化的语法,不容易混淆。与SGML不同,XML也具有数据类型定义的特征。 XML中的元素以lambda方式提供名称空间范围,而SGML不提供对名称空间的支持。

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

XML Schema是一种XML书写语言,除了元素,结构和属性的特定数据类型约定外,还允许使用精确结构形式的语言语法定义。在Schema中编写的语言在结构上具有自我意识,与SGML词汇表不同,因此他们在结构中的任何不同点都了解自己的内部需求。由于结构性自我意识,架构定义的语言可以立即打开以通过参考架构文档进行验证,而在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指出了这一点)。

+0

XHTML5在与HTML5相同的规范中定义,即使该规范的标题是HTML5。该定义是公开的,并且已经公开多年。 – hsivonen 2009-11-03 11:51:44

1

首先,有SGML,HTML和XML的概念祖先,这是一个

  • 小号 TANDARD(ISO 8879:1986),从而使不同的组织和能计划交换文件
  • 。广义,使用户可以定义新的标签
  • 中号 arkup,以便文档内容可以用描述内容的结构化信息来增强,这样就有一个定义标记的语法。

然后,HTML为一组特定的用来定义网页应该如何呈现SGML标签的创建。

XML被创建为SGML的简化。

XHTML被创建用于重新构建HTML格式良好的XML(例如,需要结束标记,例如,SGML和HTML中并不严格需要)。

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

+0

我想补充说现代HTML5仍然是SGML,即使HTML规范不再规范地引用SGML标准(ISO 8879)。 SGML的遗产以HTML的行为与wrt在HTML标签推断中以元素名称(可接受字符,大小写折叠)的词法规则进行显示。省略属性名称(如<选择选项>)以及更多详细信息。这并不令人意外,因为HTML基于SGML,而HTML5专门设计用于向后兼容作为主要目标。来源:在2017年XMLPrague上发布了关于此主题的论文/讨论(参见http://sgmljs.net/blog/blog1701.html)。 – imhotap 2017-09-21 09:03:42