首先,看看這幾個(gè)字母都是什么意思
SGML:
Standard Generalized Markup Language(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言);
XML:
Extensible Markup Language(可擴(kuò)展標(biāo)記語(yǔ)言)
我不知道為什么它要叫XML,不過(guò)可能跟Cross Site Script叫XSS一樣,避免跟CSS(Cascading Style Sheet)重名一樣.
HTML:
HyperText Markup Language(超文本標(biāo)記語(yǔ)言)
SGML是現(xiàn)時(shí)常用的超文本格式的最高層級(jí)標(biāo)準(zhǔn),是可以定義標(biāo)記語(yǔ)言的元語(yǔ)言,甚至可以定義不必采用< >的常規(guī)方式.(來(lái)自wiki)
XML是用來(lái)傳送及攜帶數(shù)據(jù)信息,不用來(lái)表現(xiàn)或展示數(shù)據(jù),HTML語(yǔ)言則用來(lái)表示數(shù)據(jù).XML是從SGML簡(jiǎn)化修改出來(lái)的.
那么也就是說(shuō),SGML可以算是XML和HTML的parent,SGML提供了一種定義標(biāo)記語(yǔ)言的方式,告訴他的child可以做什么不可以做什么,必須包括什么元素,例如標(biāo)簽,以及語(yǔ)言的基本結(jié)構(gòu).
HTML是SGML的Youngest son,是創(chuàng)建頁(yè)面形式和外觀的標(biāo)記語(yǔ)言,還可通過(guò)javascript添加其他的功能
因此利用SGML創(chuàng)建了HTML參照和必須共同遵守的DTD,你會(huì)經(jīng)常在HTML頁(yè)面的頭部發(fā)現(xiàn)“DOCTYPE”屬性,用來(lái)定義用于解析目標(biāo)DTD
而XML是SGML的Eldest child,它具有不同于HTML的功能,XML有HTML沒(méi)有的權(quán)限,XML可以定義自己的應(yīng)用程序等等
現(xiàn)在解析SGML是一件麻煩的事情,所以創(chuàng)建了XML更簡(jiǎn)化.例如:在SGML中你必須使用起始和結(jié)束標(biāo)簽,但是在XML你可以有自動(dòng)關(guān)閉的結(jié)束標(biāo)簽