一、為什么出現(xiàn)XML?
還是從軟件說起,其本質(zhì)是信息處理以及對信息處理的自動化。在軟件系統(tǒng)中,數(shù)據(jù)是信息的載體,是對客觀事物所蘊(yùn)含信息的抽象描述。軟件對數(shù)據(jù)的處理包括:Define(定義)、Transfer(傳遞)、Transform(轉(zhuǎn)換)、Store(存儲)、Retrival(檢索)和Show(展示)。
數(shù)據(jù)可以以二進(jìn)制的形式表示也可以以文本的形式表示。二進(jìn)制文件是一個0和1的序列,通常需要專用的程序進(jìn)行識別和解析,由于占用帶寬較少,適用于網(wǎng)絡(luò)傳輸,但對于用戶來說很難理解。而文本文件是一個由字符組成的文件,方便用戶理解,但文件通常較大。
在《雜談:語言的鴻溝》一文中,我們曾討論過人們總是在追求簡單方便。同樣地,在二進(jìn)制文件和文本文件之間人們通常選擇的是文本文件。但在文本文件中,人們還希望文本文件能夠自表達(dá)所蘊(yùn)含的意義,希望的是有格式的文本數(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ò)上進(jìn)行廣泛地應(yīng)用。所以SGML需要改變,需要簡化。這種情況下,XML(eXtensible Markup Language,可擴(kuò)展標(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ù)需求進(jìn)行編寫的,如下圖所示,、、都是自定義的標(biāo)簽,且都有一個對應(yīng)的關(guān)閉標(biāo)簽>:
一個基本的XML示例包含XML聲明、根元素和子元素。其中,XML聲明定義XML的版本和所用的編碼;根元素是每個XML文檔都必須包含的,并做為XML樹的根而解析,如下所示:
XML的解析就是其內(nèi)容進(jìn)行分解并重建,通常情況下將其抽象為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作為對人機(jī)友好的文件格式,可提高數(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文章
64瀏覽量
9599 -
Transform
+關(guān)注
關(guān)注
0文章
3瀏覽量
5694 -
define
+關(guān)注
關(guān)注
0文章
16瀏覽量
3870
發(fā)布評論請先 登錄
OpenHarmony語言基礎(chǔ)類庫【@ohos.xml (xml解析與生成)】
xml文件如何打開?怎樣打開XML文件?
PowerDesigner 與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ù)倉庫概念模型設(shè)計
MTK自帶的XML解析
XML數(shù)據(jù)相似度研究

基于節(jié)點(diǎn)集的XML查詢

XML基礎(chǔ)——XML必須知道的入門知識

評論