Html,xhtml,xml的定义和区别
1? ? ? 起源?
SGML、HTML、XML、XHTML、HTML5
從這五者的名字中,我們都可以看到 “ML” 這兩個字母,所以我們先從 “ML” 說起。
“ML”即 “Markup language(置標(biāo)語言)”。根據(jù)維基百科對其的解釋,“Markup language” 是用標(biāo)準(zhǔn)的標(biāo)記來解釋純文本文檔的內(nèi)容,從而提供關(guān)于文檔結(jié)構(gòu)或文檔該如何渲染的信息。置標(biāo)語言的發(fā)展可以用下圖來表示:
?
GML 是第一代置標(biāo)語言,使文檔能明確將標(biāo)示和內(nèi)容分開,所以文件使用同樣的標(biāo)示方法。
SGML 在 GML 的基礎(chǔ)上進行整理,形成了一套非常嚴(yán)謹(jǐn)?shù)奈募枋龇椒āK慕M成包括語法定義,DTD,文件實例三部分。SGML 因太嚴(yán)謹(jǐn)規(guī)范達500多頁,故而不易學(xué)、不易用、難以實現(xiàn),所以在它的基礎(chǔ)上又發(fā)展出了其他的更易用的置標(biāo)語言。
HTML 是人們抽取了 SGML 的一個微小子集而提取出來的。其早期規(guī)范比較松散,但比較易學(xué)。
XML 也是 SGML 的一個子集,但使用比較嚴(yán)格的模式。
XHTML 的出現(xiàn)是因為HTML擴充性不好,內(nèi)容的表現(xiàn)跟不上時代的變化(如無法表示某些化學(xué)符號等),以及因為性能的問題,官方逐漸趨于嚴(yán)格的模式,所以使用 XML 的嚴(yán)格規(guī)則的 XHTML 成了 W3C 計劃中 HTML 的替代者。
HTML 經(jīng)過一系列修訂,到現(xiàn)在說的 HTML 一般指 HTML 4.01;而現(xiàn)在的 HTML 5 則是 HTML 的第五個修訂版,其主要的目標(biāo)是將互聯(lián)網(wǎng)語義化,以便更好地被人類和機器閱讀,并同時提供更好地支持各種媒體的嵌入。而HTML5本身并非技術(shù),而是標(biāo)準(zhǔn)。它所使用的技術(shù)早已很成熟,國內(nèi)通常所說的html5實際上是html與css3及JavaScript和api等的一個組合,大概可以用以下公式說明:HTML5≈HTML+CSS3+JavaScript+API.
?
2? ? ?定義和特點
(1)? ?XML
XML是Extentsible Markup Language 可擴展標(biāo)記語言
XML是用來定義其他語言的一種元語言,其前身是SGML(標(biāo)準(zhǔn)通用標(biāo)記語言)。它沒有標(biāo)簽集(tag set),也沒有語法規(guī)則(grammatical rule)。但 是它有句法規(guī)則(syntax rule)。
不論什么XML文檔對不論什么類型的應(yīng)用以及正確的解析都必須是良構(gòu)的(well-formed)。即每個打開的標(biāo)簽都必須有匹配的結(jié)束標(biāo)簽,不得含有次序顛倒的標(biāo)簽,而且在語句構(gòu)成上應(yīng)符合技術(shù)規(guī)范的要求。 XML文檔能夠是有效的(valid),但并不是一定要求有效。所謂有效文檔是指其符合其文檔類型定義(DTD)的文檔。
假設(shè)一個文檔符合一個模式(schema)的規(guī)定 。那么這個文檔是模式有效的(schema valid)。
(2)? ?HTML
HTML是Hypertext Markup Language超文本鏈接標(biāo)示語言。
HTML(HyperTextMark-upLanguage)即超文本標(biāo)記語言,是WWW的描寫敘述語言。設(shè)計HTML語言的目的是為了能把存放在一臺電腦中的文本或圖形與還有一臺電腦中的文本或圖形方便地聯(lián)系在一起,形成有機的總體,人們不用考慮詳細信息是在當(dāng)前電腦上還是在網(wǎng)絡(luò)的其他電腦上。我們僅僅需使用鼠標(biāo)在某一文檔中點取一個圖標(biāo)。Internet就會立即轉(zhuǎn)到與此圖標(biāo)相關(guān)的內(nèi)容上去。而這些信息可能存放在網(wǎng)絡(luò)的還有一臺電腦中。
HTML文本是由HTML命令組成的描寫敘述性文本,HTML命令能夠說明文字、圖形、動畫、聲音、表格、鏈接等。HTML的結(jié)構(gòu)包括頭部(Head)、主體(Body)兩大部分,當(dāng)中頭部描寫敘述瀏覽器所需的信息。而主體則包括所要說明的詳細內(nèi)容。另外,HTML是網(wǎng)絡(luò)的通用語言,一種簡單、通用的全置標(biāo)記語言。它同意網(wǎng)頁制作人建立文本與圖片相結(jié)合的復(fù)雜頁面,這些頁面能夠被網(wǎng)上不論什么其它人瀏覽到,不管使用的是什么類型的電腦或瀏覽器。
?
(3)? ?XHTML
XHTML 是EXtensible HyperText Markup Language擴展超文本標(biāo)簽語言
作為下一代的HTML。我們能夠理解XHTML是HTML的升級版。XHTML是HTML像XML的一個過渡語言。它比HTML嚴(yán)謹(jǐn)性會高點。然后基本語言都還是沿用的HTML的標(biāo)簽。僅僅只是廢除了部分表現(xiàn)層的標(biāo)簽,同事在標(biāo)準(zhǔn)上要求高了點比方標(biāo)簽的嚴(yán)格嵌套,標(biāo)簽結(jié)束等等。今天的市場中存在著不同的瀏覽器技術(shù)。某些瀏覽器執(zhí)行在計算機中,某些瀏覽器則執(zhí)行在移動電話和手持設(shè)備上。而后者沒有能力和手段來解釋糟糕的標(biāo)記語言。
因此,通過把 HTML 和 XML 各自的好處加以結(jié)合,我們得到了在如今和未來都能派上用場的標(biāo)記語言 - XHTML。XHTML 能夠被全部的支持 XML 的設(shè)備讀取。同一時候在其余的瀏覽器升級至支持 XML 之前,XHTML 使我們有能力編寫出擁有良好結(jié)構(gòu)的文檔。這些文檔能夠非常好地工作于全部的瀏覽器,而且能夠向后兼容。
?
3? ? ?區(qū)別和對比
3.1? XML和HTML
XML和HTML的對照:
(1)? ?XML是被設(shè)計用來描寫敘述數(shù)據(jù)的,重點是:什么是數(shù)據(jù),怎樣存放數(shù)據(jù)。
(2)? ?HTML是被設(shè)計用來顯示數(shù)據(jù)的,重點是:顯示數(shù)據(jù)以及怎樣顯示數(shù)據(jù)更好上面。
HTML與XML之間的關(guān)系:
(1)? ?事實上HTML與XML之間沒有很必定的聯(lián)系,XML不是要替換HTML,實際上XML能夠視作對HTML的補充。
(2)? ?XML和HTML 的目標(biāo)不同:HTML 的設(shè)計目標(biāo)是顯示數(shù)據(jù)并集中于數(shù)據(jù)外觀。而XML的設(shè)計目標(biāo)是描寫敘述數(shù)據(jù)并集中于數(shù)據(jù)的內(nèi)容。
(3)? ?與HTML相似,XML不進行不論什么操作。盡管XML標(biāo)記可用于描寫敘述訂單之類的項的結(jié)構(gòu),但它不包括可用于發(fā)送或處理該訂單以及確保按該訂單交貨的不論什么代碼,其它人必須編寫代碼來實際對XML格式的數(shù)據(jù)運行這些操作。
與 HTML 不同,XML 標(biāo)記由架構(gòu)或文檔的作者定義,而且是無限制的。
HTML 標(biāo)記則是提前定義的;HTML 作者僅僅能使用當(dāng)前 HTML 標(biāo)準(zhǔn)所支持的標(biāo)記。
(4) 與 HTML 不同。XML 標(biāo)記由架構(gòu)或文檔的作者定義,而且是無限制的。HTML 標(biāo)記則是提前定義的;HTML 作者僅僅能使用當(dāng)前 HTML 標(biāo)準(zhǔn)所支持的標(biāo)記。
?
3.2? ?HTML與XHTML
HTML與XHTML對照:
XHTML作為HTML的升級版。當(dāng)然會有很多其它的規(guī)范。詳細例如以下:
(1)? ?全部的標(biāo)記都必需要有一個相應(yīng)的結(jié)束標(biāo)記。
曾經(jīng)在HTML中。你能夠打開很多標(biāo)簽,比如和<li>而不一定寫相應(yīng)的和</li>來關(guān)閉它們。但在XHTML中這是不合法的。
XHTML要求有嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),全部標(biāo)簽必須關(guān)閉。
假設(shè)是單獨不成對的標(biāo)簽。在標(biāo)簽最后加一個"/"來關(guān)閉它。
比如:<img height="80" alt="網(wǎng)頁設(shè)計師" src="../images/logo_w3cn_200x80.gif" width="200" />。
(2)? ?全部標(biāo)簽的元素和屬性的名字都必須使用小寫。
與HTML不一樣,XHTML對大寫和小寫是敏感的。
<title>和<TITLE>是不同的標(biāo)簽。XHTML要求全部的標(biāo)簽和屬性的名字都必須使用小寫。比如:<BODY>必須寫成<body> 。大寫和小寫夾雜也是不被認(rèn)可的。
通常dreamweaver自己主動生成的屬性名字"onMouseOver"也必須改動成"onmouseover"。
(3)? ?全部的XML標(biāo)記都必須合理嵌套。
相同由于XHTML要求有嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu)。因此全部的嵌套都必須按順序。
曾經(jīng)我們這樣寫的代碼:<p><b></p></b>必須改動為:<p><b></b></p>。
就是說。一層一層的嵌套必須是嚴(yán)格對稱。
(4)? ?全部的屬性必須用引號""括起來。
在HTML中。你能夠不須要給屬性值加引號,可是在XHTML中,它們必須被加引號。
比如:<height=80>必須改動為:<height="80">。
特殊情況,你須要在屬性值里使用雙引號,你能夠用",單引號能夠使用',
比如:<alt="say'hello'">
(5)? ?把全部<和&特殊符號用編碼表示。
不論什么小于號(<)。不是標(biāo)簽的一部分,都必須被編碼為& l t ;不論什么大于號(>),不是標(biāo)簽的一部分,都必須被編碼為& g t 。不論什么與號(&),不是實體的一部分的,都必須被編碼為& a m p;注:以上字符之間無空格。
(6)? ?給全部屬性賦一個值。
XHTML規(guī)定全部屬性都必須有一個值,沒有值的就反復(fù)本身。
比如:<input type="checkbox" name="shirt" value="medium" checked>
必須改動為:
<input type="checkbox" name="shirt" value="medium" checked="checked" />
(7)? ?不要在凝視內(nèi)容中使“--”。“--”僅僅能發(fā)生在XHTML凝視的開頭和結(jié)束,也就是說,在內(nèi)容中它們不再有效。
比如以下的代碼是無效的:<!--這里是凝視-----------這里是凝視-->:用等號或者空格替換內(nèi)部的虛線。
<!--這里是凝視============這里是凝視-->:以上這些規(guī)范有的看上去比較奇怪,但這一切都是為了使我們的代碼有一個統(tǒng)一、唯一的標(biāo)準(zhǔn),便于以后的數(shù)據(jù)再利用。
(8)? ?圖片必須有說明文字。每一個圖片標(biāo)簽都必須有ALT說明文字。
<img src="ball.jpg" alt="large red ball" title="large red ball"/> //為了兼容火狐和IE瀏覽器,對于圖片標(biāo)簽,盡量採用 alt和title雙標(biāo)簽,單純的alt標(biāo)簽在火狐下沒有圖片說明。
?
3.3 怎樣將 HTML 轉(zhuǎn)換為 XHTML
加入一個 XHTML <!DOCTYPE> 到網(wǎng)頁中。
加入 xmlns 屬性到每一個頁面的 html 元素中。
改動全部的元素為小寫。
關(guān)閉全部的空元素。
改動全部的屬性名稱為小寫。
全部屬性值加入引號。
?
?
?
?
參考:https://www.cnblogs.com/huanqna/p/8178057.html
? ?https://www.cnblogs.com/lxjshuju/p/7098341.html
轉(zhuǎn)載于:https://www.cnblogs.com/iamspecialone/p/11227978.html
總結(jié)
以上是生活随笔為你收集整理的Html,xhtml,xml的定义和区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。