介紹
“通用標言 ”是1986年 國際標準化組織出版發布的一個信息管理方面的國際標準(ISO 8879:1986 信息處理)。ISO/ANSI/ECMA的一個共同標準,一種用來注釋文本文檔,提供文檔片斷的類型信息的規範。該標準定義獨立於平台和套用的文本文檔的格式、索引和連結信息,為用戶提供一種類似於語法的機制,用來定義文檔的結構和指示文檔結構的標籤。其中 “標記 ”的含義是指插入到文檔中的標記。
標記分為兩種:一種稱為 “ 程式性的標記 ”,用來描述文檔顯示的樣式;另一種稱為 “ 描述性標記 ”,用來描述文檔中的文字的用途。制定 “通用標言 ”的 基本思想是 把文檔的 內容與樣式分開。
“通用標言 ”的先驅和基礎是 “IBM通用標記語言 ”, “通用標言 ”是當今創建結構化文檔描述語言規則的戰略集合。很多網路頁面是用超級文本標記表示出的,就是使用 “IBM通用標記語言 ”概念創建文檔的例子。可擴展標記語言也根源於 “IBM通用標記語言 ”。
除了 “通用標言 ”的標準套之外,最終還將包括: “通用標言 ”檔案交換格式、文檔樣式語義和規範語言、標準頁面描述語言、文字描述和處理語言的一個參考模型、字型和字元信息交換標準、以及一套標準字型。
其它俗稱
標準通用置標語言、標準通用標註語言、標準通用標誌語言、標準通用標識(或標示)語言、標準通用化標記語言。
優劣點
優點
•高穩定性
“通用標言 ”的ISO 8879是國際標準規範,所以可信度相當高,其規範結構也相當的嚴謹,此外 “通用標言 ”已使用二十幾年了,且自1996以來 “通用標言 ”的規範幾乎是未曾變更過,所以 “通用標言 ”是相當成熟的一種通用性標記語言。
•高可攜性
“通用標言 ”的檔案可以跨平台使用,如可以在不同的計算機硬體或作業系統上被使用,甚至可以被不同的套用軟體來使用,因為 “通用標言 ”是一種高穩定性的國際標準,加上已使用二十幾年,所以支持其格式的套用軟體與相關數據轉換技術就多,所以 “通用標言 ”的檔案可以在各套用領域中被廣泛採用,當然其可攜性相對就可以提高。
•高完整性
制定 “通用標言 ”時就考慮須滿足廣泛的使用者,所以其規範制定得相當完整,可以滿足不同套用領域使用者的需求,且與 “通用標言 ”搭配使用的家族如HyTime與文檔樣式語義和規範語言也都是國際標準,如HyTime符合ISO/IEC 10744的標準,主要功能是描述動態檔案的一種語言,而文檔樣式語義和規範語言符合ISO/IEC 10179的標準,其制定目標有兩個,一為制定 “通用標言 ”檔案顯示時的樣本形式,另一個是有轉換語言的功能。
•文檔可以使用更合理,從而導致一種改進的生命周期;
•出版成本減少;
•信息可以很容易地重用,產生一個值添加到文檔(例如:印刷、超文本資料庫)。
二、劣點
以上所述提到的 “通用標言 ”有高穩定性與完整性的優點,這可使得 “通用標言 ”可以適用在各類套用領域,但這相對的也是 “通用標言 ”致命的缺點。
•高複雜性
由於 “通用標言 ”的高度完整性與穩定性,相對的其複雜性也高,這一點可以說是 “通用標言 ”的主要缺陷,如果使用 “通用標言 ”語法規範來制定DTD中的元素、屬性與內容實體,可能需要花上數年的時間才能完全了解其中的標準,可見整個 “通用標言 ”系統是過於完善而變成複雜。
不止 “通用標言 ”本身複雜,連同要開發 “通用標言 ”相關軟體也變得複雜,就開發 “通用標言 ”剖析器而言,用來檢查 “通用標言 ”檔案中的控制標記與格式,使用C++(一套利用更基礎的程式語言開發的 “面向對象的高級程式語言 ”)來撰寫都得花上幾萬行以上。
•費用昂貴
從 “通用標言 ”的高複雜性,其相對衍生出來的就是高費用,先前也提過 “通用標言 ”通常被大企業套用在大量的數據上,在 “通用標言 ”被套用之前必需先制定其檔案格式定義DTD,以供使用者能遵循這個DTD中定義的檔案結構,但其套用的檔案數據通常是複雜的,所以制定該DTD也需花長時間才能完成,所以開發能適用的DTD的費用足相當昂貴的。
其次,由於 “通用標言 ”的獨立性,使得通用標言在許多場合都有用武之地。同可擴展標記語言相比,定義的功能很強大,缺點是通用標言不適用於全球資訊網數據描述,而且 “通用標言 ”的軟體價格非常昂貴。
版本情況
“通用標言 ” 最標準的三個版本如下:
原始“通用標言”。
擴展的命名規則“通用標言”。(外語縮寫:ENR、添加擴展的命名規則以允許任意的語言和腳本標記。比如子集可擴展標記語言使用漢語作為標籤一樣。)
全球資訊網“通用標言”。(俗稱擴展命名規則和全球資訊網的結合、外語縮寫:WebSGML、為了更好地支持XML和WWW的要求。)
常用的多用途網際網路郵件擴展類型:
application/sgml、text/sgml、text/x-sgml、application/x-sgml;
“通用標言”己解析的外部實體信息檔案(application/x-sgml-external-parsed-entity) 、“通用標言”的實體信息檔案(application/x-sgml-entity)、“通用標言”序言部分信息檔案(application/x-sgml-preamble)。
觀點
有觀點建議 “通用標言 ”的注釋應如何格式化,而不是作為一種語言。
於是提出如下設計:
統一引述
百度百科 詞條=標準通用標記語言;
標記結構
百度百科/ 詞條=標準通用標記語言;
百度百科(詞條=標準通用標記語言)
語言特點
通用標言是一種描述語言的語言,通用標言定義了以電子形式表示文本的方法。它的特
點有:
正式的,能允許驗證文檔的正確性;
結構化的,能夠處理複雜的文檔;
可擴充的,能夠支持大型信息存儲的管理。
“通用標言 ”規定了在文檔中嵌入描述標記的標準格式,指定了描述文檔結構的標準方法,目前在全球資訊網上使用的超級文本標記語言格式便是使用固定標籤集的一種 “通用標言 ”文檔。用於 “通用標言 ”可以支持無數的文檔結構類型,並且可以創建與特定的軟硬體無關的文檔,因此很容易與使用不同計算機系統的用戶交換文檔。
樣式
“通用標言 ”本身正在定義樣式的設定標準,即文檔樣式語義學和規範語言。
使用 “通用標言 ”對多媒體的創作將帶來許多好處。首先,由於其規範性,通用標言可以使創作人員更集中於內容的創作,可提高作品的重複使用性能、可移植性能以及共享性能。 例如,可使創作人員更集中於內容的創作,可提高作品的重複使用性能、可移植性能以及共享性能等; “通用標言 ”的使用範圍很廣,除了傳統的電子出版物之外, “通用標言 ”還可用在其他許多場合。例如,前面介紹的超媒體和超文本文檔、全球資訊網頁面的製作、資料庫、電子郵件、專家系統、雷射唱片-唯讀存儲器出版物、互動式電子技術手冊等方面都大有用武之地。
檔案描述
有效性
以下為與 “有效性檢查 ”的定義
“合乎規範”的“通用標言”文檔:一個合乎規範的“通用標言”的文檔必須是一個類型有效的“通用標言”的文檔,一個標記有效的“通用標言”的文檔,或兩者。
“類型有效”:對於每一個文檔實例,都有一個相關的“文檔類型聲明”。
“標籤有效”:所有的文檔實例都是完全被標記的。未必只能有一個“文檔類型聲明”與實例相關聯。如果有一個“文檔類型聲明”,那實例就可以解析有或沒有對它的引用。
“完全標記文檔”實例:文檔實例在起始標籤處與一個通用的標識符,再加一個結束標記(尾標記)。
實體限制的相關定義
整體存儲文檔實例
自由引用檔案
外部自由引用檔案
實體自由宣告文檔(“標準通用標記語言實體”聲明)
組成
一個典型的文檔可被分成 三個層次:文檔類型結構、實例本身和樣式。
“通用標言 ”主要是處理結構和內容之間的關係,通用標言的文檔是由許多實體( “文檔類型定義 ”加 “通用標言聲明 ”它們都為離散的文本塊)來組成。
一份 “通用標言 ”文檔可能有三部分組成:
一、 “通用標言 ”聲明:定義字元集分隔設定集和關鍵字(以下在本文裡頭簡稱 “聲明 ”)。
二、文檔類型序言:定義一般實體和元素類型;包含一個“!文檔類型(外語全稱加縮寫:!DOCTYPE)聲明”與各種“標記聲明”,它們一起組成了一個文檔類型定義(外語首字母縮略詞:DTD)。
•為組織文檔的文檔元素(例如章和章標題、節和主題等)提供了一個框架。
•為文檔元素之間的相互關係制定了規則。例如:“章的標題必須是在章開始之後的第一個文檔元素”,“每個列表至少要有兩個項目”等。文檔類型定義定義的這些規則可以確保文檔的一致性。
三、某實例本身:包含一個頂級元素和實例的內容。
•實例本身包括信息名稱(首標題)、段落、項目列表和表格中的具體內容,具體的圖形和聲音等。“確定內容”在文檔類型定義結構中的位置的方法稱為“加標籤”,而創建“通用標言”文檔實際上就是圍繞內容插入相應的標籤。這些標籤就是給結構中的每一部分的開始和結束做標記。
標記類型
描述性
描述性標記解放了檔案用於多種用途。並分為結構化描述性標記與名義上的描述性標記。描述性結構化的標記標識文檔組件和它們的邏輯關係。
程式性
“程式性的標記”的特點通過進一步的限制,到目前為止所有程式標記一直是專有的。例如,WordPerfect、WPS上創建的文檔無法在Microsoft Word、OpenOffice完美處理。
聲明
規則:
•“概括語法”
•指定“通用標言”的標記應如何構建。
•“具體語法”
•定義這些概括如何被編碼。
“聲明”裡頭的相關功能的開啟與關閉:
用是(YES)或不(NO)(外語全稱:NOt )來定義。
“聲明"是由以下 八部分組成:
!SGML(本關鍵字開始啟用“聲明”)。
被引用的標準版本。
文檔字元集:來說明文檔的字元集;(漢語名:字元集、外語全稱加縮寫代碼:CHARSET)。
容量集:功能為限制的檔案的最大長度;(漢語名:容量、外語代碼:CAPACITY)。
“具體語法”的作用域:語法作用域適用於文檔實例和文檔序言(文檔序言開頭是
具體語法;(漢語縮寫:語法、外語代碼:SYNTAX)。
“具體語法”其中又包含:
•避而遠之的字元:非法字元列表(外語全稱加縮寫代碼:SHUNCHAR)。
•“基本字元集”和“描述字元集”:說明語法中使用的字元集( 外語縮寫代碼:BASESET、DESCSET)。
•功能:代碼需要對特殊字元的定義(漢語名:功能、外語代碼:FUNCTION)。
•命名規則:定義元素、屬性和實體名稱時才採用(漢語名:命名、外語代碼:NAMING)。
•分隔設定:“短引用”普通標記的分隔設定列表(漢語名:分隔設定、外語縮寫代碼:DELIM)。
•保留名:在“文檔類型定義”裡頭使用的一個保留關鍵字列表(漢語名:名、外語代碼:NAMES)。
•設定數量:設定元素或者參數的數量(漢語名:數量、外語代碼:QUANTITY)。
七 、特點使用:這是一項可選的特性用於修改標記,典型的特點比如 “省略標籤 ”、 “短引用 ”等,接下文中會提到;(漢語名: 特點、外語代碼:FEATURES)。
八 、套用 程式特定 信息:特定於某應用程式的信息(用雙引號來描述), “通用標言 ”解析器要把雙引號裡頭的數據傳遞給某應用程式;(漢語縮寫: 程式信息、外語全稱加縮寫代碼:APPINFO)。
範例
範例一:
範例二:
補充檔案
“補充檔案 ”是指 “通用標言 ”的 “頭信息 ”,優先使用外部的 “通用標言 ”標記放在一個輔助輸出檔案;就像AMD的計算機中央處理器裡頭的任務優先權暫存器八號控制暫存器(外語首字母縮略詞:CR8)來傳遞參數時優先使用外部中斷。
終端變數
終端變數表示常見的字元類至所有實例文檔。
語法:(和現代眾多作業系統都在使用的核心模式、從硬體上支持了虛擬記憶體儲管理和多任務的計算機中央處理器模式、保護 “其他 ”程式段的模式保護模式中的記憶體儲器空間分段邊界單位顆粒度標記類似,指明 數量,確定數量內容及多與少。)
變數名[ 生產數量]{ 定位器}{ 定位器}
範例:
百度百科詞條裡頭的實體{6.2, 296:5}
終端常量
和上述 “終端變數 ”使用同樣的制式,其作用基本等同。
語法
元素語法
普通格式
實際例子:
標記最小化
以下必須啟用“聲明”裡頭的相關功能。如果在有些版本的 “通用標言 ”裡頭沒有相關的功能命令(比如沒有“短引用”),那么就不能實現文中所提到的短引用。
短引用
短引用(引用短實體分隔設定)標籤可以被替換為定界符字元串。
“短引用”外語全稱加縮寫代碼:(SHORTREF)。
例如在Creole裡頭它就是借用了 “短引用 ”的概念,它裡頭的標題開始標籤和標題結束標籤都是(==)、加粗標籤都是(**)。
二、短標記
實際例子:
一個特點:“自以為是的空標籤”。 例如空結束標記</>在<元素><附屬元素>逢二進一</></元素>裡頭。“繼承”它的值是從最近的完整開始標記起。在本例中,是<附屬元素>(也可以說它會關閉離它最近打開的項目)。這樣的表達是等價於<元素><附屬元素>逢二進一</附屬元素></元素>。外語代碼:(SHORTTAG)。
三、沒得結束標籤
實際例子:
它的結構相當於
外語縮寫:(NET)。
四、話的結尾不打尾標記
如果要利用此功能要將 “聲明 ”裡頭的 “ 省略標籤 ”處於 “ 是 ”的打開狀態。外語代碼(全部):OMITTAG YES;當然再結合文檔類型定義裡頭的“ !元素”表示開始或結束標籤是不是允許被忽略(- -、- O、O O)。“連字元”指示標記是必需的存在的、外國語O大寫或小寫均可。直譯為中文(- 略、- -、略 略)。而且目標元素在文檔類型定義里沒帶(#必要)外國語#REQUIRED屬性(該屬性表示在文檔實例中必須為目標元素的屬性提供一個值)所以綜合上述被定義的標籤可以明確上下文。
將檔案類型定義裡頭寫如下:
那么則表示為如下所述:
注意,若像這樣:
加個與 “ 省略標籤 ”不相關的 “ 空 ”(外語代碼:EMPTY)時(其聲明它的內容是 “ 空”的),而且結束標記被忽略,那么在 “通用標言 ”裡頭此句話就是一條無效標記。在這方面語法不同於可擴展標記語言裡頭的“ 空”元素。
注釋語法
以下一、二、注釋的效果同高級程式語言C語言注釋一樣,利用開始標記/*和結束標記*/來進行多行注釋。
使用“注釋”聲明。放在標記裡頭:
比如:
三、空注釋,建設<!>是被忽略的,可用於各種不同的目的 (比如機器指令中無或隱含運算元的零地址指令用於其它的目的)。
其它語法特點
“短標記”、“空結束標記啟用(外語全稱加縮寫:NETENABL)”、“即時空結束標記(外語全稱加縮寫:IMMEDNET)”,特性允許縮短標籤但需圍繞一個空的文本值,但禁止縮短完整的標籤:
<表示法></表示法>可以寫為:<表示法//
其中,第一個斜槓代表“空結束標記啟用的關閉開始標記”;第二個斜槓代表空結束標記。
注意:可擴展標記語言定義“空結束標記啟用的 關閉開始標記”需帶一個 /(左斜槓),“空結束標記”需帶一個 >(尖括弧)。因此同等的結構在可擴展標記語言裡頭則顯示為<表示法/>。
文本在同一行之上:
允許一個標記項目不需尾標記在行結束(特別適用於標題等)。當然需要最小化標籤無論是“短引用”或“數據標記”。
然後第三個特徵是,在同一行上的文本: 要么使用“短引用”(外國語縮寫代碼SHORTREF)或“數據標籤”(外語代碼DATATAG)來達到最小化的目的:
如果文檔類型定義包含以下:
在具體的的語法裡頭,&#引;&#短;是一個“短參考”分隔設定。
等同於:
特徵四:多種文檔的結構類型
•標記文檔時使用多個“並發”(縮寫外語代碼CONCUR、外語全稱:CONCURrent)的文檔類型定義。
•“嵌入檔案”在編碼時使用一個備選文檔結構(漢語名:子文檔、縮寫外語代碼SUBDOC、外語全稱:SUBDOCuments)。
•在不同的文檔類型定義裡頭創建自動可處理的連結之間的結構(漢語名:連結、外語全稱代碼:LINK;其下還包含:“簡單連結”、“顯式連結”、“隱式連結”)。
定義
本國際標準( “通用標言 ”)套用以下定義:
基文檔元素
基礎檔案類型
文檔類型定義(它的聲明標籤為:!doctype)
標準通用標記語言實體
標準體系
第一層次是元語言標準——“通用標言”標準;
第二層次是基礎標準,如:文檔樣式語義與規範語言標準(外語首字母縮寫詞:DSSSL)等,是該體系的基本標準;
第三層次是具體套用標準,如:超文本標記語言等標準。也就是說,在可擴展標記語言標準出現之前,“通用標言”標準已經形成了完善的體系,並有許多建立於其上的套用系統與套用標準。如下圖所示。
相關
派生
可擴展標記語言(很多檔案使用它來描述,它是一種使用“通用標言”原理的數據描述語言、與“通用標言”相比,它的規範不到“通用標言”規範的十分之一,相當於“通用標言”的濃縮方式。)
超文本標記語言(有些網路瀏覽器所使用的超文本標記語言是“通用標言”的一個例子、是一個專門的文檔類型定義類型)
部分相關
和“通用標言”部分相關其他的不能解析或驗證,例如用於排版和文檔寫作的Z格式標記語言 ;
標籤為原始標記類型,例如Scala程式設計語言。
實際套用
以下簡要說明 “通用標言 ”的結構化信息處理與數據交換在一般行業的套用:
超級媒體時基結構化語言(外語全稱加縮寫:HyTime);
在出版界美國出版商協會(外語首字母縮略詞:AAP)主持了“Electronic Manuscript Project”,該計畫按“通用標言”的格式處理電子文獻,設計了三種不同的文檔類型定義,即文章、圖書和連續出版物;
在政府領域裡頭,“計算機輔助採購和後勤支持”是美國國防部實施的計畫、美國國稅局的IRS檔案;
在學術界和研究團體,“文本編碼方案”以“通用標言”為基礎來發展出一系列的文獻類型以及編碼方法;
有人為美國國會圖書館機讀目錄通信格式(外語首字母縮略詞:USMARC)設計了專用的文檔類型定義,使用“通用標言”的形式描述“機讀目錄”記錄;
標準音樂描述語言;
醫療保健計畫(外語首字母縮略詞:HL7);
互動式文檔的圖元檔案;
超級-G文本格式;
ISO 12083;
IBM信息開發文檔類型;
EWS-MAJOUR;
FOSIs and DTDs related to MIL-STD-2167A;
美國證券交易委員會的EDGAR資料庫報表系統;
格式化輸出規格的實例;
主題導航地圖;
政府信息搜尋技術(加拿大)(外語:Government Information Finder Technology);
英國電子政務互操作框架;
“美國航空運輸協會”(外語:Air Transport Association of America)的文檔類型定義;
牛津英語詞典(第二版牛津英語詞典的電子版基於“通用標言”)。