亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于xml文檔描述的界面生成方法和平臺(tái)的制作方法

文檔序號(hào):6464614閱讀:601來(lái)源:國(guó)知局

專利名稱::一種基于xml文檔描述的界面生成方法和平臺(tái)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明屬于計(jì)算機(jī)應(yīng)用領(lǐng)域,涉及一種界面生成方法和平臺(tái),具體涉及一種基于XML文檔描述的界面生成方法和平臺(tái)。技術(shù)背景隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,交互式界面生成技術(shù)越來(lái)越受到關(guān)注。反射技術(shù)提供了一種在運(yùn)行時(shí)環(huán)境中,程序動(dòng)態(tài)獲取和維護(hù)類信息、調(diào)用類對(duì)象的方法的手段。目前的主流編程語(yǔ)言都實(shí)現(xiàn)了對(duì)反射技術(shù)的支持,例如,Java語(yǔ)言中的java.lang.reflect包封裝了若干API,通過(guò)這些API,可以運(yùn)行時(shí)加載和使用編譯期間程序未知的類。由于反射技術(shù)具有不需要提前對(duì)目標(biāo)類進(jìn)行編譯的特性,它可以用來(lái)實(shí)現(xiàn)動(dòng)態(tài)界面控件關(guān)聯(lián)事件。反射技術(shù)雖然能夠?qū)崿F(xiàn)復(fù)雜的控件事件,伹對(duì)于處理某些數(shù)量眾多的界面控件所關(guān)聯(lián)的簡(jiǎn)單控件事件則會(huì)導(dǎo)致大量的編碼工作。Java腳本語(yǔ)言允許在運(yùn)行時(shí)環(huán)境中,修改變量的類型及內(nèi)容,以及改變自身執(zhí)行邏輯。BSH腳本解釋器是用Java寫成的小型嵌入式的Java源代碼解釋器,它使用Java反射API來(lái)實(shí)時(shí)解釋執(zhí)行Java語(yǔ)句和表達(dá)式,并可以透明地訪問(wèn)任何Java對(duì)象和API,用來(lái)在運(yùn)行時(shí)動(dòng)態(tài)執(zhí)行預(yù)定義Java腳本實(shí)現(xiàn)控件關(guān)聯(lián)事件,但是其實(shí)現(xiàn)邏輯不易理解,且沒(méi)有成熟的編輯環(huán)境,因而僅能依靠開(kāi)發(fā)人員本身來(lái)保證腳本書(shū)寫的正確性,不適合編寫界面控件所關(guān)聯(lián)的復(fù)雜控件事件。目前,在一般的交互式軟件開(kāi)發(fā)過(guò)程中,常用的開(kāi)發(fā)方式是采用硬編碼的方式生成交互界面。由于硬編碼方法可以實(shí)現(xiàn)設(shè)計(jì)層次非常復(fù)雜,控件非常豐富的用戶界面,在界面代碼編寫量不大的情況下,具有較高的應(yīng)用價(jià)值。但在需要根據(jù)不同的界面請(qǐng)求創(chuàng)建出不同的界面,而且界面請(qǐng)求數(shù)量眾多的情況下,采用硬編碼方式就會(huì)導(dǎo)致開(kāi)發(fā)效率的低下,軟件可維護(hù)性和可擴(kuò)展性的降低。另夕卜,硬編碼的界面生成方法沒(méi)有將業(yè)務(wù)邏輯和界面應(yīng)用邏輯分離,兩者相混雜的結(jié)果會(huì)導(dǎo)致開(kāi)發(fā)過(guò)程的混亂、程序邏輯的不易理解,主要表現(xiàn)在以下兩個(gè)方面(1)系統(tǒng)開(kāi)發(fā)效率不高。由于界面請(qǐng)求數(shù)量眾多,就需要為毎一個(gè)界面請(qǐng)求編寫其業(yè)務(wù)邏輯和界面邏輯,另外界面請(qǐng)求的界面控件無(wú)論在外觀、布局或者操作上呈現(xiàn)很大的相似性,導(dǎo)致很多編碼都是簡(jiǎn)單的重復(fù)性勞動(dòng)。而業(yè)務(wù)邏輯和界面邏輯緊耦合性,使得系統(tǒng)開(kāi)發(fā)人員不僅要關(guān)注業(yè)務(wù)功能的具體實(shí)現(xiàn),還要考慮交互界面的設(shè)計(jì)和呈現(xiàn)方式,無(wú)法將全部精力集中在業(yè)務(wù)邏輯的實(shí)現(xiàn)上,影響了系統(tǒng)開(kāi)發(fā)的效率。(2)系統(tǒng)可維護(hù)性和可擴(kuò)展性不高。對(duì)于每一個(gè)新增的界面請(qǐng)求,都需要重新編寫一套界面邏輯,已有工作的復(fù)用性很低,并且需要重新編譯系統(tǒng)和部署,二次開(kāi)發(fā)效率低下。另外由于界面生成模型和業(yè)務(wù)模型混合在一起使用,當(dāng)業(yè)務(wù)模型發(fā)生改變時(shí),界面模型也隨之發(fā)生相應(yīng)的改變,工作量大并且容易產(chǎn)生新的錯(cuò)誤;同時(shí),隨著界面復(fù)雜程度的增加,界面模型的復(fù)雜度也會(huì)加大,實(shí)現(xiàn)界面模型也會(huì)變得十分困難。造成系統(tǒng)的可維護(hù)性和可擴(kuò)展性都很低。目前提出的界面生成方法在界面請(qǐng)求數(shù)目眾多的情況下,定制界面開(kāi)發(fā)的復(fù)雜度較大,代碼共享度低,尤其無(wú)法減少二次開(kāi)發(fā)的工作量,降低了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種基于XML文檔描述的界面生成方法和平臺(tái)。根據(jù)界面請(qǐng)求,界面生成引擎調(diào)用已編輯好的樣式描述文檔生成界面信息模型,進(jìn)而生成界面控件,并實(shí)現(xiàn)界面控件的關(guān)聯(lián)事件。本方法采用了業(yè)務(wù)模型和界面模型分離的方法和模塊化的設(shè)計(jì)思路,簡(jiǎn)化開(kāi)發(fā)步驟,降低編碼量,提高開(kāi)發(fā)效率,并且各種界面需求都可以生成外觀、風(fēng)格一致的用戶界面,提高了用戶體驗(yàn)。一種基于XML文檔描述的界面生成方法,包括如下步驟步驟1:樣式文檔生成模塊根據(jù)數(shù)據(jù)資源中巳存在界面控件信息,從數(shù)據(jù)資源中讀取界面控件信息,并將資源類型傳遞給數(shù)據(jù)驅(qū)動(dòng)模塊,數(shù)據(jù)驅(qū)動(dòng)模塊查找數(shù)據(jù)資源,并將界面控件信息以原始數(shù)據(jù)資源相應(yīng)的文件格式返回給樣式文檔生成模塊,樣式文檔生成模塊根據(jù)這些界面控件信息和附加的業(yè)務(wù)數(shù)據(jù)生成樣式描述文檔集合,并存儲(chǔ)于系統(tǒng)指定目錄。步驟2:編寫界面請(qǐng)求映射文件,供界面生成引擎調(diào)用,提供界面請(qǐng)求與樣式描述文檔路徑的映射關(guān)系。步驟3:提交的界面請(qǐng)求發(fā)送給界面生成引擎,界面生成引擎根據(jù)界面請(qǐng)求順序查找界面請(qǐng)求映射文件,獲取樣式描述文檔的存儲(chǔ)地址,并查找樣式描述文檔;若與界面請(qǐng)求相一致的樣式描述文檔不存在,則返回相應(yīng)的提示信息,界面生成流程結(jié)束;若該文檔存在,則界面生成引擎根據(jù)樣式描述文檔,調(diào)用樣式文檔解析模塊生成與樣式描述文檔對(duì)應(yīng)的樣式模型樹(shù)。步驟4:界面生成引擎得到樣式模型樹(shù)根節(jié)點(diǎn),根據(jù)根節(jié)點(diǎn)屬性設(shè)置界面布局,接著以深度優(yōu)先方式遍歷此樣式模型樹(shù)。步驟5:如果遍歷的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),則生成界面控件,設(shè)置界面控件的靜態(tài)屬性并依據(jù)在樣式描述文檔中的事件類型在此控件的事件監(jiān)聽(tīng)器中嵌入事件體;若當(dāng)前控件對(duì)應(yīng)的事件含有多個(gè)操作,且其中又包含嵌套調(diào)用,則事件處理采用反lf方式執(zhí)行;反射類定義事件包含的所有操作,通過(guò)反射機(jī)制生成反射類的實(shí)例,利用所調(diào)用的實(shí)例的方法實(shí)現(xiàn)事件體;反之,則事件處理采用腳本方式執(zhí)行;腳本中定義事件體,通過(guò)調(diào)用腳本解析器提供的API執(zhí)行腳本,實(shí)現(xiàn)事件體;若當(dāng)前節(jié)點(diǎn)為中間節(jié)點(diǎn),則繼續(xù)遍歷;直至樣式模型樹(shù)的所有節(jié)點(diǎn)遍歷完畢。所述步驟1中的樣式描述文檔根據(jù)應(yīng)用需求生成,生成時(shí)為樣式描述文檔的集合,用以描述界面控件的布局信息、屬性信息以及事件信息。所述步驟l中的如果數(shù)據(jù)資源中不存在界面控件信息,樣式描述文檔直接采用XML編輯器手工編寫得到,并存儲(chǔ)于系統(tǒng)指定目錄。所述步驟1中的樣式描述文檔采用統(tǒng)一的描述規(guī)范,此描述規(guī)范用一個(gè)schema文件描述,根節(jié)點(diǎn)表示最終生成界面,中間節(jié)點(diǎn)表示一個(gè)界面控件組,葉節(jié)點(diǎn)表示界面包含的控件;其中,根節(jié)點(diǎn)是中間節(jié)點(diǎn)的有序集合,中間節(jié)點(diǎn)是葉節(jié)點(diǎn)的有序集合,各個(gè)中間節(jié)點(diǎn)的相對(duì)順序代表了在最終界面上各組控件的相對(duì)順序,一中間節(jié)點(diǎn)的各個(gè)葉節(jié)點(diǎn)的相對(duì)順序代表了一組控件中的各控件相對(duì)順序;中間節(jié)點(diǎn)表示的界面控件組內(nèi)容既能夠來(lái)自已有的模板樣式描述文檔,也能夠由一組葉節(jié)點(diǎn)構(gòu)成。所述步驟2中的界面請(qǐng)求映射文件采用schema描述,其中葉節(jié)點(diǎn)代表界面請(qǐng)求標(biāo)識(shí)符和樣式描述文檔存儲(chǔ)路徑之間的一對(duì)一映射關(guān)系。所述步驟3中的樣式文檔解析纟莫塊解析樣式描述文檔;若讀取的當(dāng)前節(jié)點(diǎn)是中間節(jié)點(diǎn),且其子節(jié)點(diǎn)來(lái)自已有的模板樣式描述文檔,則繼續(xù)讀取模板文件內(nèi)容,將模板文件中葉節(jié)點(diǎn)添加入現(xiàn)有樣式模型,如果其子節(jié)點(diǎn)直接存在于本樣式描述文檔中,則將此中間節(jié)點(diǎn)的子節(jié)點(diǎn)寫入樣式模型;若樣式模型樹(shù)的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),則直接將其寫入樣式模型;直至解析過(guò)程結(jié)束,得到樣式模型樹(shù)。一種基于XML文檔描述的界面生成平臺(tái),包括如下模塊樣式文檔生成模塊,根據(jù)數(shù)據(jù)資源中已存在界面控件信息,從數(shù)據(jù)資源中讀取界面控件信息,并將資源類型傳遞給數(shù)據(jù)驅(qū)動(dòng),莫塊;并根據(jù)返回的原始數(shù)據(jù)資源相應(yīng)的文件格式生成樣式描述文檔的集合,并存儲(chǔ)于系統(tǒng)指定目錄。數(shù)據(jù)驅(qū)動(dòng)模塊,根據(jù)資源類型査找數(shù)據(jù)資源,并將界面控件信息以原始數(shù)據(jù)資源相應(yīng)的文件格式返回給樣式文檔生成模塊。界面請(qǐng)求映射文件,供界面生成引擎調(diào)用,提供界面請(qǐng)求與樣式描述文檔路徑的映射關(guān)系。界面生成引擎,根據(jù)提交的界面請(qǐng)求順序査找界面請(qǐng)求映射文件,獲取樣式描述文檔的存儲(chǔ)地址,并査找樣式描述文檔;若與界面請(qǐng)求相一致的樣式描述文檔不存在,則返回相應(yīng)的提示信息,界面生成流程結(jié)束;若該文檔存在,則根據(jù)樣式描述文檔,生成與之對(duì)應(yīng)的樣式模型樹(shù);并得到樣式模型樹(shù)根節(jié)點(diǎn),根據(jù)根節(jié)點(diǎn)屬性設(shè)置界面布局,接著以深度優(yōu)先方式遍歷此樣式模型樹(shù);如果遍歷的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),則生成界面控件,設(shè)置界面控件的靜態(tài)屬性并依據(jù)在樣式描述文檔中的事件類型在此控件的事件監(jiān)聽(tīng)器中嵌入事件體;若此控件對(duì)應(yīng)的事件含有多個(gè)操作,且其中又包含嵌套調(diào)用,則事件處理采用反射方式執(zhí)行;反射類定義事件包含的所有操作,通過(guò)反射機(jī)制生成反射類的實(shí)例,利用所調(diào)用的實(shí)例的方法實(shí)現(xiàn)事件體;反之,則事件處理釆用腳本方式執(zhí)行;腳本中定義事件體,通過(guò)調(diào)用腳本解析器提供的API執(zhí)行腳本,實(shí)現(xiàn)事件體;若當(dāng)前節(jié)點(diǎn)為中間節(jié)點(diǎn),則繼續(xù)遍歷;直至樣式模型樹(shù)的所有節(jié)點(diǎn)遍歷完畢。樣式文檔解析模塊,生成與樣式描述文檔對(duì)應(yīng)的樣式模型樹(shù)。所述樣式文檔生成模塊根據(jù)應(yīng)用需求生成樣式描述文檔,生成時(shí)為樣式描述文檔的集合,用以描述界面控件的布局信息、屬性信息以及事件信息。所述樣式文檔生成模塊中如果數(shù)據(jù)資源中不存在界面控件信息,樣式描述文檔直接采用XML編輯器手工編寫得到,并存儲(chǔ)于系統(tǒng)指定目錄。所述樣式文檔生成模塊生成的樣式描述文檔采用統(tǒng)一的描述規(guī)范,此描述規(guī)范用一個(gè)schema文件描述,根節(jié)點(diǎn)表示最終生成界面,中間節(jié)點(diǎn)表示一個(gè)界面控件組,葉節(jié)點(diǎn)表示界面包含的控件;其中,根節(jié)點(diǎn)是中間節(jié)點(diǎn)的有序集合,中間節(jié)點(diǎn)是葉節(jié)點(diǎn)的有序集合,各個(gè)中間節(jié)點(diǎn)的相對(duì)順序代表了在最終界面上各組控件的相對(duì)順序,一中間節(jié)點(diǎn)的各個(gè)葉節(jié)點(diǎn)的相對(duì)順序代表了一組控件中的各控件相對(duì)順序;中間節(jié)點(diǎn)表示的界面控件組內(nèi)容既能夠來(lái)自已有的模板樣式描述文檔,也能夠由一組葉節(jié)點(diǎn)構(gòu)成。所述界面請(qǐng)求映射文件采用一個(gè)schema文件描述,其中葉節(jié)點(diǎn)代表界面請(qǐng)求標(biāo)識(shí)符和樣式描述文檔存儲(chǔ)路徑之間的一對(duì)一映射關(guān)系。所述樣式文檔解析,莫塊解析樣式描述文檔;若讀取的當(dāng)前節(jié)點(diǎn)是中間節(jié)點(diǎn),且其子節(jié)點(diǎn)來(lái)自已有的模板樣式描述文檔,則繼續(xù)讀取模板文件內(nèi)容,將模板文件中葉節(jié)點(diǎn)添加入現(xiàn)有樣式模型,如果其子節(jié)點(diǎn)直接存在于本樣式描述文檔中,則將此中間節(jié)點(diǎn)的子節(jié)點(diǎn)寫入樣式模型;若樣式模型樹(shù)的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),則直接將其寫入樣式模型;直至解析過(guò)程結(jié)束,得到樣式模型樹(shù)。本發(fā)明一種基于XML文檔描述的界面生成方法和平合,相對(duì)于傳統(tǒng)的設(shè)計(jì)方式,本發(fā)明的優(yōu)點(diǎn)在于(1)本發(fā)明降低了系統(tǒng)開(kāi)發(fā)的復(fù)雜性。由于界面設(shè)計(jì)工作與系統(tǒng)功能實(shí)現(xiàn)工作分離,將系統(tǒng)開(kāi)發(fā)人員從繁冗的界面設(shè)計(jì)工作中解脫出來(lái),更多的精力可以放在系統(tǒng)的設(shè)計(jì)和功能的實(shí)現(xiàn)上。而界面開(kāi)發(fā)人員可以通過(guò)對(duì)具體業(yè)務(wù)的深入研究,設(shè)計(jì)更貼近用戶使用習(xí)慣和方式的用戶界面。(2)本發(fā)明有助于提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。修改樣式描述文檔就可以實(shí)現(xiàn)對(duì)界面上控件的增加、刪除、更新等操作,并且這些改變?cè)谙麓谓缑嬲?qǐng)求到來(lái)時(shí)就可以呈現(xiàn)出來(lái),不需要重新編譯和部署系統(tǒng)。避免了硬編碼方式中,所有內(nèi)容混雜在一起的缺點(diǎn),對(duì)系統(tǒng)的維護(hù)和新界面生成需求的滿足提供了便利。(3)本發(fā)明有助于提高系統(tǒng)開(kāi)發(fā)過(guò)程對(duì)已有工作的復(fù)用性。根據(jù)對(duì)系統(tǒng)界面需求的分析和總結(jié),構(gòu)造一些代表一類通用界面需求的模板界面文檔,編寫樣式描述文檔時(shí)直接引用這些模板界面文檔,從而提高已有工作的復(fù)用性。隨著系統(tǒng)開(kāi)發(fā)的進(jìn)行,模板界面文檔會(huì)逐漸積累,其可復(fù)用度提高,進(jìn)一步提高系統(tǒng)開(kāi)發(fā)效率。(4)本發(fā)明采用反射和腳本技術(shù)相結(jié)合的方式實(shí)現(xiàn)控件關(guān)聯(lián)事件,當(dāng)控件對(duì)應(yīng)的事件含有多個(gè)操作,且其中又包含嵌套調(diào)用的情況下采用反射技術(shù),其他情況則采用腳本技術(shù)。兩種技術(shù)分別處理自己優(yōu)勢(shì)的事件類型,從而增強(qiáng)了平臺(tái)應(yīng)對(duì)控件事件的靈活性,并提高開(kāi)發(fā)效率。圖1為本發(fā)明一種基于XML文檔描述的界面生成方法的模塊關(guān)系圖;圖2為本發(fā)明一種基于XML文檔描述的界面生成方法的流程圖;圖3為本發(fā)明一種基于XML文檔描述的界面生成方法的樣式描述文檔格式規(guī)范schema}圖4為本發(fā)明一種基于XML文檔描述的界面生成方法的樣式描述文檔實(shí)例;圖5為本發(fā)明一種基于XML文檔描述的界面生成方法的界面請(qǐng)求映射文件格式規(guī)范schema,圖6為本發(fā)明一種基于XML文檔描述的界面生成方法的界面請(qǐng)求映射文件實(shí)例;圖7為本發(fā)明一種基于XML文檔描述的界面生成方法和平臺(tái)的界面生成效果圖。圖中l(wèi).樣式文檔生成模塊IOI.樣式描述文檔102.業(yè)務(wù)數(shù)據(jù)2.數(shù)據(jù)驅(qū)動(dòng)模塊3.界面生成引擎301.最終界面302.SWT控件集4.樣式文檔解析模塊401.樣式模型樹(shù)5.界面請(qǐng)求映射文件6.數(shù)據(jù)資源具體實(shí)施方式下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。一種基于XML文檔描述的界面生成平臺(tái),如圖1所示,包括樣式文檔生成模塊1、數(shù)據(jù)驅(qū)動(dòng)模塊2、界面生成引擎3、樣式文檔解析模塊4和界面請(qǐng)求映射文件5。樣式文檔生成模塊1根據(jù)需求生成樣式描述文檔101。數(shù)據(jù)驅(qū)動(dòng)模塊2根據(jù)樣式文檔生成模塊1的控制信息在數(shù)據(jù)資源6中査找對(duì)應(yīng)的數(shù)據(jù)資源,并將界面控件信息以原始數(shù)據(jù)資源相應(yīng)的文件格式返回給樣式文檔生成模塊1。界面生成引擎3根據(jù)樣式模型樹(shù)401和界面請(qǐng)求映射文件5并調(diào)用SWT控件集302生成最終界面301。樣式文檔解析模塊1生成與樣式描述文檔101對(duì)應(yīng)的樣式模型樹(shù)401。界面請(qǐng)求映射文件5提供了界面請(qǐng)求與樣式描述文檔101路徑的映射關(guān)系。界面請(qǐng)求通過(guò)界面生成引擎3提交,界面生成引擎3根據(jù)界面請(qǐng)求順序查找編寫好的界面請(qǐng)求映射文件5,獲取樣式描述文檔101的存儲(chǔ)地址。樣式文檔生成模塊1連接數(shù)據(jù)驅(qū)動(dòng)模塊2,將數(shù)據(jù)資源6中的界面控件信息傳遞給數(shù)據(jù)驅(qū)動(dòng)纟莫塊2,數(shù)據(jù)驅(qū)動(dòng)模塊2將界面控件信息以原始數(shù)據(jù)資源相應(yīng)的文件格式返回給樣式文檔生成模塊1,樣式文檔生成模塊1根據(jù)得到的界面控件信息和附加的業(yè)務(wù)數(shù)據(jù)102生成樣式描述文檔101的集合。界面生成引擎3查找樣式描述文檔101,調(diào)用樣式文檔解析模塊4生成與樣式描述文檔101對(duì)應(yīng)的樣式模型樹(shù)401。界面生成引擎3得到樣式模型樹(shù)401的根節(jié)點(diǎn),根據(jù)根節(jié)點(diǎn)屬性設(shè)置界面布局,接著以深度優(yōu)先方式遍歷此樣式模型樹(shù)401,用反射機(jī)制和腳本方式生成樣式模型樹(shù)401的葉節(jié)點(diǎn)對(duì)應(yīng)界面控件的監(jiān)聽(tīng)器的事件執(zhí)行代碼,調(diào)用SWT控件集302生成界面控件并形成最終界面301。一種基于XML文檔描述的界面生成方法,結(jié)合圖2說(shuō)明其流程,包括如下步驟步驟一樣式文檔生成模塊1根據(jù)需求生成樣式描述文檔101。樣式描述文檔101有兩種生成方式,如果數(shù)據(jù)資源6中不存在界面控件信息,則使用XML編輯器手工編寫;反之則由樣式文檔生成模塊1調(diào)用數(shù)據(jù)驅(qū)動(dòng)模塊2實(shí)現(xiàn),數(shù)據(jù)驅(qū)動(dòng)模塊2訪問(wèn)數(shù)據(jù)資源6得到界面樣式信息,界面樣式信息在數(shù)據(jù)資源6中的存儲(chǔ)格式依照數(shù)據(jù)資源類型各有不同,例如,數(shù)據(jù)庫(kù)中則按字段存儲(chǔ),文件中則以文本方式存儲(chǔ)。通過(guò)屏蔽數(shù)據(jù)來(lái)源的差異以及不同數(shù)據(jù)來(lái)源其數(shù)據(jù)格式的不同,數(shù)據(jù)驅(qū)動(dòng)模塊2為樣式文檔生成模塊1提供一個(gè)一致的調(diào)用接口。本實(shí)施例中,界面樣式信息由數(shù)據(jù)驅(qū)動(dòng)模塊2訪問(wèn)數(shù)據(jù)資源6得到,資源類型為數(shù)據(jù)庫(kù)資源,采用的數(shù)據(jù)庫(kù)為Oracle9i,版本號(hào)為9.2.0.1.0。樣式文檔生成模塊1將資源類型發(fā)送給數(shù)據(jù)驅(qū)動(dòng)模塊2,數(shù)據(jù)驅(qū)動(dòng)模塊2根據(jù)此資源類型連接相應(yīng)的數(shù)據(jù)資源6。數(shù)據(jù)驅(qū)動(dòng)模塊2連接數(shù)據(jù)庫(kù)UIDB,從數(shù)據(jù)庫(kù)中査找界面樣式信息表UIINFO,得到所需記錄構(gòu)成的結(jié)果集,并返回給樣式文檔生成模塊l,后者依照樣式描述文檔規(guī)范schema,遍歷該結(jié)果集,根據(jù)需要添加業(yè)務(wù)數(shù)據(jù)102生成樣式描述文檔101的集合。這些樣式描述文檔101描述了針對(duì)不同界面請(qǐng)求的目標(biāo)界面的布局信息、控件的屬性信息和事件信息,并存儲(chǔ)于系統(tǒng)指定目錄下。采用界面控件描述規(guī)范schema可以使生成的界面控件描述文檔具有統(tǒng)一的格式,從而界面生成引擎3可以采用同一個(gè)方法生成界面,提高生成效率。樣式描述文檔101的規(guī)范schema具體內(nèi)容如圖3所示,包括以下內(nèi)容:界面標(biāo)示Page,包括布局信息(layout)和組標(biāo)示(Group);組標(biāo)示Group,包括組標(biāo)識(shí)符(name)、引用模板文件路徑(reuseRef)和控件標(biāo)示(Control);控件標(biāo)示Control,包括屬性信息(標(biāo)識(shí)符name、控件數(shù)據(jù)來(lái)源類型dsType、控件數(shù)據(jù)源dataSource、是否可編輯標(biāo)示editable、控件類型ctrType)和事件信息(事件類型eventType、事件體eventMethod)。以樣式描述文檔101采用樣式描述文檔集合中的fromDBUI.xml為例進(jìn)行說(shuō)明各個(gè)屬性的具體含義。如圖4所示,Page表示一個(gè)界面,其布局屬性layout值為"grid",表示釆用GridLayout來(lái)設(shè)置界面上控件的布局。Group表示一個(gè)可復(fù)用的界面控件組,其屬性name值為"upGroup",即其標(biāo)識(shí)符;屬性reuseRef值為"getlnstComp.xml",表示upGroup的內(nèi)容來(lái)自getlnstComp.xml文件,這樣引用現(xiàn)有的模板文件既能減少界面開(kāi)發(fā)人員的工作量,也可縮短文檔長(zhǎng)度,使其便于開(kāi)發(fā)人員理解;若屬性reuseRef值為空,則表示本Group內(nèi)容由Control的有序集合構(gòu)成。Control表示界面控件,其屬性name表示本控件的標(biāo)識(shí)符,值為"cheCkbutton_l";屬性dsType表示控件的數(shù)據(jù)來(lái)源類型,有3種可選項(xiàng)如果dsType的值為0,表示控件數(shù)據(jù)值為屬性dataSource的值,直接讀取dataSource的值即可;如果dsType的值為1,表示控件數(shù)據(jù)來(lái)源于dataSource屬性,伹需要按照自定義規(guī)則解析后才能得到真正的控件數(shù)據(jù);如果dsType的值為2,表示控件數(shù)據(jù)具體由業(yè)務(wù)數(shù)據(jù)來(lái)決定,屬性dataSource的值為業(yè)務(wù)數(shù)據(jù)的接口,引擎通過(guò)調(diào)用此接口,得到真正的控件數(shù)據(jù)。此處屬性daType值為O,說(shuō)明dataSource屬性值即本控件的數(shù)據(jù)內(nèi)容;屬性editable用來(lái)指示控件是否可編輯,此處值為true,說(shuō)明此控件可編輯;屬性ctrType為"checkbutton",即這個(gè)控件類型為復(fù)選按鈕;屬性eventType表示與控件關(guān)聯(lián)的事件類型,有3種選項(xiàng)如果eventType的值為0,表示本控件無(wú)關(guān)聯(lián)事件;如果eventType的值為1,表示以腳本方式執(zhí)行事件;如果eventType的值為2,表示以反射方式執(zhí)行事件。此處屬性eventType值為1,說(shuō)明這個(gè)控件關(guān)聯(lián)的事件采用腳本方式實(shí)現(xiàn);本實(shí)施例中其他的xml文件的相應(yīng)標(biāo)示也相同。在此文檔中,Page是Group的有序集合,Group是Control的有序集合,各個(gè)Group的相對(duì)順序代表了在最終界面上的各Group的相對(duì)順序,各個(gè)Control的相對(duì)順序也代表了在最終界面上的一個(gè)Group中Control的相對(duì)順序。步驟二編寫界面請(qǐng)求映射文件5,供界面生成引擎3調(diào)用,提供界面請(qǐng)求與樣式描述文檔101路徑的一對(duì)一映射關(guān)系;界面請(qǐng)求映射文件5的schema如圖5所示,包括如下內(nèi)容根標(biāo)示Root,包括映射標(biāo)示(Mapping);映射標(biāo)示Mapping,包括界面請(qǐng)求(UIID)和樣式描述文檔101的路徑(Path)。下面根據(jù)界面請(qǐng)求映射文件5的schema編寫示例界面請(qǐng)求映射文件mapping.xml,如圖6所示,葉節(jié)點(diǎn)Mapping表示一個(gè)界面請(qǐng)求-樣式描述文檔101的映射關(guān)系,如果到來(lái)的界面請(qǐng)求UIID為字符串"1",則對(duì)應(yīng)的樣式描述文檔101的路徑Path為fromDBUI.xml,這個(gè)文檔路徑會(huì)返回給界面生成引擎3。通過(guò)這個(gè)文檔的映射作用,將由弓l擎無(wú)法解析的界面請(qǐng)求信息得到其能夠解析的路徑信息。步驟三界面請(qǐng)求發(fā)送給界面生成引擎3,順序查找界面請(qǐng)求映射配置文件5,根據(jù)得到的路徑查找對(duì)應(yīng)的樣式描述文檔101并生成與之對(duì)應(yīng)的樣式模型樹(shù)401。本實(shí)施例中,界面請(qǐng)求為字符串"1",當(dāng)界面生成引擎3得到此界面請(qǐng)求后,遍歷界面請(qǐng)求映射文件mapping.xml獲取樣式描述文檔101的存儲(chǔ)路徑fromDBUI.xml。若在系統(tǒng)指定目錄下査找fromDBUI.xml不成功,則返回相應(yīng)的提示信息,界面生成流程結(jié)束;若查找成功,則界面生成引擎3調(diào)用樣式文檔解析模塊4提供的getParser(展口,得到解析器實(shí)例,解析器實(shí)例調(diào)用JDOMAPI,以樣式描述文檔101絕對(duì)路徑作為參數(shù)傳入JDOMAPI中的parse(Stringpath)方法,解析得到界面信息模型。解析過(guò)程中,若Group的reuseRef屬性值不為空,則繼續(xù)讀取模板文件內(nèi)容,將其內(nèi)容添加入現(xiàn)有樣式模型樹(shù)401。直至解析流程結(jié)束,樣式模型樹(shù)401生成完畢。本實(shí)施例中生成的樣式模型樹(shù)401的根節(jié)點(diǎn)為ControlModdPage類,包含界面的布局信息屬性以及一個(gè)列表ListGroup,是中間節(jié)點(diǎn)ControlModelGroup類的有序集合。ControlModelGroup類包含組控件信息以及一個(gè)列表ListControler,是葉節(jié)點(diǎn)ControlModel類的有序集合。ControlModel類對(duì)應(yīng)一個(gè)具體的控件,包含此控件的所有靜態(tài)屬性和事件信息;樣式模型樹(shù)提供接口getControlModelPage(),根據(jù)這個(gè)接口得到此模型樹(shù)的根節(jié)點(diǎn)ControlModelPage類。步驟四:界面生成引擎3得到樣式模型樹(shù)401的根節(jié)點(diǎn),根據(jù)根節(jié)點(diǎn)屬性設(shè)置界面布局,接著以深度優(yōu)先方式遍歷此樣式模型樹(shù)401;此樣式模型以樹(shù)結(jié)構(gòu)形態(tài)存儲(chǔ)于內(nèi)存中,起到數(shù)據(jù)緩存的作用,之后的操作完全在內(nèi)存中進(jìn)行,這種方式能夠大大減少界面生成過(guò)程中界面生成引擎3與樣式描述文檔101的IO交互次數(shù),提高界面生成效率。本實(shí)施例中,ControlModelPage類中布局屬性layout值為"grid",表示采用SWT提供的GridLayout來(lái)設(shè)置界面上控件的布局。步驟五界面生成引擎3遍歷此樣式模型樹(shù)401,如果遍歷的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),調(diào)用SWT控件集302中對(duì)應(yīng)控件類生成界面控件,設(shè)置界面控件的靜態(tài)屬性,并依據(jù)在樣式描述文檔101中的事件類型在此控件的事件監(jiān)聽(tīng)器中嵌入事件體;若當(dāng)前控件對(duì)應(yīng)的事件含有操作較少,調(diào)用簡(jiǎn)單,則事件處理采用腳本方式執(zhí)行。以本實(shí)施例中名為combo」的界面控件生成過(guò)程說(shuō)明一個(gè)界面控件的生成流程首先根據(jù)其ctrType屬性為"combo",選取SWT控件集中相應(yīng)org.eclipse.swt.widgets.Combo類來(lái)模擬生成此控件,具體執(zhí)行代碼org.eclipse.swt.widgets.Combocb=newCombo(group,SWT.BORDER),構(gòu)造了一個(gè)下拉框控件。接下來(lái)為此下拉框設(shè)加入數(shù)據(jù),由于其dsType屬性為'T,則讀取其dataSource屬性值"放電:1;充電:0",并循環(huán)執(zhí)行combo.add(key),combo.setData(key,value)將數(shù)據(jù)填入。接下來(lái)為此下拉框的監(jiān)聽(tīng)器添加事件執(zhí)行代碼,由于其eventType屬性為"r,因此采用腳本方式,eventMethod屬性為"script2.txt",即執(zhí)行腳本存放于script2.txt文件中,接著調(diào)用BSH腳本解析器提供的Interpreter類的source(String)接口執(zhí)行,具體代碼為newIntepreter().source("script2.txt"),將其放入org.eclipse.swt.widgets.Combo類的實(shí)例cb的監(jiān)聽(tīng)器中。當(dāng)界面生成完畢后,用戶操作激發(fā)本下拉框控件事件體中腳本文件script2.txt的執(zhí)行。若當(dāng)前控件對(duì)應(yīng)的事件含有多個(gè)操作,且其中又包含嵌套調(diào)用,則事件處理采用反射方式執(zhí)行。以本實(shí)施例中名為button_l的界面控件生成過(guò)程說(shuō)明一個(gè)界面控件的生成流程首先根據(jù)其ctrType屬性為"button",選取SWT控件集中相應(yīng)org.eclipse.swt.widgets.Button類來(lái)模擬生成此控件,具體執(zhí)行代碼org.eclipse.swt.widgets.Buttonbt=newButton(group,SWT.NONE),構(gòu)造了一個(gè)按鈕控件。接下來(lái)為此按鈕加入數(shù)據(jù),由于其dsType屬性為"0",則讀取其dataSource屬性值"選擇時(shí)間參數(shù)",調(diào)用bt.setText(dataSource)方法將數(shù)據(jù)填入。接下來(lái)為此按鈕的監(jiān)聽(tīng)器添加事件執(zhí)行代碼,由于其eventType屬性為"2",因此采用反射方式,eventMethod屬性為"its.prepare.atomedit.properties.control.ParamDialog",勞卩么接著禾!j用Java反射機(jī)制的類庫(kù)java.lang.reflect包得到反射類實(shí)例,接著將調(diào)用其執(zhí)行方法代碼放入org.eclipse.swt.widgets.Button類的實(shí)例bt的監(jiān)聽(tīng)器中。當(dāng)界面生成完畢后,用戶操作激發(fā)本按鈕控件事件體中反射類its.prepare.atomedit.properties.control.ParamDialog實(shí)例的執(zhí)行方法createSubDialog(),此方法的執(zhí)行會(huì)打開(kāi)一個(gè)時(shí)間參數(shù)選擇子窗口。若當(dāng)前節(jié)點(diǎn)為中間節(jié)點(diǎn),則繼續(xù)遍歷;直至樣式模型樹(shù)401的所有節(jié)點(diǎn)遍歷完畢。界面生成完畢,本方法結(jié)束,最終界面301呈現(xiàn)。圖7為最終效果圖。如圖7所示,界面的上部為引用已有模板生成的控件組,調(diào)用模版getInstComp.xml生成;中間部分是依據(jù)樣式描述文檔101生成的控件組,其中的下拉框釆用腳本方式生成,文本為"選擇時(shí)間參數(shù)"的按鈕采用Java反射機(jī)制的類庫(kù)java.lang.reflect包生成;下部是引用巳有模板生成的控件組,調(diào)用模版getResultComp.xml生成。兩個(gè)模板文件的使用,使得該界面的樣式描述文檔101的長(zhǎng)度縮短了將近2/3,在增加已有工作的復(fù)用性同時(shí),也減少了界面開(kāi)發(fā)人員的工作量。在本實(shí)施例中,采用樣式模型緩存樣式描述文件101,減少了界面生成引擎3讀取文件的次數(shù),提高界面生成引擎3的執(zhí)行效率;分析特定應(yīng)用背景下的界面的特點(diǎn),預(yù)編寫反映通用界面需求的模板文件,通過(guò)引用這些模板文件,提高已有工作的可復(fù)用性,減少二次開(kāi)發(fā)階段的工作量。綜上所述,本發(fā)明是界面請(qǐng)求眾多的情況下,生成相應(yīng)界面的一種有效方案,通過(guò)本發(fā)明,簡(jiǎn)化了用戶界面的開(kāi)發(fā)量和開(kāi)發(fā)難度,可以應(yīng)用到管理信息系統(tǒng)(MIS)等具有類似界面需求的應(yīng)用中去。權(quán)利要求1、一種基于XML文檔描述的界面生成方法,其特征在于,包括如下步驟步驟一樣式文檔生成模塊根據(jù)數(shù)據(jù)資源中已存在界面控件信息,從數(shù)據(jù)資源中讀取界面控件信息,并將資源類型傳遞給數(shù)據(jù)驅(qū)動(dòng)模塊,數(shù)據(jù)驅(qū)動(dòng)模塊查找數(shù)據(jù)資源,并將界面控件信息以原始數(shù)據(jù)資源相應(yīng)的文件格式返回給樣式文檔生成模塊,樣式文檔生成模塊根據(jù)這些界面控件信息和附加的業(yè)務(wù)數(shù)據(jù)生成樣式描述文檔集合,并存儲(chǔ)于系統(tǒng)指定目錄;步驟二編寫界面請(qǐng)求映射文件,供界面生成引擎調(diào)用,提供界面請(qǐng)求與樣式描述文檔路徑的映射關(guān)系;步驟三提交的界面請(qǐng)求發(fā)送給界面生成引擎,界面生成引擎根據(jù)界面請(qǐng)求順序查找界面請(qǐng)求映射文件,獲取樣式描述文檔的存儲(chǔ)地址,并查找樣式描述文檔;若與界面請(qǐng)求相一致的樣式描述文檔不存在,則返回相應(yīng)的提示信息,界面生成流程結(jié)束;若該文檔存在,則界面生成引擎根據(jù)樣式描述文檔,調(diào)用樣式文檔解析模塊生成與樣式描述文檔對(duì)應(yīng)的樣式模型樹(shù);步驟四界面生成引擎得到樣式模型樹(shù)根節(jié)點(diǎn),根據(jù)根節(jié)點(diǎn)屬性設(shè)置界面布局,接著以深度優(yōu)先方式遍歷此樣式模型樹(shù);步驟五如果遍歷的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),則生成界面控件,設(shè)置界面控件的靜態(tài)屬性并依據(jù)在樣式描述文檔中的事件類型在此控件的事件監(jiān)聽(tīng)器中嵌入事件體;若當(dāng)前控件對(duì)應(yīng)的事件含有多個(gè)操作,且其中又包含嵌套調(diào)用,則事件處理采用反射方式執(zhí)行;反射類定義事件包含的所有操作,通過(guò)反射機(jī)制生成反射類的實(shí)例,利用所調(diào)用的實(shí)例的方法實(shí)現(xiàn)事件體;反之,則事件處理采用腳本方式執(zhí)行;腳本中定義事件體,通過(guò)調(diào)用腳本解析器提供的API執(zhí)行腳本,實(shí)現(xiàn)事件體;若當(dāng)前節(jié)點(diǎn)為中間節(jié)點(diǎn),則繼續(xù)遍歷;直至樣式模型樹(shù)的所有節(jié)點(diǎn)遍歷完畢。2、根據(jù)權(quán)利要求1所述一種基于XML文檔描述的界面生成方法,其特征在于所述步驟一中的樣式描述文檔根據(jù)應(yīng)用需求生成,生成時(shí)為樣式描述文檔的集合,用以描述界面控件的布局信息、屬性信息以及事件信息。3、根據(jù)權(quán)利要求1所述一種基于XML文檔描述的界面生成方法,其特征在于所述步驟一中的如果數(shù)據(jù)資源中不存在界面控件信息,樣式描述文檔直接采用XML編輯器手工編寫得到,并存儲(chǔ)于系統(tǒng)指定目錄。4、根據(jù)權(quán)利要求1所述一種基于XML文檔描述的界面生成方法,其特征在于所述步驟一中的樣式描述文檔釆用統(tǒng)一的描述規(guī)范,此描述規(guī)范用一個(gè)schema文件描述,根節(jié)點(diǎn)表示最終生成界面,中間節(jié)點(diǎn)表示一個(gè)界面控件組,葉節(jié)點(diǎn)表示界面包含的控件;其中,根節(jié)點(diǎn)是中間節(jié)點(diǎn)的有序集合,中間節(jié)點(diǎn)是葉節(jié)點(diǎn)的有序集合,各個(gè)中間節(jié)點(diǎn)的相對(duì)順序代表了在最終界面上各組控件的相對(duì)順序,一中間節(jié)點(diǎn)的各個(gè)葉節(jié)點(diǎn)的相對(duì)順序代表了一組控件中的各控件相對(duì)順序;中間節(jié)點(diǎn)表示的界面控件組內(nèi)容既能夠來(lái)自已有的模板樣式描述文檔,也能夠由一組葉節(jié)點(diǎn)構(gòu)成。5、根據(jù)權(quán)利要求1所述一種基于XML文檔描述的界面生成方法,其特征在于所述步驟二中的界面請(qǐng)求映射文件采用一個(gè)schema文件描述,其中葉節(jié)點(diǎn)代表界面請(qǐng)求標(biāo)識(shí)符和樣式描述文檔存儲(chǔ)路徑之間的一對(duì)一映射關(guān)系。6、根據(jù)權(quán)利要求1所述一種基于XML文檔描述的界面生成方法,其特征在于所述步驟三中的樣式文檔解析模塊解析樣式描述文檔;若讀取的當(dāng)前節(jié)點(diǎn)是中間節(jié)點(diǎn),且其子節(jié)點(diǎn)來(lái)自已有的模板樣式描述文檔,則繼續(xù)讀取模板文件內(nèi)容,將模板文件中葉節(jié)點(diǎn)添加入現(xiàn)有樣式模型,如果其子節(jié)點(diǎn)直接存在于本樣式描述文檔中,則將此中間節(jié)點(diǎn)的子節(jié)點(diǎn)寫入樣式模型;若樣式模型樹(shù)的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),貝惶接將其寫入樣式模型;直至解析過(guò)程結(jié)束,得到樣式模型樹(shù)。7、一種基于XML文檔描述的界面生成平臺(tái),其特征在于,包括如下模塊樣式文檔生成模塊,根據(jù)數(shù)據(jù)資源中已存在界面控件信息,從數(shù)據(jù)資源中讀取界面控件信息,并將資源類型傳遞給數(shù)據(jù)驅(qū)動(dòng)模塊;并根據(jù)返回的原始數(shù)據(jù)資源相應(yīng)的文件格式生成樣式描述文檔的集合,并存儲(chǔ)于系統(tǒng)指定目錄;數(shù)據(jù)驅(qū)動(dòng)模塊,根據(jù)資源類型査找數(shù)據(jù)資源,并將界面控件信息以原始數(shù)據(jù)資源相應(yīng)的文件格式返回給樣式文檔生成,莫塊;界面請(qǐng)求映射文件,供界面生成引擎調(diào)用,提供界面請(qǐng)求與樣式描述文檔路徑的映射關(guān)系;界面生成引擎,根據(jù)提交的界面請(qǐng)求順序查找界面請(qǐng)求映射文件,獲取樣式描述文檔的存儲(chǔ)地址,并查找樣式描述文檔;若與界面請(qǐng)求相一致的樣式描述文檔不存在,則返回相應(yīng)的提示信息,界面生成流程結(jié)束;若該文檔存在,則根據(jù)樣式描述文檔,生成與之對(duì)應(yīng)的樣式模型樹(shù);并得到樣式模型樹(shù)根節(jié)點(diǎn),根據(jù)根節(jié)點(diǎn)屬性設(shè)置界面布局,接著以深度優(yōu)先方式遍歷此樣式模型樹(shù);如果遍歷的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),則生成界面控件,設(shè)置界面控件的靜態(tài)屬性并依據(jù)在樣式描述文檔中的事件類型在此控件的事件監(jiān)聽(tīng)器中嵌入事件體;若本控件對(duì)應(yīng)的事件含有多個(gè)操作,且其中又包含嵌套調(diào)用,則事件處理采用反射方式執(zhí)行;反射類定義事件包含的所有操作,通過(guò)反射機(jī)制生成反射類的實(shí)例,利用所調(diào)用的實(shí)例的方法實(shí)現(xiàn)事件體;反之,則事件處理采用腳本方式執(zhí)行;腳本中定義事件體,通過(guò)調(diào)用腳本解析器提供的API執(zhí)行腳本,實(shí)現(xiàn)事件體;若當(dāng)前節(jié)點(diǎn)為中間節(jié)點(diǎn),則繼續(xù)遍歷;直至樣式模型樹(shù)的所有節(jié)點(diǎn)遍歷完畢;樣式文檔解析模塊,生成與樣式描述文檔對(duì)應(yīng)的樣式,莫型樹(shù)。8、根據(jù)權(quán)利要求7所述一種基于XML文檔描述的界面生成平臺(tái),其特征在于所述樣式文檔生成模塊根據(jù)應(yīng)用需求生成樣式描述文檔,生成時(shí)為樣式描述文檔的集合,用以描述界面控件的布局信息、屬性信息以及事件信息。9、根據(jù)權(quán)利要求7所述一種基于XML文檔描述的界面生成平臺(tái),其特征在于所述樣式文檔生成模塊中如果數(shù)據(jù)資源中不存在界面控件信息,樣式描述文檔直接采用XML編輯器手工編寫得到,并存儲(chǔ)于系統(tǒng)指定目錄。10、根據(jù)權(quán)利要求7所述一種基于XML文檔描述的界面生成平臺(tái),其特征在于所述樣式文檔生成模塊生成的樣式描述文檔采用統(tǒng)一的描述規(guī)范,此描述規(guī)范用一個(gè)schema文件描述,根節(jié)點(diǎn)表示最終生成界面,中間節(jié)點(diǎn)表示一個(gè)界面控件組,葉節(jié)點(diǎn)表示界面包含的控件;其中,根節(jié)點(diǎn)是中間節(jié)點(diǎn)的有序集合,中間節(jié)點(diǎn)是葉節(jié)點(diǎn)的有序集合,各個(gè)中間節(jié)點(diǎn)的相對(duì)順序代表了在最終界面上各組控件的相對(duì)順序,一中間節(jié)點(diǎn)的各個(gè)葉節(jié)點(diǎn)的相對(duì)順序代表了一組控件中的各控件相對(duì)順序;中間節(jié)點(diǎn)表示的界面控件組內(nèi)容既能夠來(lái)自已有的模板樣式描述文檔,也能夠由一組葉節(jié)點(diǎn)構(gòu)成。11、根據(jù)權(quán)利要求7所述一種基于XML文檔描述的界面生成平臺(tái),其特征在于所述界面請(qǐng)求映射文件采用一個(gè)schema文件描述,其中葉節(jié)點(diǎn)代表界面請(qǐng)求標(biāo)識(shí)符和樣式描述文檔存儲(chǔ)路徑之間的一對(duì)一映射關(guān)系。12、根據(jù)權(quán)禾頓求7所述一種基于XML文檔描述的界面生成平臺(tái),其特征在于所述樣式文檔解析模塊解析樣式描述文檔;若讀取的當(dāng)前節(jié)點(diǎn)是中間節(jié)點(diǎn),且其子節(jié)點(diǎn)來(lái)自已有的模板樣式描述文檔,則繼續(xù)讀取模板文件內(nèi)容,將4莫板文件中葉節(jié)點(diǎn)添加入現(xiàn)有樣式4莫型,如果其子節(jié)點(diǎn)直接存在于本樣式描述文檔中,則將此中間節(jié)點(diǎn)的子節(jié)點(diǎn)寫入樣式模型;若樣式模型樹(shù)的當(dāng)前節(jié)點(diǎn)為葉節(jié)點(diǎn),則直接將其寫入樣式模型;直至解析過(guò)程結(jié)束,得到樣式模型樹(shù)。全文摘要本發(fā)明提出了一種基于XML文檔描述的界面生成方法和平臺(tái)。界面生成引擎查找編寫好的界面請(qǐng)求映射文件,獲取樣式描述文檔的存儲(chǔ)地址,并查找樣式描述文檔,調(diào)用樣式文檔解析模塊生成對(duì)應(yīng)的樣式模型樹(shù),根據(jù)樣式模型樹(shù)的根節(jié)點(diǎn)屬性設(shè)置界面布局,并以深度優(yōu)先方式遍歷,采用反射機(jī)制和腳本方式生成樣式模型樹(shù)的葉節(jié)點(diǎn)對(duì)應(yīng)界面控件的監(jiān)聽(tīng)器的事件執(zhí)行代碼,生成界面控件并形成最終界面。采用樣式模型緩存界面樣式描述文件,減少了界面生成引擎讀取文件的次數(shù),提高界面生成引擎的執(zhí)行效率;分析特定應(yīng)用背景下的界面的特點(diǎn),預(yù)編寫反映通用界面需求的模板文件,通過(guò)引用這些模板文件,提高已有工作的可復(fù)用性,減少二次開(kāi)發(fā)階段的工作量。文檔編號(hào)G06F9/44GK101334728SQ20081011727公開(kāi)日2008年12月31日申請(qǐng)日期2008年7月28日優(yōu)先權(quán)日2008年7月28日發(fā)明者丹余,李先軍,李重文,雯鄭,馬世龍申請(qǐng)人:北京航空航天大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1