摘 要:隨著XML技術的成熟,XML也越來赿被人們重視,有著廣闊的應用領域,例如:電子商務、無限應用協(xié)議等。本文介紹了XML的語法結構、XML的特點,重點分析了提供良好的機制來對XML文檔中的節(jié)點進行訪問和操作的DOM接口,在對比分析了XML和HTML以及XML和數(shù)據庫之間的關系基礎上說明XML的應用場合。
關鍵詞:XML;DOM接口;ASP.NET;
中圖分類號:TP31 文獻標識碼:A 文章編號:1674-3520(2014)-09-00-02
一、XML的基本概念
(一)XML語言介紹
XML是WEB上新興的文本語言,在數(shù)據表現(xiàn)和數(shù)據交換上越來越受歡迎。XML 發(fā)展自復雜的 SGML(標準通用標記語言)。XML即可擴展標記語言,被譽為構造未來 Web 的新工具。 HTML著重描述 Web 頁面的顯示格式,而XML著重描述的是文檔的內容。XML的特長在于描述層次結構的數(shù)據,或賦予原本雜亂的信息一種清晰的結構。
在WEB上使用XML的好處有:
a.它提供用于本地計算的數(shù)據,傳遞到桌面的數(shù)據可以進行本地計算.
b.向用戶提供正確的結構化數(shù)據視圖,可以根據用戶喜好和配置等因素,以適當?shù)男问?,在視圖中動態(tài)表現(xiàn)給用戶。
c.允許集成不同來源的結構化數(shù)據。
在存儲信息時,XML 相對于其他格式的優(yōu)越性:
a. XML 格式是基于文本的,這使得它們更容易讀、更便于記錄,有時也更便于調試。
b. XML 分析已有完善的定義,且已廣泛應用,使得在各種環(huán)境中從 XML 文檔檢索信息成為可能。
c. 應用程序可依賴 XML 分析器進行某些結構驗證以及數(shù)據類型檢查(當使用架構時)。
XML的優(yōu)勢在于:
a.引入結構的概念,使得對數(shù)據的標記和查詢更為方便: 由于XML支持結構化數(shù)據,可以更加詳細地定義某個數(shù)據對象的數(shù)據結構。
b. XML支持靈活多變的Web應用: 我們可以從不同的來源集成或組合數(shù)據,可以將多個應用程序所生成的數(shù)據納入同一個XML文件。
c. XML利用標準的HTTP協(xié)議傳輸數(shù)據: XML采用一種開發(fā)的、以文本為基礎的格式,與HTML一樣,可以利用HTTP協(xié)議進行數(shù)據傳輸。
XML采用的標準技術已被證明是最適合Web開發(fā)的,與XML相關有許多部分,但只要了解了其中三個部分就可以明確XML的工作原理。最基本的XML包括三個相互聯(lián)系的標準:
XML(擴展標識語言) XSL(可擴展的樣式語言) XLL(可擴展的鏈接語言)
這三個標準相輔相成,使得XML語言在數(shù)據標記、顯示風格、超文本鏈接方面具有強大的功能和靈活性,數(shù)據交換和集成都十分便利。
XML的基本思想很簡單:利用數(shù)據標識表示數(shù)據的含義,利用簡單的嵌套和引用來實現(xiàn)數(shù)據元素之間的關系。這與HTML有很大的不同。HTML用標識直接規(guī)定了數(shù)據格式。
XML的基本構造塊是標識元素。每個標識元素有0個或多個屬性/值。并且可以有若干個子元素。這種嵌套關系的所有標識元素構成整個XML文檔。
XML文件由以下建筑塊組成:元素,標識,屬性,實體,PCDATA,CDATA。
①元素是XML文件的主建筑塊。
②標識用于表示元素。
③屬性提供元素更多的信息。
④PCDATA意味著分析過的字符數(shù)據。
⑤CDATA也意味字符數(shù)據。
(二) XML與HTML的區(qū)別
XML與HTML的區(qū)別主要體現(xiàn)在:
◆ 信息提供者能夠根據需要,自行定義新的標識及屬性名。
◆ 文件結構的嵌套可以復雜到任意程度。
◆ XML文件可以包括一個語法描述,使應用程序可以對此文件進行結構確認。XML有最大限度的表示力、易用性和易懂性。盡管它不對HTML文件向下兼容,但符合W3C的HTML3.2規(guī)范的文件可以非常容易地被轉換為XML文件,從數(shù)據庫生成XML文件。
HTML的缺陷:
沒有表達內容的含義,只能用預定義的標記。
HTML是膚淺的,HTML關心的是外觀。要求文檔過于完整。
沒有真正的國際化。無法真正實現(xiàn)數(shù)據交互。不可重用。鏈接機制不完善。
XML的優(yōu)點:
XML是信息自描述的語言。
信息共享 自定義數(shù)據格式,而且很容易使用工具讀寫。
數(shù)據傳輸 支持各種通道的數(shù)據傳輸。
數(shù)據重用 分離各種數(shù)據和顯示。
可擴展 文檔包含語義。
其它 容易閱讀/工具/樹形結構面向對象編程。
(三)XML和數(shù)據庫的區(qū)別
從嚴格的意義上來說,XML本身不是數(shù)據庫,XML僅僅意味著XML文檔。盡管一個XML文檔包含數(shù)據,但是如果不通過其它的軟件來進行數(shù)據處理的話,它本身只不過是一個文本文件,所以XML本身不能和數(shù)據庫掛上鉤,但是加上一些輔助工具,可以把整個XML看成是一個數(shù)據庫系統(tǒng),XML文本本身可以看成是數(shù)據庫中的數(shù)據區(qū)。從正面來說,XML提供了許多數(shù)據庫所具備的東西:存儲(XML文檔), 模式(DTD, XML schema,RElAX NG 等等), 查詢語言(XQuery, XPath, XQL, XML-QL, QUILT等等),編程接口(SAX, DOM,JDOM)等等。從反面來說,它缺少一些作為實用的數(shù)據庫所應具備的特性:高效的存儲,索引,安全,事務和數(shù)據一致性,多用戶訪問,觸發(fā)器,查詢多個文件等等。
XML技術在數(shù)據應用方面有很多優(yōu)點:
a.跨平臺,XML文件為純文本文件,不受操作系統(tǒng),軟件平臺的限制。
b.易表義,XML具有基于SCHEMA自描述,能為計算機理解和自動處理.
c.XML不僅可以描述結構化數(shù)據,還可以有效描述半結構化,甚至是非結構化數(shù)據
二、系統(tǒng)開發(fā)工具
(一)開發(fā)工具的選用及介紹
開發(fā)平臺:ASP.NET.
ASP.NET的優(yōu)勢:
a.ASP.NET使代碼更加干凈。
b.ASP.NET 改進了配置、伸縮性、安全性和可靠性。
c.ASP.NET對各種不同的瀏覽器提供了更好的支持。
d.ASP.NET 造就了一類新的Web應用程序。
結合以上ASP.NET和XML文件的優(yōu)點,因此本人選用ASP.NET為平臺,VB為編程語言來處理XML文檔。
(二) XML的兩種解析機制:SAX和DOM
SAX(XML 簡易應用程序接口)和下面將要提到的 DOM 是兩種工作原理不同的 XML 解析器。DOM 允許程序員把 XML 文檔看作是抽象的一棵樹,可以讓程序方便的訪問。而 SAX 在解析 XML 文檔時通過向應用程序報告解析過程中的事件流來告知應用所解析文檔的內容,如一個元素的開始、結束,遇到可解析字符流等。
DOM(文檔對象模型)是和 SAX 并列的另外一種 XML 解析器類型。為了便于對文檔進行操作,解析器先將文檔全部讀入并解析,由于 XML 文檔的樹狀結構,可以把它看作一棵抽象的文檔“樹”,樹上有各種節(jié)點,節(jié)點有自己的類型和相關的屬性值。一旦文檔被讀入,就在內存中保留整個文檔的所有信息,所以程序可以隨意訪問任意位置的節(jié)點的信息或是對之進行修改,程序可以在很高很抽象的層次上動作,而不必把精力花在底層工作上。
通過對SAX和DOM的比較,由于本系統(tǒng)所使用的數(shù)據量比較小,因此本人選用DOM來對XML文檔進行解析。
三、系統(tǒng)的分析與實現(xiàn)
本人所開發(fā)的投票系統(tǒng)由于數(shù)據量少,所以不涉及到數(shù)據庫,所有的數(shù)據都存儲在XML文件中,通過DOM接口對XML進行動態(tài)編輯。
(一)系統(tǒng)中用于存儲數(shù)據的XML文件
VOTE.XML文件:用于存取投票的信息
USERINFO.XML文件:用于存取用戶信息
(二)系統(tǒng)功能模塊劃分
本系統(tǒng)包含四個功能模塊:用戶登錄,用戶注冊,用戶投票,顯示投票結果。
(三)系統(tǒng)功能與實現(xiàn)
本部分主要內容為本系統(tǒng)運行的界面及界面的源代碼
1、用戶登錄界面的實現(xiàn)
此界面是為了讓用戶按照用戶名和密碼進行登錄,并且核對userinfo.xml文件中的用戶名和密碼是否正確, 登錄后進入投票頁面。
2、用戶投票界面的實現(xiàn)
此界面主要用于實現(xiàn)用戶投票的功能。從VOTE.XML文件中讀取投票信息,并生成投票客戶端。
3、用戶注冊界面的實現(xiàn)
此界面能實現(xiàn)用戶在注冊之后自動將用戶信息填入userinfo.xml文件中,然后對userinfo.xml文件更新后進行保存。
4、顯示投票結果界面的實現(xiàn)
此界面的主要功能是顯示用戶投票的結果,用戶投票后自動記錄下投票用戶的IP地址,存入XML文件中,然后進行統(tǒng)計,最后讀取XML文件并將結果顯示出來。
四、總結
在本系統(tǒng)的開發(fā)過程中,由于是初次開發(fā)軟件,在知識、經驗方面都存在著不足。但本系統(tǒng)具有界面友好、操作方便、效率高等優(yōu)點。通過開發(fā)這個系統(tǒng)在數(shù)據量小、用戶少和性能要求不太高的環(huán)境下,可以將XML文檔用作數(shù)據庫,但是卻不適用于用戶量大、數(shù)據集成度高以及性能要求高的作業(yè)環(huán)境中。XML是一個數(shù)據表示的開放標準,它獨立于系統(tǒng)和處理程序,XML把這種能力擴展到Web上。因為它的簡單性、開放性、可擴展性、靈活性、自描述性等特性,XML在數(shù)據和信息管理、數(shù)據交換、Web應用、電子商務、應用集成等諸多領域有著重要用途,其前景非常光明。
參考文獻:
[1]陳兵,萬暉.基于XML的Web數(shù)據交換[J].計算機工程,2002,28(2):112-1141
[2]盧嘯龍.XML完全實例教程.北京電子工業(yè)出版社,2001
[4]劉兵.WEB高級程序設計教程.中國水利水電出版社
[5]NatanyaPitts.XML技術內幕[M].電子工業(yè)出版社,2002