xml是什麼,它可以做什麼?——寫給xml入門者
xml即可擴充套件標記語言(extensible markup language)。標記是指計算機所能理解的資訊符號,通過此種標記,計算機之間可以處理包含各種資訊的文章等。如何定義這些標記,既可以選擇國際通用的標記語言,比如html,也可以使用象xml這樣由相關人士自由決定的標記語言,這就是語言的可擴充套件性。xml是從sgml中簡化修改出來的。它主要用到的有xml、xsl和xpath等。
上面這段是對xml的乙個基本定義,乙個被廣泛接受的說明。簡單說,xml就是一種資料的描述語言,雖然它是語言,但是通常情況下,它並不具備常見語言的基本功能——被計算機識別並執行。只有依靠另一種語言,來解釋它,使它達到你想要的效果或被計算機所接受。
假如你是剛接觸xml的新手,那麼可能並無法從定義上是了解xml是什麼。也許,你可以換個角度來認識xml是什麼;從應用面來認識xml,從xml可以做些什麼來認識它,這應該能比那更空洞的定義對你更有幫助。
xml應用面主要分為兩種型別,文件型和資料型。下面介紹一下幾種常見的xml應用:
1、自定義xml+xslt=>html,最常見的文件型應用之一。xml存放整個文件的xml資料,然後xslt將xml轉換、解析,結合xslt中的html標籤,最終成為html,顯示在瀏覽器上。典型的例子就是csdn上的帖子。 。
3、作為資訊傳遞的載體。為什麼說是載體呢?因為這些應用雖然還是以xml為基本形態,但是都已經發展出具有特定意義的格式形態。最典型的就是web service,將資料報裝成xml來傳遞,但是這裡的xml已經有了特定的規格,即soap。不過這裡還不得不說ajax,ajax的應用中,相信也有一部分的應用是以自定義xml為資料,不過沒有成為工業標準,這裡不做詳述。
4、應用程式的配置資訊資料。最典型的就是j2ee配置web伺服器時用的web.xml。這個應用估計是很容易理解的了。我們只要將需要的資料存入xml,然後在我們的應用程式執行載入,根據不同的資料,做相應的操作。這裡其實和應用2,有點類似,所不同的在於,資料庫中的資料變化是個常態,而配置資訊往往是較為靜態,缺少變化的。
5、其他一些文件的xml格式。如word、excel等。
6、儲存資料間的對映關係。如hibernate。
這幾種常見應用中,我們還可以根據其應用廣泛程度,分為:自定義xml和特定意義xml。在1和2就是屬於自定義xml的範疇;3至6則屬於特定意義xml,或者說是xml的延伸。
這裡介紹的6種應用,基本涵蓋了xml的主要用途。總之,xml是一種抽象的語言,它不如傳統的程式語言那麼具體。要深入的認識它,應該先從它的應用入手,選擇一種你需要的用途,然後再學習如何使用。
參考:
有了資料庫為什麼還要用xml?xml與資料庫各自的特點、他們的應用與區別我想你從google上可以查到一大堆,那麼在這裡
我只說說自己的體會:
1:儘管xml和資料庫都可以定義資料模型並儲存資料,然而,xml更加通用、更加標準化,前些年我們公司的軟體要與其他公司軟體做介面傳輸資料時,採用了最簡單的介面資料庫方式,開發最容易,帶來了些問題:
一是這個介面資料庫是某種資料庫產品(db2\mssql\mysql),介面**在更換了資料庫產品(我們公司的軟體要經常面對不同廠商的應用系統)後需要修改或重寫;
二是如果介面需求變動的話,可能要改動資料庫結構,導致還要改介面**,這是致命的。
三是介面的穩定取決於這個資料庫管理系統本身要穩定,你得考慮維護管理(自動化日誌清理等)問題;
四是為了穿過防火牆(電信、網通公司可能會關閉某些埠)及安全性考慮,你不能直接通過tcp/ip去訪問遠端介面機器上的資料庫,需要將資料再編碼發布(比如之前的remoting或現在的wcf)
那麼現在我們改用xml來做程式介面,我們給其他公司的是一些xml schema、web serivce的uri、業務流程說明,我們不再需要乙個介面電腦、介面資料庫等,現在上述的四個問題不再困擾我們。
2:我們之前的業務資料庫大概有二百多張表,一年左右會因需求變動對錶結構做些調整,當然也影響到了應用程式**的調整,現在我們的業務資料庫大概有不到五十張表,因為一些容易發生需求變動的表和一些半結構化、非結構化的資料被儲存為資料庫表內的xml欄位,需求變動僅影響我們去修改一下schema,不用去動資料庫結構,這對已經部署到使用者那邊的系統來說是非常重要的改進。不僅如此,表數量的減少對開發人員、業務人員、資料庫管理人員非常有益。
3:說了兩點xml的好處,那麼我再說說它作為資料儲存方面目前無法替代 資料庫的地方:
xml缺少資料庫具備的特性:高效的儲存(即使是資料庫內xml欄位還是沒有傳統欄位的速度快)、索引和資料修改機制(db2等資料庫產品對xml內的元素和屬性可以加索引,內建在資料庫中的xml欄位享受了資料庫帶來的一些好處);嚴格的資料安全訪問控制;完整的事務和資料一致性控制;多使用者訪問機制;觸發器、完善的併發控制等因此,使用者量大、資料整合度高以及效能要求高的資料環境中還是需要資料庫來完成任務,ibm的db2工程師也在討論時建議我們統計類資料還是用傳統欄位為好。
總之,現在xml對資料庫是乙個很好的補充,大的資料庫廠商都在資料庫產品裡內建了對xml的支援,這樣將xml與資料庫配合使用,將讓他們相互配合利用各自發揮出威力,也提高也我們資訊產品的靈活性。
XML是什麼,它可以做什麼? 寫給XML入門者
xml即可擴充套件標記語言 extensible markup language 標記是指計算機所能理解的資訊符號,通過此種標記,計算機之間可以處理包含各種資訊的文章等。如何定義這些標記,既可以選擇國際通用的標記語言,比如html,也可以使用象xml這樣由相關人士自由決定的標記語言,這就是語言的可擴...
XML是什麼,它可以做什麼?
xml即可擴充套件標記語言 extensible markup language 標記是指計算機所能理解的資訊符號,通過此種標記,計算機之間可以處理包含各種資訊的文章等。如何定義這些標記,既可以選擇國際通用的標記語言,比如html,也可以使用象xml這樣由相關人士自由決定的標記語言,這就是語言的可擴...
SpringBoot是什麼,可以做什麼?
springboot簡析 1 springboot是什麼?在spring框架這個大家族中,產生了很多衍生框架,比如 spring springmvc框架等,spring的核心內容在於控制反轉 ioc 和依賴注入 di 所謂控制反轉並非是一種技術,而是一種思想,在操作方面是指在spring配置檔案中建...