黃云鶴
【摘 要】結(jié)合XML技術(shù)特點, 進行了XML技術(shù)在排課系統(tǒng)中的實際應(yīng)用開發(fā), 論述了具體實現(xiàn)方法,探討了其它方面的應(yīng)用性。
【關(guān)鍵詞】XML技術(shù);排課系統(tǒng);應(yīng)用開發(fā)
一、前言
可擴展標(biāo)記語言XML(eXtensible Markup Language)是一種簡單靈活的文本格式的標(biāo)記語言,具有自我描述、容易擴展、數(shù)據(jù)可驗證等諸多優(yōu)點, 非常適合于網(wǎng)絡(luò)上多種數(shù)據(jù)源間進行數(shù)據(jù)的交換。XML目前已經(jīng)成為全球的標(biāo)準(zhǔn)網(wǎng)絡(luò)語言, 在數(shù)據(jù)發(fā)布、數(shù)據(jù)交換和整合、信息本地化處理等領(lǐng)域內(nèi)得到了廣泛深入的應(yīng)用。本人在實際的基于Web的排課系統(tǒng)的研究和開發(fā)過程中, 大量地使用了XML技術(shù)來實現(xiàn)數(shù)據(jù)處理, 如數(shù)據(jù)的本地化處理、數(shù)據(jù)發(fā)布等。下面本文將結(jié)合XML 技術(shù)的特點,探討XML技術(shù)在實際的排課系統(tǒng)中的應(yīng)用, 并論述具體應(yīng)用的實現(xiàn)方法。
二、XML的特點
(一)內(nèi)容的描述和處理分開
XML文檔的主要功能就是定義內(nèi)容本身,它保持用戶接口和結(jié)構(gòu)化信息的獨立。在XML中,標(biāo)記只是用來描述數(shù)據(jù)本身, 如課程名、教師等。在XML中, 對數(shù)據(jù)的處理是通過樣式( XSL 或 CSS) 實現(xiàn)的。將數(shù)據(jù)和對數(shù)據(jù)的處理隔離開來, 使得多方面來源的數(shù)據(jù)可以完全整合, 讓所有數(shù)據(jù)在中間層次轉(zhuǎn)換成 XML( 或者已經(jīng)是XML格式) , 然后在線交換并對數(shù)據(jù)進行各種處理, 最后根據(jù)用戶的需求和能力以特定格式將數(shù)據(jù)提交給用戶。
(二)自我描述能力
在XML文檔中, 標(biāo)記本身就是對被標(biāo)記信息最好的說明。加上通過XML文檔可以獲得的DTD和XML Schema中定義的各種約束, 在只有XML文檔的情況下, 計算機也能理解文檔中的數(shù)據(jù)。
(三)良好的開放性和可擴展性
在XML中, 可以定義無限量的標(biāo)記。它提供了一個標(biāo)記結(jié)構(gòu)化信息的架構(gòu), 用戶依據(jù)需求,可以隨時定義新的標(biāo)記, 大大拓展了可用標(biāo)記的范圍,也方便用戶的使用和理解。
(四)XML文檔具有可驗證的特性
利用XML文檔對應(yīng)的模式(如XML Schema和DTD) , 可以驗證XML文檔中數(shù)據(jù)在結(jié)構(gòu)上的正確性和標(biāo)記使用的規(guī)范性。在制定模式時,XML文檔的一切都已經(jīng)定義好了, 這樣, 我們在數(shù)據(jù)形成階段就能對數(shù)據(jù)的有效性和正確性進行部分檢驗, 提高了數(shù)據(jù)的可靠性和可用性,而不用等到數(shù)據(jù)使用階段。
三、XML在排課系統(tǒng)中的應(yīng)用
在學(xué)分制教學(xué)模式下, 排課活動是一切教學(xué)活動安排的前提, 是實行學(xué)分制的最核心的內(nèi)容。在基于瀏覽器/服務(wù)器結(jié)構(gòu)的排課系統(tǒng)中, 利用XML技術(shù), 可以均衡系統(tǒng)負載、提高系統(tǒng)性能和增強系統(tǒng)的可靠性。
(一)XML在排課沖突判斷方面的應(yīng)用
在排課過程中, 會經(jīng)常出現(xiàn)課程沖突的問題, 因此, 排課過程中的沖突判斷是排課系統(tǒng)要解決的重要問題。
如果在服務(wù)器端解決排課沖突, 必然會給系統(tǒng)造成極大的負擔(dān), 因為在排課時, 存在大量的并發(fā)操作, 服務(wù)器端的工作已經(jīng)相當(dāng)繁重, 因此將排課沖突的判斷遷移到客戶端是減輕服務(wù)器端負載的最好方法。在實際的排課系統(tǒng)的開發(fā)中, 本人利用XML技術(shù), 成功地解決了上課時間沖突和教室沖突的判斷問題, 而且沖突的判斷準(zhǔn)確, 效果明顯。下面部分簡單代碼為例, 說明XML在這方面的應(yīng)用及實現(xiàn)方法。
(二)XML在數(shù)據(jù)加載和驗證方面的應(yīng)用
利用XML技術(shù), 可以在客戶端完成數(shù)據(jù)的整理工作, 然后成批加載到數(shù)據(jù)庫中, 減少了網(wǎng)絡(luò)來回的次數(shù), 減輕了服務(wù)器端的壓力, 而且利用 DOM技術(shù)和XML Schema 還可以在服務(wù)器端進行更為細致的驗證, 保證數(shù)據(jù)的可靠性。在實際排課系統(tǒng)的開發(fā)中,本人就是利用XML技術(shù)實現(xiàn)了課程數(shù)據(jù)的批量添加和驗證工作。
實現(xiàn)數(shù)據(jù)批量加載的思想就是: 在客戶端利用XML, 向XML文檔輸入數(shù)據(jù); 檢查無誤后使用 XMLHTTP 對象將準(zhǔn)備好的數(shù)據(jù)包傳送到服務(wù)器; 在服務(wù)器端利用XMLDOM技術(shù)對數(shù)據(jù)包進行剖析驗證, 如驗證無誤, 則將提取節(jié)點數(shù)據(jù), 將其添加到數(shù)據(jù)庫中, 否則向客戶端反饋錯誤信息。
(三)XML技術(shù)在數(shù)據(jù)發(fā)布中的應(yīng)用
在每學(xué)期學(xué)生入學(xué)之前, 教學(xué)管理人員可以發(fā)布課程安排表等。這些發(fā)布的XML文件的名字與專業(yè)、年級等信息建立一個對應(yīng)關(guān)系, 如課程安排表的名字由專業(yè)、年級、學(xué)制和學(xué)生類型組成, 這樣的話, 無論是學(xué)生還是管理用戶, 輸入相關(guān)信息后, 系統(tǒng)就可以找到該文件顯示給用戶( 當(dāng)然, 如果將XML文件名稱可以存入數(shù)據(jù)庫中, 在管理上將更方便) 。每隔一段日期, 管理人員可以進行必要的整理工作, 如學(xué)期結(jié)束之后, 刪除更新(文件在刪除之后, 教務(wù)處管理人員可以直接從數(shù)據(jù)庫中提取數(shù)據(jù)實現(xiàn)查詢的操作) 。下面以課程安排表的發(fā)布為例, 說明數(shù)據(jù)發(fā)布的應(yīng)用方法。
數(shù)據(jù)發(fā)布的過程就是從數(shù)據(jù)庫中提取數(shù)據(jù)轉(zhuǎn)入相應(yīng)XML文件的過程, 首先發(fā)布程序會遍歷新年級的所有專業(yè)及相關(guān)學(xué)制和學(xué)生類型信息, 然后提取所有相關(guān)信息, 將獲得的數(shù)據(jù)寫入到XML文件中。因為XML文件本身是一個文本文件, 所以數(shù)據(jù)寫入的方法與向文本文件中寫入數(shù)據(jù)的方法相同。發(fā)布數(shù)據(jù)的查詢比較簡單, 對于教學(xué)管理用戶, 根據(jù)用戶輸入的信息進行組合, 就可以形成對應(yīng)的XML 文件的名稱, 實現(xiàn)查詢功能(如果不存在對應(yīng)的文件時, 系統(tǒng)會直接從數(shù)據(jù)庫中提取數(shù)據(jù)實現(xiàn)查詢; 對于學(xué)生用戶, 在學(xué)生登錄時, 系統(tǒng)會提取學(xué)生的專業(yè)、學(xué)制和學(xué)生類型信息放入Session變量中,用戶在查詢的時候, 系統(tǒng)會自動組合文件名, 實現(xiàn)查詢。
利用XML進行排課系統(tǒng)的數(shù)據(jù)發(fā)布, 可以使系統(tǒng)的數(shù)據(jù)發(fā)布更加簡單, 隨時可以進行更新, 系統(tǒng)設(shè)計者只需要設(shè)計好一些通用的、固定的樣式文件, 就可以使發(fā)布的數(shù)據(jù)以豐富的網(wǎng)頁形式顯示給用戶。
四、結(jié)論
傳統(tǒng)的客戶端/服務(wù)器結(jié)構(gòu)的排課系統(tǒng)普遍存在著信息本地處理能力差、負載不均衡、數(shù)據(jù)驗證煩瑣和數(shù)據(jù)發(fā)布不靈活等缺點。通過利用XML技術(shù),能夠有效地解決這些問題, 較好地地彌補了不足。以上應(yīng)用及其實現(xiàn)方法也同樣適用于其他的WEB應(yīng)用程序, 對于WEB 應(yīng)用程序的開發(fā)都有一定的借鑒意義。
參考文獻:
[1]孔令波,唐世渭,楊冬青,等.XML數(shù)據(jù)索引技術(shù)[J].軟件學(xué)報,2005,16(12):2063-2079.
[2]陸偉.元素級XML檢索模型構(gòu)建的關(guān)鍵問題與解決方案研究[J].中國圖書館學(xué)報,2007,33(6):58-61.