類型
標記語言通常可以分為三類:標識性的、過程性的以及描述性的。
標識性置標語言
“標識性置標語言” (外語:Presentational markup)是在編碼過程中,標記文檔的結構信息。例如,在文本檔案中, 檔案的標題可能需要用特定的格式表示(居中,放大等),這樣我們就需要標記檔案的標題。字處理以及桌面出版產品有時候能夠自動推斷出這類的結構信息,但是絕大多數的,像Wiki這樣的純文本編輯器還不能解決這個問題。
過程性標識
“過程性置標語言
”(外語:Procedural markup) 一般用於文字的表達,通常對於文本編輯者可見,並且被軟體依其出現順序依次解讀 。 為了格式化標題,在標題文本之前,緊接著插入一系列的格式標識符,指示計算機轉換到居中的顯示模式,同時加大及加粗字型。在標題文本之後,會緊接綴上格式中止標識; 對於更高級的系統宏命令或者堆疊模式會讓這一過程的實現方式更加豐富 。大多數情況下, 過程性置標能力包含有一個Turing-complete程式語言。 過程性置標語言的範例有:nroff,
troff,
TeX, Lout 以及
PostScript. 過程性置標語言被廣泛套用在專業出版領域, 專業的出版商會根據要求使用不同的置標語言已達到出版要求.
描述性標記
“描述性的標記”——有時被稱為邏輯標記或概念上的標記,鼓勵作者編寫的方式描述概念上,而非視覺上。
歷史
“置標”這個詞來源自傳統出版業的“標記”一個手稿,也就是在原稿的邊緣加注一些符號來指示列印上的要求。 長久以來,這個工作都是由專門的“標記人”(外語:markup men )或“複製標記”(外語全稱:copy markers)以及校對人來進行,對原稿標誌出使用什麼樣的字型,字型以及字號,然後再將原稿交給其他人進行手工的排版工作。
TeX是一個由美國電腦教授高德納(Donald E. Knuth)編寫的功能強大的排版軟體。它在學術界十分流行,特別是數學、物理學和計算機科學界。TeX被普遍認為是一個很好的排版工具,特別是在處理複雜的數學公式時。利用諸如是
LaTeX等終端軟體,TeX就能夠排版出精美的文本。
標準通用標記語言是一種專門的置標語言,被用作編寫《
牛津英語詞典》的電子版本。由於它的複雜,導致難以普及。
超文本標記語言(標準通用標記語言下的一個套用、外語縮寫:
HTML)是為網頁創建和其它可在網頁瀏覽器中看到的信息設計的一種標記語言。
可擴展標記語言(
標準通用標記語言下的一個
子集、外語縮寫:
XML),又稱可擴展置標語言,是一種標記語言。置標指電腦所能理解的信息符號,通過此種標記,電腦之間可以處理包含各種信息的文章等。
可延伸超檔案
標記語言(外語全稱:Extensible HyperText Markup Language、外語縮寫:
XHTML),是一種標記語言,表現方式與
超文本標記語言類似,不過語法上更加嚴格。
歷史發展
標記語言,用一系列約定好的標記來對電子文檔進行標記,以實現對電子文檔的語義、結構、及格式的定義。這些標記必須很容易的和內容區分,並且易於識別。標記語言的發展如下:
當今廣泛使用的置標語言是
超文本標記語言和
可擴展標記語言。置標語言廣泛套用於網頁和網路應用程式。標記最早用於出版業,是作者、編輯以及出版商之間用於描述出版作品的排版格式所使用的。
一、為了促進數據交換和操作,在20世紀60年代,通過IBM公司研究人員的傑出工作,得出了重要的結論:要提高系統的移植性,必須採用一種通用的文檔格式,這種文檔的格式必須遵守特定的規則。這也就是創建
通用標記語言的指導原則,從人們所產生的將檔案結構化為標準的格式的動機出發,IBM創建了通用標記語言。
二、在標記語言的概念達成共識的基礎上,IBM公司的研究人員Charles Goldfarb帶領的開發團隊完善著通用標記語言,將其稱為
標準通用標記語言,標準通用標記語言成為了IBM內部格式化和維護合法化檔案的手段。後來被拓展和修改,作為一種全面的信息標準以適應工業範圍的廣泛套用,1986年,標準通用標記語言被國際標準化組織(ISO)所採納。
他的功能非常強大,但是非常複雜,需要許多昂貴的軟體配合運行,因此在很長一段時間內沒有被推廣。
三、1989年,歐洲粒子物理實驗室(
CERT)的研究員Tim Berners-Lee和Anders Berglund共同創建了一種基於標記的語言HTML,他可看做
標準通用標記語言的簡單套用,開始時僅僅提供一種對靜態文本的信息顯示的方法,後來越來越多的標籤產生,兩大瀏覽器廠商微軟和網景格式,甚至創建了自己的產品的兼容標籤,使
HTML變得臃腫不堪,兼容性不好。
四、1996年人們開始致力於描述一個新的標記語言,它是一種在WEB中套用標準通用標記語言的靈活性和強大功能的方法,
全球資訊網聯盟--領導全球資訊網,制定其公共的協定,促進全球資訊網的發展並確保其互操作性的國際組織)專門成立了專家小組以從事這項工作。1998.2,w3c批准了XML1.0規範。
可擴展標記語言具備
標準通用標記語言的核心特性,但簡潔,他的內容甚至不到標準通用標記語言的十分之一。
其他套用
XAML(ExtensibleApplicationMarkupLanguage),基於XML語言,在微軟WPF(WindowsPresentationFoundation)中使用。
XAML提供了一種便於擴展和定位的語法來定義和程式邏輯分離的用戶界面,而這種實現方式和ASP.NET中的"代碼後置"模型非常類似。XAML是一種解析性的語言,儘管它也可以被編譯。它的優點是簡化編程式上的用戶創建過程,
套用時要添加代碼等。
用文本編輯器打開一個XAML檔案,會發現一個XAML檔案只有一個元素作為根,這個根是應用程式整個運行時的對象圖。在這個根下,可以採用3種方式來聲明對象以構建一個有意義的XAML檔案。接下來介紹一下XAML檔案的結構和對象:
1.直接使用對象元素語法
如果objectName是一個需要實例化的類型名稱,納悶可以用如下代碼創建對象:
<objectName>
</objectName>
一般一個對象還包括其他對象,那么可以這樣表示:
<objectName>
<otherobjectName>
</otherobjectName>
</objectName>
為了方便,也可以省略成如下形式:
<objectName>
<otherobjectName/>
</objectName>
2.使用屬性語法設定屬性
如果objectName是要實例化的對象,propertyName是要設定的屬性名稱,propertyValue是要設定的屬性的值。那么應該使用的代碼如下所示:
<objectName propertyName="propertyValue".../>
或者:
<objectName propertyName="propertyValue">
...<-element children-->
</objectName>
3.標記擴展
標記擴展是一個XAML屬性語法,採用花括弧({和})表示標記擴展。此方法可以講屬性值不僅僅看做一段字元或者文本,分析器會調用適用該特定標記擴展的代碼,從而在標記中構造對象。
這種方法被廣泛用於數據綁定上,比如:
<Grid x>:Name="LayoutRoot"Background="White">
<ComboBox ItemsSource="{Binding ElementName=LayoutRoot}"/>
</Grid>
以上代碼將ComboBox的Itemssource屬性的值綁定為Layoutroot。