Rex Mao

          分享java技術(shù)與生活

          XML的DOM解析器的java實(shí)現(xiàn)(二) 程序結(jié)構(gòu)設(shè)計(jì)

           

          結(jié)構(gòu)設(shè)計(jì)

          各個類的功能介紹

          Node、ElementDocument、AttrW3CDOM規(guī)范要求實(shí)現(xiàn)的接口。還有其它接口未列出。

          SimpleNode 繼承Node接口,實(shí)現(xiàn)Node接口的基本功能。

           

          SimpleElement繼承NodeElement接口,對應(yīng)DOM樹中的標(biāo)準(zhǔn)節(jié)點(diǎn),也就是XML文件中的一個標(biāo)簽。

           

          SimpleDocument 繼承NodeDocument接口,對應(yīng)整個DOM樹,它是解析器解析完成后,返回的對象。用戶可以使用該對象訪問整個DOM樹。

           

          SimpleAttr 繼承NodeAttr接口,對應(yīng)DOM樹中的屬性節(jié)點(diǎn),用于存放屬性名稱和屬性值。

           

          CharCollector 字符收集器類,它直接與XML文件接觸,根據(jù)需要向調(diào)用者提供下一個標(biāo)簽或文本等數(shù)據(jù)。

           

          SimpleDOMParser 解析器的核心類,它使用CharCollector類,得到標(biāo)簽、文本等數(shù)據(jù)。使用SimpleElementSimpleAttr等類存放數(shù)據(jù),生成SimpleDocumnet對象返回給調(diào)用者。

           

          MainFrame 用戶界面類,它將解析結(jié)果展示給用戶,并且根據(jù)用戶的操作,與用戶進(jìn)行交互。

           

          Manager 中間層管理類,它協(xié)調(diào)用戶界面(MainFrame)與解析器內(nèi)核(SimpleDOMParser)之間的關(guān)系,實(shí)現(xiàn)解析器的控制。

           

          內(nèi)部接口設(shè)計(jì)

          類名稱

          調(diào)用類

          調(diào)用功能

          SimpleDOMParser

          SimpleElement

          節(jié)點(diǎn)的存儲,查找,刪除。

          SimpleDOMParser

          SimpleAttr

          屬性節(jié)點(diǎn)的存儲,查找,刪除。

          SimpleDOMParser

          SimpleDocument

          生成DOM

          SimpleDomParser

          CharCollector

          字符收集,得到標(biāo)簽與文本等。

          Manager

          SimpleDOMParser

          解析XML文檔

          Manager

          MainFrame

          用戶界面的相關(guān)操作

           

          用例關(guān)系設(shè)計(jì)

          用例介紹

          用戶:          參與者, 即軟件的使用者。

          XML文件:       參與者,XML文件。

          鏈接的文件:    參與者,XML文件中鏈接的外部文件。

          選擇XML文件: 用戶通過文件選擇框選擇一個本地的XML文件。

          選擇URL地址: 用戶輸入一個有效的URL,指向網(wǎng)絡(luò)上的XML格式的網(wǎng)頁。

          解析XML文件: 用戶確定對XML文件進(jìn)行解析,該項(xiàng)操作要發(fā)生在選擇XML文件或選擇URL地址之后。

          修改文件:        用戶對XML文件進(jìn)行修改

          保存文件:        用戶通過文件選擇框,選擇位置保存XML文件。

          選擇DOM樹節(jié)點(diǎn):用戶選擇解析后的DOM樹型結(jié)構(gòu)上的節(jié)點(diǎn)。

          解析器解析:     解析器對XML進(jìn)行解析

          收集字符:        字符收集器負(fù)責(zé)處理XML的字符數(shù)據(jù)

          界面展示:        通過樹型結(jié)構(gòu)和圖表向用戶展示數(shù)據(jù)。

           

          字符收集器有限狀態(tài)機(jī)

          DFA M={S,Ts,Tp,Tq,Cp,Ep,Er,Q},{LT,RT,A,C,EC,,EOF,NL,NLRA},f,S,{Q}

           

          其中 字符集:

          LT={<}

          RT={/>}

          A={&amp,&lt,&gt,&apos,&qout}

          C={<!CDATA[[}

          EC={]]>}

          EOF代表文件結(jié)束

          NL代表不是<的字符

          NLRA 代表除去LT,RT,LTL,A,C的所有字符

           

          狀態(tài):

          S 開始狀態(tài)

          Ts:標(biāo)簽處理開始狀態(tài)

          Tp:標(biāo)簽處理狀態(tài)

          Tq:標(biāo)簽處理結(jié)束狀態(tài)

          CpCDATA節(jié)點(diǎn)處理狀態(tài)

          Ep:內(nèi)建實(shí)體處理狀態(tài)

          Er:錯誤狀態(tài)

          Q:結(jié)束狀態(tài)

           

          狀態(tài)轉(zhuǎn)換函數(shù):

           

          f(S,LT)=Ts

          f(S,NL)=Er

          f(Tp,RT)=Tq

          f(Tp,A)=Cp

          f(Tp,C)=Ep

          f(Ep,EC)=Tp

          f(Ep,EOF)=Er

          f(Tq,LT)=Ts

          f(Tq,EOF)=Q

          f(Tq,NLRA)=Tq

           

          posted on 2007-05-27 13:10 Rex Mao 閱讀(1434) 評論(1)  編輯  收藏 所屬分類: 技術(shù)

          評論

          # re: XML的DOM解析器的java實(shí)現(xiàn)(二) 程序結(jié)構(gòu)設(shè)計(jì) 2008-06-19 18:04 zhujie

          我是一名學(xué)生,老師讓我做xml文檔的dom解析,我想也用java實(shí)現(xiàn),你能否共享一下代碼,對我畢設(shè)幫助很大,非常感謝  回復(fù)  更多評論   

          主站蜘蛛池模板: 冀州市| 峡江县| 城市| 武定县| 梓潼县| 长白| 绥江县| 集安市| 克山县| 新郑市| 万山特区| 宁蒗| 海兴县| 青龙| 登封市| 威远县| 绥阳县| 庆云县| 红安县| 石棉县| 慈利县| 涟源市| 上杭县| 栾城县| 凤山市| 娄烦县| 龙里县| 凤台县| 乌什县| 定日县| 塔河县| 体育| 余干县| 米脂县| 宁晋县| 平潭县| 兰考县| 阳春市| 新丰县| 荣昌县| 平果县|