2009-09-15 92 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