一、為什么出現(xiàn)XML?
還是從軟件說(shuō)起,其本質(zhì)是信息處理以及對(duì)信息處理的自動(dòng)化。在軟件系統(tǒng)中,數(shù)據(jù)是信息的載體,是對(duì)客觀事物所蘊(yùn)含信息的抽象描述。軟件對(duì)數(shù)據(jù)的處理包括:Define(定義)、Transfer(傳遞)、Transform(轉(zhuǎn)換)、Store(存儲(chǔ))、Retrival(檢索)和Show(展示)。
數(shù)據(jù)可以以二進(jìn)制的形式表示也可以以文本的形式表示。二進(jìn)制文件是一個(gè)0和1的序列,通常需要專(zhuān)用的程序進(jìn)行識(shí)別和解析,由于占用帶寬較少,適用于網(wǎng)絡(luò)傳輸,但對(duì)于用戶(hù)來(lái)說(shuō)很難理解。而文本文件是一個(gè)由字符組成的文件,方便用戶(hù)理解,但文件通常較大。
在《雜談:語(yǔ)言的鴻溝》一文中,我們?cè)懻撨^(guò)人們總是在追求簡(jiǎn)單方便。同樣地,在二進(jìn)制文件和文本文件之間人們通常選擇的是文本文件。但在文本文件中,人們還希望文本文件能夠自表達(dá)所蘊(yùn)含的意義,希望的是有格式的文本數(shù)據(jù),于是就需要標(biāo)記元數(shù)據(jù)以及所標(biāo)識(shí)的原始數(shù)據(jù)。在這種情況下,SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)以一種規(guī)范性的標(biāo)準(zhǔn)出現(xiàn)了,其官網(wǎng)簡(jiǎn)單示例如下所示:
SGML允許人們使用標(biāo)準(zhǔn)的語(yǔ)法語(yǔ)義創(chuàng)建他們自已的標(biāo)記語(yǔ)言,例如,HTML使用<>>來(lái)標(biāo)識(shí)元數(shù)據(jù),并且在標(biāo)記內(nèi)可以增加定義。SGML具有的這種靈活性,同時(shí)也帶來(lái)了復(fù)雜性,事實(shí)上,這使得SGML的解析及處理變得十分困難,很難在網(wǎng)絡(luò)上進(jìn)行廣泛地應(yīng)用。所以SGML需要改變,需要簡(jiǎn)化。這種情況下,XML(eXtensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)作為SGML的一個(gè)簡(jiǎn)化子集出現(xiàn)了。
二、什么是XML?
- 基礎(chǔ)
1998年2月,W3C發(fā)布了XML的推薦標(biāo)準(zhǔn),XML繼承了SGML的靈活性,沒(méi)有預(yù)定義的標(biāo)簽,標(biāo)簽是由XML的編寫(xiě)人員根據(jù)業(yè)務(wù)需求進(jìn)行編寫(xiě)的,如下圖所示,、、都是自定義的標(biāo)簽,且都有一個(gè)對(duì)應(yīng)的關(guān)閉標(biāo)簽>:
一個(gè)基本的XML示例包含XML聲明、根元素和子元素。其中,XML聲明定義XML的版本和所用的編碼;根元素是每個(gè)XML文檔都必須包含的,并做為XML樹(shù)的根而解析,如下所示:
XML的解析就是其內(nèi)容進(jìn)行分解并重建,通常情況下將其抽象為DOM模型--使用樹(shù)型結(jié)構(gòu)表示,該模型提供了內(nèi)存中訪(fǎng)問(wèn)和修改XML信息的方法。需要說(shuō)明的是,DOM消耗的內(nèi)存較大。
XML允許自定義標(biāo)簽,同時(shí)如果XML文檔存在錯(cuò)誤,那么程序就不應(yīng)當(dāng)繼續(xù)處理這個(gè)文檔。那么我們?nèi)绾蝸?lái)驗(yàn)證XML文檔是正確的呢?有兩種方式:
- DTD(document type definitions,文件類(lèi)型定義)
- XML Schema
2. 應(yīng)用場(chǎng)景
在XML出現(xiàn)的前部分時(shí)間,XML使用得較少。隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)服務(wù)大量地接收和發(fā)送數(shù)據(jù),但數(shù)據(jù)格式由于技術(shù)體系的不同而呈現(xiàn)出較大的差異,數(shù)據(jù)格式多且大部分都是專(zhuān)有的,開(kāi)發(fā)人員需要做很多數(shù)據(jù)轉(zhuǎn)換的工作。這就需要實(shí)現(xiàn)數(shù)據(jù)格式的通用性。XML作為對(duì)人機(jī)友好的文件格式,可提高數(shù)據(jù)的通用性,使不同組件間的數(shù)據(jù)交互更容易,并使得開(kāi)發(fā)人員聚焦于業(yè)務(wù)邏輯的開(kāi)發(fā)與創(chuàng)新。XML在數(shù)據(jù)交換領(lǐng)域并得到了廣泛的應(yīng)用。除此之外,XML還應(yīng)用于:
- 配置文件:許多應(yīng)用或框架的配置文件都采用XML格式,如Struct、Spring等框架;
- 數(shù)據(jù)庫(kù)系統(tǒng):大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都能保存XML格式的文件。
-
軟件系統(tǒng)
+關(guān)注
關(guān)注
0文章
63瀏覽量
9524 -
Transform
+關(guān)注
關(guān)注
0文章
3瀏覽量
5658 -
define
+關(guān)注
關(guān)注
0文章
16瀏覽量
3770
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
OpenHarmony語(yǔ)言基礎(chǔ)類(lèi)庫(kù)【@ohos.xml (xml解析與生成)】
xml文件如何打開(kāi)?怎樣打開(kāi)XML文件?
PowerDesigner 與XML建模
![PowerDesigner 與<b class='flag-5'>XML</b>建模](https://file.elecfans.com/web2/M00/48/78/pYYBAGKhtAiALLBLAACXgUGGmus049.jpg)
xml教程下載
xml教程pdf (XML終極教程下載)
XML Reference Material
An Eagle’s Eye View of XML
An Introduction to XML Applica
Microsoft Core XML Services (M
基于XML的數(shù)據(jù)倉(cāng)庫(kù)概念模型設(shè)計(jì)
MTK自帶的XML解析
XML數(shù)據(jù)相似度研究
![<b class='flag-5'>XML</b>數(shù)據(jù)相似度研究](https://file.elecfans.com/web2/M00/49/01/pYYBAGKhtDKAGlMkAAAM_JlmpWo215.jpg)
基于節(jié)點(diǎn)集的XML查詢(xún)
![基于節(jié)點(diǎn)集的<b class='flag-5'>XML</b>查詢(xún)](https://file.elecfans.com/web2/M00/49/80/poYBAGKhwL-AG8cQAAAUetHdTr4157.jpg)
XML基礎(chǔ)——XML必須知道的入門(mén)知識(shí)
![<b class='flag-5'>XML</b>基礎(chǔ)——<b class='flag-5'>XML</b>必須知道的入門(mén)知識(shí)](https://file.elecfans.com/web1/M00/BF/91/pIYBAF7wWK2AXEiSAAA0yVt8LHk324.png)
評(píng)論