基于XML技術(shù)的移動模型研究_第1頁
基于XML技術(shù)的移動模型研究_第2頁
基于XML技術(shù)的移動模型研究_第3頁
基于XML技術(shù)的移動模型研究_第4頁
基于XML技術(shù)的移動模型研究_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于XML技術(shù)的移動模型研究張麥玲,趙敏(平頂山工業(yè)職業(yè)技術(shù)學(xué)院計算機系 河南 平頂山 467000)摘要:文章簡要介紹了J2ME平臺和XML技術(shù),描述了一種XML在移動商務(wù)中的應(yīng)用模型,并結(jié)合實例,著重討論了設(shè)計開發(fā)過程中的問題。關(guān)鍵詞:XML;J2ME;XMLPull;移動商務(wù)中圖分類號:TP393XML-Based Mobile Model Research Abstract The foundation information of J2ME and XML is introduced briefly. This paper describes an application model

2、 in Mobile Business Affairs based on XML Technology. Then an example application be discussed with the special concerns about the problems during the development.Key words XML;J2ME;XMLPull;Mobile Business Affairs引言企業(yè)移動性是IT行業(yè)中最有前途和前沿的領(lǐng)域。與以PC為中心的電子商務(wù)不同,移動商務(wù)的重點表現(xiàn)在,人們攜帶普及性移動設(shè)備并可以不受時空的限制獲得信息。利用J2ME技術(shù)開發(fā)移動

3、商務(wù)系統(tǒng),已經(jīng)成為無線應(yīng)用中的首選方式。XML和JAVA所支持的理念相似,都支持開放接口、平臺的獨立性和面向?qū)ο蟮臄?shù)據(jù)。隨著技術(shù)的發(fā)展,XML最終必定成為移動應(yīng)用程序廣泛使用的數(shù)據(jù)格式。1 J2ME簡介Java 2 Platform, Micro Edition (J2ME), 廣泛應(yīng)用于消費和嵌入式設(shè)備中,SUN 把J2ME的實現(xiàn)分為兩層:configuration 和 profile。對于手機,PDA等有限聯(lián)接設(shè)備,它們的profile層稱為MIDP(Mobile Information Device Profile)。于是MIDP與CLDC合在一起就構(gòu)成了一個完整的J2ME架構(gòu)。下圖顯示

4、了CLDC/MIDP的結(jié)構(gòu):2 XML技術(shù)介紹21 XML技術(shù)XML是eXtensible Markup Language(可擴充標記語言)的縮寫,是W3C組織定義的一種互聯(lián)網(wǎng)上交換數(shù)據(jù)的標準。XML具有的豐富的表達能力、既對機器友好又對人友好、提倡開放的標準等優(yōu)點,使得其快速地變成了企業(yè)數(shù)據(jù)交換和集成所選擇地的技術(shù),為了開發(fā)移動企業(yè)應(yīng)用程序,必須讓移動客戶程序與XML驅(qū)動的后端系統(tǒng)通信。22 XML分析模型 在小型設(shè)備上使用XML,由于受到CLDC平臺終端設(shè)備性能、網(wǎng)絡(luò)帶寬的限制,就需要采用經(jīng)過特殊優(yōu)化的、快速的和輕量級的XML分析器。XML分析器將基于文本的XML文檔轉(zhuǎn)換為計算機程序可訪問

5、的內(nèi)存對象。分析XML文檔有幾種方法。l SAXSAX是一種基于事件的分析模型。分析器以線性通過的方式檢查完整的文檔。SAX分析過程如下圖所示:l XMLPullSAX模型的一個最大問題是它是基于推入的:一旦開始分析,分析事件就會被連續(xù)推入。這種分析器一次就將完整的XML文檔分析完畢。開發(fā)人員對分析流程無法控制。這樣做的效率很低,尤其對移動客戶而言。XMLPull API則給予開發(fā)人員更多對分析流程的控制。其基于拉出的分析器,可以中斷分析過程來處理其他事情,然后再回來繼續(xù)該分析過程或者終端分析。分析過程如下圖所示: 基于XMLPull API的特點,文中采用該分析器在移動商務(wù)系統(tǒng)中來線性分析文

6、檔。該API集的核心是XmlPullParser接口。XmlPull的供應(yīng)商通過XmlPullParserFactory工廠類提供他們自己的XmlPullParser實現(xiàn)。下面簡單介紹一下控制分析流程的核心方法next()和nextToken()。 next()方法將分析器推進到下一個事件。Next()方法所能看到的事件安類型是START_TAG、TEXT、END_TAG和END_DOCUMENT; nextToken()方法給予開發(fā)人員更完美的控制能力。它所看到的就是next()方法所能看到的所有事件。而且還可以報告如下事件:COMMENT、CDSECT、DOCDECL、 ENTITY_RE

7、F、PROCESSING_INSTRUCTION和IGNORABLE_WHITESPACE。23 文檔模型SAX和XmlPull都可以將層次型的XML數(shù)據(jù)結(jié)構(gòu)作為線性流處理,但是他們都僅僅支持串行訪問,無法對文檔中任一節(jié)點進行訪問。KDOM文檔模型分析器可以解決這一問題。文檔模型分析器實際上是一種帶有預(yù)定義的事件處理器的SAX和XmlPull分析器,它將XML信息存儲到內(nèi)存樹中。任何文檔模型的構(gòu)建塊都是Node對象。Node類定義允許多個Node對象被鏈接到一個數(shù)結(jié)構(gòu)中的方法。Xml文檔由這樣的一個樹來標識。標準的XML文檔模型API是DOM,但是,實踐證明,對于移動設(shè)備而言,對DOM的支持代

8、價過高,我們采用的是輕量級XML對象模型KDOM,該模型得到了KXMLv1.2和v2.0的支持。3 移動商務(wù)系統(tǒng)中XML的應(yīng)用 文中采用民航機場無線管理系統(tǒng)中客戶管理模塊(GMM)作為實例,通過具體代碼來說明XML在商務(wù)系統(tǒng)中如何為移動客戶提供服務(wù)。31 通過XmlPull提供GMM服務(wù)應(yīng)用程序需要記住各種狀態(tài)信息,以完成根據(jù)上下文檢索XML文檔的任務(wù)。示例代碼如下:Vector getGMMsViaPull(InputStream is) throws Exception Vector GMMs = new Vector();while (eventType != parser.END_DO

9、CUMENT)if (enentType = parser.START_TAG) if (parser.getName().equals(“Details”) GMMDetails bd = getGMMDetailViaPull(parser); GMMs.addElent(bd); eventType = parser.next(); 邏輯流程描述:(1) 當方法getGMMsViaPull()遇到一個Details時,做一標記,將分析器的控制交給方法getGMMDetailViaPull();(2) 方法getGMMDetailViaPull()實例化一個新的GMMDetails對象,存

10、儲url屬性的值;(3) 當方法getGMMDetailViaPull()遇到UserName、Sex、Age和Department標記,則將其對應(yīng)的值存儲在GMMDetails的對應(yīng)字段中;(4) 在Details結(jié)束標記處,方法getGMMDetailViaPull()返回已經(jīng)完成的GMMDetails對象;然后由getGMMsViaPull()將GMMDetails對象存儲在對應(yīng)的VectorGMMs中,并且向前移動到下一標記處,返回(1),循環(huán)執(zhí)行。32 通過KDOM提供GMM服務(wù)使用KDOM文檔模型,則僅僅需要簡單的代碼實現(xiàn)就可以根據(jù)輸入的XML流,在Document類型的對象中建立

11、KDOM樹。InputStreamReader reader = new InputStreamReader(is);/InputStream is; KXmlParser parser = new KxmlParser(); parser.setInpt(reader); Document doc = new Document(); doc.parse (parser); /getGMMsViaDOM()方法 Vector getGMMsViaDOM(InputStream is ) throws Exception Vector GMMs = new Vector(); Element p

12、rods = doc.getRootElement(); int numOfEntries = prods.getChildCount(); for(int i= 0;i < numOfEntries;i+) if (prods.isText(i) . else Element e = prods.getElement(i); GMMDetails bd = getGMMDetailViaDOM(e); GMMs.addElement( bd); 在默認情況下,所有可以忽略的空白信息都可以插入到Text文本節(jié)點中,由于該樹對象存在與內(nèi)存中,則可以在任何時間訪問任何隨機節(jié)點,也可以修改節(jié)點

13、的內(nèi)容。 33 運行結(jié)果 示例 MIDlet GMMlite 展示了如何分析GMM的輕型文檔。GMMlite首先要求用戶輸入姓名,然后選擇期望測試得XML分析模式,按鈕Xpull代表XmlPull,按鈕Kdom代表KDOM方式,MIDlet發(fā)出查詢,然后接受返回得數(shù)據(jù),分析響應(yīng)文檔,回顯提取的數(shù)據(jù)。程序運行示意圖如下: (1) (2_1) 或者 (2_2)(3)4 結(jié)束語本文討論了在移動商務(wù)系統(tǒng)中,XML作為開放數(shù)據(jù)交換格式的重要性,介紹了一種輕量級XML處理的通用模型,擴展了J2ME平臺上開發(fā)無線企業(yè)應(yīng)用的框架。隨著硬件平臺的不斷發(fā)展和無線應(yīng)用的迅速普及,XML作為最具跨多種平臺的互操作性的數(shù)據(jù)格式,在移動商務(wù)系統(tǒng)中,將發(fā)揮越來越大的作用。參考文獻1 張小瑋 J2ME無線平臺應(yīng)用開發(fā) 清華大學(xué)出版社 2 MIKAEL HILLBORG 無線xml開發(fā)人員指南清華大學(xué)出版社3 趙仲孟,劉君瑞,霍秋艷等。一種基于XML得Workflow過程定義語言。計算機應(yīng)用研究,2003(4)4 SAX規(guī)范。/5 XmlPull規(guī)范

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論