SGML

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

SGML(Standard Generalized Markup Language,即標準通用標記語言)

目錄

什麼是SGML[1]

  SGML是國際上定義電子文檔和內容描述的標準。它源於1969年IBM公司開發的文檔描述語言GML,GML主要用來解決不同系統中文檔格式不同的問題。後經過多年發展,1986年經ISO批准為國際標準ISO8897,並被稱為SGML。

  制定SGML的基本思想是把文檔的內容與樣式分開。在SGML中,標記分兩種:一種用來描述文檔顯示的樣式,稱為程式標記;另一種用來描述文檔中語句的用途,稱為描述標記。一個SGML文件通常分三個層次:結構、內容和樣式。結構為組織文檔的元素提供框架,內容是信息本身,樣式控制內容的顯示。

  SGML的平臺無關性、結構化、可擴展等特性,使得它使用範圍很廣,被許多大型公司用來創建和發佈信息。

SGML的主要特點[2]

  (1)它可以支持眾多的文檔結構類型,例如佈告、技術手冊、章節目錄、設計規範、各種信函等;

  (2)它可以創建與特定的軟硬體無關的文檔,因此很容易與使用不同電腦系統的用戶交換文檔。

SGML的構成[3]

  SGML文件本身包含3個部分:

  (1)SGML聲明(SGML Declaration)。

  (2)文檔類型定義(Document Type Definition,DTD)。

  (3)文檔實例(Document Instance)。

  其中,SGML聲明是用來告訴SGML分析器(SGML Parser)在分析該份文件時,所使用的字元集和文件特性。文件類型定義是用來聲明該份文件的結構與語法參數,不同的“文件內容”使用不同的“標記”來描述。在這裡所謂“標記”(Tag)是指用一特定符號將信息內容中的某一部分加以註記,而此特定符號就稱為“標記”。如“<”及“>”都是一種標記。當然標記也可以是任何一小段文字。如“<NAME>”與“</NAME>”,而“<NAME>Iamstudent</NAME>”則是一段加上標記的字串。

  在SGML標記語言的術語中,“<keyword”稱為起始標記,相對的,“/keyvord>”則稱為結束標記。起始標記與結束標記是否一定要成對,可自行定義,而在起始標記與結束標記兩者之間的文字“keyword”稱為“元素”。至於文檔實例,就是加上標記處理後的文件。

SGML的優缺點[4]

  1.SGML的優點
  • 高穩定性

  SGML的ISO 8879是國際標準規範,所以可信度相當高,其規範結構也相當的嚴謹,此外SGML已使用二十幾年了,且自1996以來SGML的規範幾乎是未曾變更過,所以SGML是相當成熟的一種通用性標記語言。

  • 高可攜性

  SGML文件可以跨平臺使用,如可以在不同的電腦硬體或操作系統上被使用,甚至可以被不同的應用軟體來使用,因為SGML是一種高穩定性的國際標準,加上已使用二十幾年,所以支持其格式的應用軟體與相關數據轉換技術就多,所以SGML文件可以在各應用領域中被廣泛採用,當然其可攜性相對就可以提高。

  • 高完整性

  制定SGML時就考慮須滿足廣泛的使用者,所以其規範制定得相當完整,可以滿足不同應用領域使用者的需求,且與SGML搭配使用的家族如HyTime與DSSSL也都是國際標準,如HyTime符合ISO/IEC 10744的標準,主要功能是描述動態文件的一種語言,而DSSSL(Doeument Style Semantic And Specification Language)符合ISO/IEC 10179的標準,其制定目標有兩個,一為制定SGML文件顯示時的樣本形式,另一個是有轉換語言的功能。

  2.SGML的缺點

  上面提到SGML有高穩定性與完整性的優點,這可使得SGML可以適用在各類應用領域,但這相對的也是SGML致命的缺點。

  • 高複雜性

  由於SGML的高度完整性與穩定性,相對的其複雜性也高,這一點可以說是SGML的主要缺陷,如果使用SGML語法規範來制定DTD中的元素(Element)、屬性(Attribute)與內容實體(Entity),可能需要花上數年的時間才能完全瞭解其中的標準,可見整個SGML系統是過於完善而變成複雜。

  不止SGML本身複雜,連同要開發SGML相關軟體也變得複雜,就開發SGML剖析器而言,用來檢查SGML文件中的控制標記與格式,使用C++來撰寫都得發上幾萬行以上才行咧!

  • 費用昂貴

  從SGML的高複雜性,其相對衍生出來的就是高費用,先前也提過SGML通常被大企業應用在大量的數據上,在SGML被應用之前必需先制定其文件格式定義DTD,以供使用者能遵循這個DTD中定義的文件結構,但其應用的文件數據通常是複雜的,所以制定該DTD也需花長時間才能完成,所以開發能適用的DTD的費用足相當昂貴的。

SGML的標準體系[5]

  SGML標準的體系可分為三個層次:第一層次是元語言標準——SGML標準;第二層次是基礎標準,如:文檔樣式語義與規範語言標準(DSSSL)等,是該體系的基本標準;第三層次是具體的應用標準,如:Internet上已廣泛應用的HTML等標準。也就是說,在XML標準出現之前,SGML標準已經形成了完善的體系,並有許多建立於其上的應用系統與應用標準。如圖所示。

Image:SGML标准体系.jpg

  在此,我們重點介紹一下居於中間層的基礎標準,這些基礎標準可分為三類:信息描述標準、信息表現標準和信息關聯標準。

  (1)信息描述標準:這一類標準是與SGML標準本身直接相關的標準,如:SGML公共標識符註冊標準(ISO 9070),SGML技術報告(ISO TR 9573)、SGML一致性測試系統標準(ISO/IEC 13673)、文檔處理APIs標準等等。

  (2)信息表現標準:這一類標準是關於組合文檔、超媒體文檔的描述與處理的標準。如:文檔處理框架與邏輯文檔格式化、多語種字體信息、信息交換與服務等等。具體標準包括:文檔樣式語義與規範語言標準DSSSI,(ISO/IEC 10179)、標準頁面描述語言SPDL(ISO/IEC 10180)、字體標準Fonts(ISO/IEC 9541)、字體註冊標準Font Registration(ISO/IEC 10036)等等。

  (3)信息關聯標準:這一類標準是關於基於SGML進行信息管理與交換的標準,如:信息的鏈接與定位、基於時間的信息管理、知識結構與索引的表示法、互動式文檔中的動作管理。具體的標準包括:超媒體/基於時間的結構化語言標準HyTime(ISO/IEC 10744)、基於主題的地圖導航標準(ISO/IEC 13250)、司更改又互文檔交換標準ISMID。

  在這些協議中,信息表現部分最重要的標準是DSSSL(Document Style Semantics and Specification Language),信息關聯部分最重要的是HyTime(Information processing-Hypermedia/Time-based Structuring Language - 2d edition)。這兩個標準也是對XML標準體系中影響最為深刻的兩個。其中前者是一種與平臺無關的進行SGML文件處理的語言,主要包括轉換語言、樣式語言、表達式語言和標準文檔查詢語言(SDQL),XML相關標準中有很多內容是從DSSSI。中繼承過來的。後者則定義了一個元素類型的集合,以便使用者可以利用這些類型,以一種標準的方式,在已有的SGML文檔中提供超鏈及其他功能。在XML相關標準巾對此也做了繼承。

SGML的現實問題[5]

  SGML在其開發之初,是以作為一種規範性的標準為出發點的,因而重視詳盡性,而忽視實用性成了它的致命弱點,可以這樣說,SGML從來沒有在網路上廣泛應用過。具體而言:

  第一、SGML是一個嚴格而完整的系統,方便軟體應用並不是它的首要任務,所以SGML非常複雜,其複雜程度對於網路上的日常應用簡直不可思議;

  第二、SGML十分龐大,既不容易學,又不容易使用,在電腦上實現十分困難;

  第三、在SGML中有許多語法語義標準,它們既不方便而且消耗昂貴,這導致開發SGML軟體非常昂貴。目前比較便宜的SGML軟體之一是Adobe Frame Maker,其標準版本價格為850美元,而Adobe Frame Maker+SGML是以1995美元售出的;

  第四,種種不足,導致了幾個主要的瀏覽器廠商都明確拒絕支持SGML,這無疑造成了SGML在網上傳播的最大障礙。

  鑒於以上因素,SGML已明顯不適用於網路社會需要,“如何使SGML能成功地運用於網路?”,這一問題已自然而然地提上了議程。1996年8月,GCA(圖形通信協會)召集SGML開發者們舉行了一次會議,與會者明確表示SGML在某些方面已經落伍了,這些種種不足已經成為了它廣泛傳播的障礙,討論的結果認為有必要考慮怎樣修補SGML。

相關條目

參考文獻

  1. 陳永強,張聰主編.多媒體技術基礎與實驗教程.機械工業出版社,2008
  2. 陳新龍,王成良編著.多媒體技術與網頁設計.清華大學出版社,2006
  3. 趙乃真編著.電子商務技術與應用(第2版).中國鐵道出版社,2006
  4. 陳長念,陳勤意編著.精通XHTML程式設計高級教程.中國青年出版社,2001
  5. 5.0 5.1 史田華等編著.信息組織與存儲.東南大學出版社,2003
 
本條目對我有幫助4
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目

本条目由以下用户参与贡献

KAER,Gaoshan2013,方小莉,刘维燎.

評論(共0條)

提示:評論內容為網友針對條目"SGML"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

MBA智库
打开APP

以上内容根据网友推荐自动排序生成