一、為什么出現(xiàn)XML?
還是從軟件說起,其本質(zhì)是信息處理以及對信息處理的自動化。在軟件系統(tǒng)中,數(shù)據(jù)是信息的載體,是對客觀事物所蘊含信息的抽象描述。軟件對數(shù)據(jù)的處理包括:Define(定義)、Transfer(傳遞)、Transform(轉(zhuǎn)換)、Store(存儲)、Retrival(檢索)和Show(展示)。
數(shù)據(jù)可以以二進制的形式表示也可以以文本的形式表示。二進制文件是一個0和1的序列,通常需要專用的程序進行識別和解析,由于占用帶寬較少,適用于網(wǎng)絡(luò)傳輸,但對于用戶來說很難理解。而文本文件是一個由字符組成的文件,方便用戶理解,但文件通常較大。
在《雜談:語言的鴻溝》一文中,我們曾討論過人們總是在追求簡單方便。同樣地,在二進制文件和文本文件之間人們通常選擇的是文本文件。但在文本文件中,人們還希望文本文件能夠自表達所蘊含的意義,希望的是有格式的文本數(shù)據(jù),于是就需要標(biāo)記元數(shù)據(jù)以及所標(biāo)識的原始數(shù)據(jù)。在這種情況下,SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)以一種規(guī)范性的標(biāo)準(zhǔn)出現(xiàn)了,其官網(wǎng)簡單示例如下所示:
SGML允許人們使用標(biāo)準(zhǔn)的語法語義創(chuàng)建他們自已的標(biāo)記語言,例如,HTML使用<>>來標(biāo)識元數(shù)據(jù),并且在標(biāo)記內(nèi)可以增加定義。SGML具有的這種靈活性,同時也帶來了復(fù)雜性,事實上,這使得SGML的解析及處理變得十分困難,很難在網(wǎng)絡(luò)上進行廣泛地應(yīng)用。所以SGML需要改變,需要簡化。這種情況下,XML(eXtensible Markup Language,可擴展標(biāo)記語言)作為SGML的一個簡化子集出現(xiàn)了。
二、什么是XML?
- 基礎(chǔ)
1998年2月,W3C發(fā)布了XML的推薦標(biāo)準(zhǔn),XML繼承了SGML的靈活性,沒有預(yù)定義的標(biāo)簽,標(biāo)簽是由XML的編寫人員根據(jù)業(yè)務(wù)需求進行編寫的,如下圖所示,、、都是自定義的標(biāo)簽,且都有一個對應(yīng)的關(guān)閉標(biāo)簽>:
一個基本的XML示例包含XML聲明、根元素和子元素。其中,XML聲明定義XML的版本和所用的編碼;根元素是每個XML文檔都必須包含的,并做為XML樹的根而解析,如下所示:
XML的解析就是其內(nèi)容進行分解并重建,通常情況下將其抽象為DOM模型--使用樹型結(jié)構(gòu)表示,該模型提供了內(nèi)存中訪問和修改XML信息的方法。需要說明的是,DOM消耗的內(nèi)存較大。
XML允許自定義標(biāo)簽,同時如果XML文檔存在錯誤,那么程序就不應(yīng)當(dāng)繼續(xù)處理這個文檔。那么我們?nèi)绾蝸眚炞CXML文檔是正確的呢?有兩種方式:
- DTD(document type definitions,文件類型定義)
- XML Schema
2. 應(yīng)用場景
在XML出現(xiàn)的前部分時間,XML使用得較少。隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)服務(wù)大量地接收和發(fā)送數(shù)據(jù),但數(shù)據(jù)格式由于技術(shù)體系的不同而呈現(xiàn)出較大的差異,數(shù)據(jù)格式多且大部分都是專有的,開發(fā)人員需要做很多數(shù)據(jù)轉(zhuǎn)換的工作。這就需要實現(xiàn)數(shù)據(jù)格式的通用性。XML作為對人機友好的文件格式,可提高數(shù)據(jù)的通用性,使不同組件間的數(shù)據(jù)交互更容易,并使得開發(fā)人員聚焦于業(yè)務(wù)邏輯的開發(fā)與創(chuàng)新。XML在數(shù)據(jù)交換領(lǐng)域并得到了廣泛的應(yīng)用。除此之外,XML還應(yīng)用于:
- 配置文件:許多應(yīng)用或框架的配置文件都采用XML格式,如Struct、Spring等框架;
- 數(shù)據(jù)庫系統(tǒng):大多數(shù)數(shù)據(jù)庫系統(tǒng)都能保存XML格式的文件。
-
軟件系統(tǒng)
+關(guān)注
關(guān)注
0文章
62瀏覽量
9494 -
Transform
+關(guān)注
關(guān)注
0文章
3瀏覽量
5643 -
define
+關(guān)注
關(guān)注
0文章
15瀏覽量
3736
發(fā)布評論請先 登錄
相關(guān)推薦
評論