1. 程式人生 > >SGML/HTML/XML之間的關系

SGML/HTML/XML之間的關系

XML 百度百科 rod 互聯網 一個 分號 參考資料 nbsp 先驅

1 歷史起源

  • SGML——1986年國際標準化組織出版發布了一個信息管理方面的國際標準(ISO 8879:1986信息處理)。
  • HTML 2.0——1995年11月作為RFC 1866發布
  • XML 1.0——1998年,W3C發布了XML1.0規範,使用它來簡化Internet的文檔信息傳輸
  • XHTML 1.0——2000年成為W3C的推薦標準
  • HTML5——2014年,W3C宣布,該標準制定完成

註意:HTML 1.0在1993年6月作為互聯網工程工作小組(IETF)工作草案發布,並非標準。

從上表可以看出SGML最為古老,SGML成為國際標準的接近20年之後,HTML 2.0才稱為W3C的推薦標準,XML發展的最晚,SGML和HTML顯然是XML的先驅。

2 SGML簡介

SGML是一個用於定義標記語言的系統。為用戶提供一種類似語法的機制,用於定義文檔的結構和指示文檔結構的標簽。

每一個使用SGML定義的標記語言都被稱為SGML應用。一個SGML應用通常具有以下特點:

  1. SGML聲明。SGML聲明指定義了應用程序中可能出現的字符和分隔符。
  2. 文檔類型定義(DTD,document type definition)。DTD定義了標記構造的語法。DTD可能包含其他定義,如字符實體引用。
  3. 描述標記所表達的語義。此規範還定義了無法在DTD中表達的語法的限制。
  4. 包含數據(內容)和標記的文檔實例。每個實例都包含一個對DTD的引用,用於解釋它。

3 SGML與HTML

SGML與HTML有什麽關系呢?HTML4以前的版本(包含HTML4)理論上是基於SGML的一個實例,因此需要在doctype中引用相關的DTD。之所以用理論上,是因為有人說HTML4以前的版本(不包含HTML4)並不嚴格符合SGML。

下面簡單介紹一下HTML是如何使用SGML構建的。

1)元素

SGML文檔類型定義聲明了表示結構或所需行為的元素類型。HTML 包括表示段落、超文本鏈接、列表、表、圖像等的元素類型。

每個元素類型聲明通常描述三部分:開始標記、內容和結束標記。

元素的名稱出現在開始標記(<element-name>)和結束標記(</element-name>)中。

等等。

  2)屬性

元素可能具有關聯的屬性,它們可能具有值。屬性/值對出現在元素的開始標記的">"之前。由空格分割任意數量的屬性值。

等等。

3)字符引用

字符引用可能包含在 HTML 文檔中的字符的數字或符號名稱。它們對於引用不常見的字符或那些編寫工具很難鍵入的字符非常有用。字符引用以"&"標記開始,以分號(;)結束。一些常見的例子如下:

    • "&lt;"代表 < 符號
    • "&gt;" 代表> 符號

4)註釋

HTML註釋以"<!--"開始,以"-->"結束。

以上中所有的語法均依據HTML的文檔類型定義(DTD)。

4 SGML與XML

SGML與XML有是什麽關系呢?XML是SGML的一個子集,比SGML要簡單,但是能實現SGML的大部分功能。

5 XHTML與XML

之後發展的XHTML是基於XML的一個應用,XHTML的出現是為了解決HTML語法要求松散的問題,它的語法要求更嚴格。

6 HTML5

如今的HTML5標準制定了兩種實現語法HTML和XHTML。HTML不再基於任何特定的標記語言系統,它有自己完整的標準。XHTML是XML的一個應用。

備註:當HTML5文檔使用text/html MIME類型傳輸時,它將被Web瀏覽器是為HTML文檔處理。當使用XML MIME類型,例如application/xhtml+xml傳輸時,它將被Web瀏覽器視為XML文檔,由XML處理器進行分析。

參考資料

1 On SGML and HTML - W3C https://www.w3.org/TR/html4/intro/sgmltut.html

2 HTML 5.2 - W3C https://www.w3.org/TR/html5/introduction.html#html-vs-xhtml

3 標準通用標誌語言 - 百度百科 https://baike.baidu.com/item/%E6%A0%87%E5%87%86%E9%80%9A%E7%94%A8%E7%BD%AE%E6%A0%87%E8%AF%AD%E8%A8%80/10471466?fr=aladdin&fromid=2901416&fromtitle=SGML

4 HTML - 百度百科 https://baike.baidu.com/item/HTML

5 可擴展標記語言 - 百度百科 https://baike.baidu.com/item/%E5%8F%AF%E6%89%A9%E5%B1%95%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80?fromtitle=xml&fromid=86251

6 《HTML5秘籍》https://book.douban.com/subject/11610880/

SGML/HTML/XML之間的關系