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