專利名稱:一種hsml dom加載器及快速加載hsml dom方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字電視技術(shù)領(lǐng)域,具體涉及一種HSML DOM加載器及快速加載HSML DOM方法。
背景技術(shù):
數(shù)字電視互動應(yīng)用頁面標記語言(HSML)是在W3C定義的XHTML1. 0規(guī)范的基礎(chǔ) 上進行的擴展。XHTML全稱為可擴展超文本標記語言(Extensible HyperText Markup Language),它吸收了 XML (extensible Markup Language)結(jié)構(gòu)良好和可擴展的特性,采用 XML重構(gòu)了 HTML4. 01,與HTML4. 01兼容。XHTML的文檔結(jié)構(gòu)與HTML文檔的結(jié)構(gòu)基本相同, 只是XHTML在語法要求上比HTML更加嚴格。DOM是文檔對象模型(Doucument Object Model)的簡稱,它是一個跨平臺的、可 適應(yīng)不同程序語言的文件對象模型,它采取直觀且一致的方法,將HSML文檔進行模型化處 理,提供了存取和更新文檔內(nèi)容、結(jié)構(gòu)和樣式的編程接口,DOM將整個頁面映射為一個由層 次節(jié)點組成的文件,有1級、2級、3級共三個級別。DOM是以層次結(jié)構(gòu)組織的節(jié)點或信息片 斷的集合。這個層次結(jié)構(gòu)允許開發(fā)人員在樹中導(dǎo)航尋找特定信息。分析該結(jié)構(gòu)通常需要加 載整個文檔和構(gòu)造層次結(jié)構(gòu),然后才能做任何工作。HSML的文檔結(jié)構(gòu)與HTML文檔的結(jié)構(gòu)類似,分析HSML文檔通常的方法是將其先加 載為DOM。HSML是在XHTML的基礎(chǔ)上擴展的,對于語法要求十分嚴格,因此加載HSML的最 大的技術(shù)難點在于糾正一些語法錯誤,例如缺少結(jié)束標記、屬性名中出現(xiàn)大寫字母、節(jié)點出 現(xiàn)在錯位的位置上等。
發(fā)明內(nèi)容
本發(fā)明將使用一種靈活快速的方式來加載HSML,它最大的好處是速度快并且可以 方便的擴展糾錯機制。本發(fā)明所提供的快速加載HSML DOM方法是在分析HSML的時候,預(yù) 先快速地將HSML加載為DOM的方法。相應(yīng)的,本發(fā)明實施例提供了一種HSML DOM加載器,包括數(shù)字電視互動應(yīng)用頁 面標記語言HSML前向遍歷器、HSML節(jié)點分析器、HSML錯誤解析器、HSML文檔對象模型DOM 樹四個部件,其中HSML前向遍歷器,用于在建立HSML DOM加載器時,將首先調(diào)用HSML DOM加載器中 的HSML前向遍歷器,用以遍歷并且返回HSML中的各個節(jié)點;HSML節(jié)點分析器分為語法分析模塊和DOM節(jié)點生成模塊,在HSML前向遍歷器將返 回的HSML節(jié)點傳給HSML節(jié)點分析器中語法分析模塊后,語法分析器分析HSML前向遍歷器 返回的節(jié)點,并根據(jù)節(jié)點指示HSML前向遍歷器的下一步操作,在發(fā)現(xiàn)節(jié)點有語法錯誤則把 節(jié)點傳遞給HSML錯誤糾正器進行錯誤糾正,若語法正確則直接生成DOM節(jié)點;HSML錯誤糾正器包括錯誤分析模塊和錯誤糾正模塊,用于在當(dāng)HSML節(jié)點分析器 檢測到語法錯誤時,HSML錯誤糾正器首先調(diào)用錯誤分析模塊查出具體語法錯誤并傳遞給錯誤糾正模塊,錯誤糾正模塊再進行具體的錯誤糾正;HSML DOM樹,用于將HSML節(jié)點分析器不斷生成的DOM節(jié)點添加到HSML DOM樹中, HSML DOM樹作為最后的分析結(jié)果返回。所述HSML前向遍歷器使用指針技術(shù)來快速遍歷HSML字符串,并且逐步返回遍歷 的各個節(jié)點。所述錯誤糾正模塊再進行具體的錯誤糾正包括當(dāng)檢測到某個節(jié)點屬性值為大寫 字母,則自動糾正為小寫字母。相應(yīng)的,本發(fā)明實施例還提供了一種快速加載HSML DOM方法,包括應(yīng)用程序?qū)SML字符串傳遞給HSML DOM加載器;HSML DOM加載器調(diào)用HSML前向遍歷器,并將HSML字符串傳遞給HSML前向遍歷 器;HSML前向遍歷器逐步遍歷HSML字符串,并將遍歷到的字符串傳遞給HSML字符分 析器;HSML DOM字符分析器首先調(diào)用語法分析模塊,檢查字符串是否存在語法錯誤,在 HSML節(jié)點分析器分析字符串語法正確時,則將該節(jié)點生成為DOM節(jié)點,并添加到DOM樹中;判斷HSML字符串是否都加載完畢,若判斷出HSML字符串加載完畢,則HSML DOM 加載器將生成的DOM樹返回給應(yīng)用程序。所述方法還包括HSML DOM字符分析器調(diào)用語法分析模塊,檢查字符串是否存在 語法錯誤,在所述字符串存在語言錯誤時,對所述字符串進行錯誤糾正。所述對所述字符串進行錯誤糾正包括在所述字符串存在語言錯誤時,則調(diào)用HSML錯誤糾正器;HSML錯誤糾正器調(diào)用其錯誤分析模塊,分析該節(jié)點存在何種語法錯誤,并將分析 結(jié)果傳遞給HSML錯誤糾正器中錯誤糾正模塊;HSML錯誤糾正器重錯誤糾正模塊根據(jù)錯誤分析器傳來的分析結(jié)果進行相應(yīng)的錯 誤糾正,糾正完畢后返回給HSML字符分析器。在對所述字符串中的所有語言錯誤進行糾正完畢之后,則將該節(jié)點生成為DOM節(jié) 點,并添加到DOM樹中。所述方法還包括在判斷出HSML字符串未加載完畢時,進入應(yīng)用程序?qū)SML字符 串傳遞給HSML DOM加載器步驟中直到所有HSML字符串都加載完畢。本發(fā)明的優(yōu)點在于HSML錯誤解析器可以自動的糾正語法錯誤以及擴展糾錯機 制,通過本發(fā)明實施例中的方法,能夠靈活快速的來加載HSML。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例中的HSML DOM加載器的邏輯結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例中的快速加載HSML DOM的方法流程圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其 它實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例提供一種快速加載HSML DOM的方法,在建立的HSMLD0M加載器基礎(chǔ) 上,其實現(xiàn)過程如下應(yīng)用程序?qū)SML字符串傳遞給HSML DOM加載器;HSML DOM加載器調(diào)用HSML前向遍歷器,并將HSML字符串傳遞給HSML前向遍歷 器;HSML前向遍歷器逐步遍歷HSML字符串,并將遍歷到的字符串傳遞給HSML字符分 析器;HSML DOM字符分析器首先調(diào)用語法分析模塊,檢查字符串是否存在語法錯誤,在 HSML節(jié)點分析器分析字符串語法正確時,則將該節(jié)點生成為DOM節(jié)點,并添加到DOM樹中;判斷HSML字符串是否都加載完畢,若判斷出HSML字符串加載完畢,則HSML DOM 加載器將生成的DOM樹返回給應(yīng)用程序?;谏鲜龇桨福韵路謩e進行詳細說明。圖1為HSML DOM加載器的邏輯結(jié)構(gòu)示意圖,它包含HSML前向遍歷器、HSML節(jié)點 分析器、HSML錯誤解析器、HSML DOM樹四個部件。HSML前向遍歷器當(dāng)建立HSML DOM加載器時,將首先調(diào)用HSML DOM加載器中的 HSML前向遍歷器,用以遍歷并且返回HSML中的各個節(jié)點。需要說明的是,這里的HSML前向 遍歷器使用指針技術(shù)來快速遍歷HSML字符串,并且逐步返回遍歷的各個節(jié)點。HSML節(jié)點分析器HSML節(jié)點分析器分為語法分析模塊和DOM節(jié)點生成模塊。HSML 前向遍歷器將返回的HSML節(jié)點傳給HSML節(jié)點分析器中語法分析模塊,語法分析器分析 HSML前向遍歷器返回的節(jié)點,并根據(jù)節(jié)點指示HSML前向遍歷器的下一步操作,即發(fā)現(xiàn)節(jié)點 有語法錯誤則把節(jié)點傳遞給HSML錯誤糾正器進行錯誤糾正,若語法正確則直接生成DOM節(jié) 點οHSML錯誤解析器HSML錯誤糾正器分為錯誤分析模塊和錯誤糾正模塊。當(dāng)HSML節(jié) 點分析器檢測到語法錯誤時,便調(diào)用HSML錯誤解析器,HSML錯誤糾正器首先調(diào)用錯誤分析 模塊查出具體語法錯誤并傳遞給錯誤糾正模塊,錯誤糾正模塊再進行具體的錯誤糾正。比 如在檢測到某個節(jié)點屬性值為大寫字母時,則自動糾正為小寫字母(HSML中要求屬性值必 須為小寫字母)。HSML DOM樹HSML節(jié)點分析器將不斷生成DOM節(jié)點,添加到HSMLD0M樹中,HSML DOM樹作為最后的分析結(jié)果返回。圖2是本發(fā)明實施例中的快速加載HSML DOM的方法流程圖,其流程具體包括如 下S201、建立 HSML DOM 加載器;S202、應(yīng)用程序?qū)SML字符串傳遞給HSML DOM加載器;
S203、HSML DOM加載器調(diào)用HSML前向遍歷器,并將HSML字符串傳遞給它;S204、HSML前向遍歷器逐步遍歷HSML字符串,并將遍歷到的字符串傳遞給HSML字 符分析器;S205、HSML DOM字符分析器首先調(diào)用它的語法分析模塊,檢查字符串是否存在語 法錯誤;如果存在語法錯誤則調(diào)用HSML錯誤糾正器,進入到步驟S206,如果不存在語法錯 誤則進入到S208步驟中;S206、HSML錯誤糾正器首先調(diào)用其錯誤分析模塊,分析該節(jié)點存在何種語法錯誤, 并將分析結(jié)果傳遞給HSML錯誤糾正器中錯誤糾正模塊;S207、HSML錯誤糾正器重錯誤糾正模塊根據(jù)錯誤分析器傳來的分析結(jié)果進行相應(yīng) 的錯誤糾正,糾正完畢后返回給HSML字符分析器;需要說明的是,在對錯誤進行糾正完畢之后則需要重新進行語法判斷,只有當(dāng)所 有的語法錯誤糾正完畢之后方可進行步驟S208。S208、HSML節(jié)點分析器分析其語法正確時,則將該節(jié)點生成為DOM節(jié)點;S209、將DOM節(jié)點添加到DOM樹中S210、檢查HSML字符串是都加載完畢,若加載完畢,則進入到S211中,若加載為完 成,則需要進入到步驟S202中重新加載未加載完畢的;S212、HSML DOM加載器將生成的DOM樹返回給應(yīng)用程序。綜上,通過實施本發(fā)明實施例,HSML錯誤解析器可以自動的糾正語法錯誤以及擴 展糾錯機制,通過本發(fā)明實施例中的方法,能夠靈活快速的來加載HSML。需要說明的是,上述裝置和系統(tǒng)內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由 于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處 不再贅述。本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存 儲介質(zhì)可以包括只讀存儲器(ROM,Read Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁盤或光盤等。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說 明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù) 本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不 應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
一種HSML DOM加載器,其特征在于,包括數(shù)字電視互動應(yīng)用頁面標記語言HSML前向遍歷器、HSML節(jié)點分析器、HSML錯誤解析器、HSML文檔對象模型DOM樹四個部件,其中HSML前向遍歷器,用于在建立HSML DOM加載器時,將首先調(diào)用HSMLDOM加載器中的HSML前向遍歷器,用以遍歷并且返回HSML中的各個節(jié)點;HSML節(jié)點分析器分為語法分析模塊和DOM節(jié)點生成模塊,在HSML前向遍歷器將返回的HSML節(jié)點傳給HSML節(jié)點分析器中語法分析模塊后,語法分析器分析HSML前向遍歷器返回的節(jié)點,并根據(jù)節(jié)點指示HSML前向遍歷器的下一步操作,在發(fā)現(xiàn)節(jié)點有語法錯誤則把節(jié)點傳遞給HSML錯誤糾正器進行錯誤糾正,若語法正確則直接生成DOM節(jié)點;HSML錯誤糾正器包括錯誤分析模塊和錯誤糾正模塊,用于在當(dāng)HSML節(jié)點分析器檢測到語法錯誤時,HSML錯誤糾正器首先調(diào)用錯誤分析模塊查出具體語法錯誤并傳遞給錯誤糾正模塊,錯誤糾正模塊再進行具體的錯誤糾正;HSML DOM樹,用于將HSML節(jié)點分析器不斷生成的DOM節(jié)點添加到HSML DOM樹中,HSML DOM樹作為最后的分析結(jié)果返回。
2.如權(quán)利要求1所述的HSMLDOM加載器,其特征在于,所述HSML前向遍歷器使用指針 技術(shù)來快速遍歷HSML字符串,并且逐步返回遍歷的各個節(jié)點。
3.如權(quán)利要求1所述的HSMLDOM加載器,其特征在于,所述錯誤糾正模塊再進行具體 的錯誤糾正包括當(dāng)檢測到某個節(jié)點屬性值為大寫字母,則自動糾正為小寫字母。
4.一種快速加載HSML DOM方法,其特征在于,包括 應(yīng)用程序?qū)SML字符串傳遞給HSML DOM加載器;HSML DOM加載器調(diào)用HSML前向遍歷器,并將HSML字符串傳遞給HSML前向遍歷器; HSML前向遍歷器逐步遍歷HSML字符串,并將遍歷到的字符串傳遞給HSML字符分析器;HSML DOM字符分析器首先調(diào)用語法分析模塊,檢查字符串是否存在語法錯誤,在HSML 節(jié)點分析器分析字符串語法正確時,則將該節(jié)點生成為DOM節(jié)點,并添加到DOM樹中;判斷HSML字符串是否都加載完畢,若判斷出HSML字符串加載完畢,則HSML DOM加載 器將生成的DOM樹返回給應(yīng)用程序。
5.如權(quán)利要求4所述的方法,其特征在于,所述方法還包括HSMLDOM字符分析器調(diào)用 語法分析模塊,檢查字符串是否存在語法錯誤,在所述字符串存在語言錯誤時,對所述字符 串進行錯誤糾正。
6.如權(quán)利要求5所述的方法,其特征在于,所述對所述字符串進行錯誤糾正包括 在所述字符串存在語言錯誤時,則調(diào)用HSML錯誤糾正器;HSML錯誤糾正器調(diào)用其錯誤分析模塊,分析該節(jié)點存在何種語法錯誤,并將分析結(jié)果 傳遞給HSML錯誤糾正器中錯誤糾正模塊;HSML錯誤糾正器重錯誤糾正模塊根據(jù)錯誤分析器傳來的分析結(jié)果進行相應(yīng)的錯誤糾 正,糾正完畢后返回給HSML字符分析器。
7.如權(quán)利要求6所述的方法,其特征在于,所述方法還包括在對所述字符串中的所有 語言錯誤進行糾正完畢之后,則將該節(jié)點生成為DOM節(jié)點,并添加到DOM樹中。
8.如權(quán)利要求4至7任一項所述的方法,其特征在于,所述方法還包括在判斷出HSML 字符串未加載完畢時,進入應(yīng)用程序?qū)SML字符串傳遞給HSML DOM加載器步驟中直到所有HSML字符串都加載完畢。
全文摘要
本發(fā)明實施例公開了一種快速加載HSML DOM方法,包括應(yīng)用程序?qū)SML字符串傳遞給HSML DOM加載器;HSML DOM加載器調(diào)用HSML前向遍歷器,并將HSML字符串傳遞給HSML前向遍歷器;HSML前向遍歷器逐步遍歷HSML字符串,并將遍歷到的字符串傳遞給HSML字符分析器;檢查字符串是否存在語法錯誤,在HSML節(jié)點分析器分析字符串語法正確時,則將該節(jié)點生成為DOM節(jié)點,并添加到DOM樹中;判斷HSML字符串是否都加載完畢,若加載完畢,則HSML DOM加載器將生成的DOM樹返回給應(yīng)用程序。本發(fā)明實施例還公開了一種HSML DOM加載器,通過實施本發(fā)明,能夠靈活快速的來加載HSML。
文檔編號G06F17/30GK101923567SQ20101021509
公開日2010年12月22日 申請日期2010年6月30日 優(yōu)先權(quán)日2010年6月30日
發(fā)明者李彥, 李波, 羅笑南, 高懷恩 申請人:中山大學(xué);廣東廣聯(lián)電子科技有限公司