專利名稱:基于XML Schema的軟件界面生成系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于XML Schema的軟件界面生成系統(tǒng)及方法,屬于信息處理的技術(shù)領(lǐng)域。
背景技術(shù):
信息系統(tǒng)作為一種抽象的社會(huì)系統(tǒng),因?yàn)槟芗皶r(shí)、可靠、方便地管理海量信息,所以在許多應(yīng)用領(lǐng)域起著不可替代作用,它已成為人們認(rèn)識(shí)和研究客觀世界的重要手段。在應(yīng)用方面,信息系統(tǒng)已在國(guó)民經(jīng)濟(jì)建設(shè)中為國(guó)家和各級(jí)政府部門提供了 大量科學(xué)的宏觀輔助決策信息,產(chǎn)生了巨大的社會(huì)效益。越來越多的領(lǐng)域,如航空航天、氣象、海洋、醫(yī)藥、金融、交通以及各種企事業(yè)單位都已經(jīng)或正在將信息系統(tǒng)納入部門產(chǎn)業(yè)化應(yīng)用日程,充分發(fā)揮其優(yōu)勢(shì),并與傳統(tǒng)的業(yè)務(wù)技術(shù)相結(jié)合,使相關(guān)業(yè)務(wù)工作做得更科學(xué)、準(zhǔn)確和快捷。同時(shí),隨著社會(huì)信息化的進(jìn)程以及各領(lǐng)域的特殊性,信息系統(tǒng)的種類在隨之增多。從當(dāng)初的MIS(管理信息系統(tǒng))發(fā)展到現(xiàn)在研究比較熱門ERP(企業(yè)資源計(jì)劃)、PLM(產(chǎn)品生命周期系統(tǒng))、GIS (地理信息系統(tǒng))等。它們都是在常規(guī)信息系統(tǒng)的基礎(chǔ)上,融合了本領(lǐng)域的知識(shí)結(jié)構(gòu),形成了具備特定功能的信息系統(tǒng),它們比一般的信息系統(tǒng)在處理特定事物上更便捷有效。不過這也隨之產(chǎn)生了新的問題,即對(duì)系統(tǒng)維護(hù)的靈活性、可拓展性的要求大大提聞。目前對(duì)于這種情況,軟件工程中提出了原型設(shè)計(jì)法,程序開發(fā)中提出了軟件復(fù)用等技術(shù),在很大程度上解決了需求無法及時(shí)確定但依舊完成系統(tǒng)開發(fā)的問題。但是,對(duì)于某些新興領(lǐng)域,要求系統(tǒng)中部分模塊變動(dòng)十分靈活。其中主要是對(duì)涉及系統(tǒng)交互部分的變動(dòng)要求較高。如輸入界面的不確定性就很復(fù)雜,往往系統(tǒng)開發(fā)了很久,又加入新的需求,使得界面上很多代碼又要重新修改。在傳統(tǒng)系統(tǒng)的開發(fā)中,界面的設(shè)計(jì)規(guī)劃及完成依賴于團(tuán)隊(duì)中的美工。通常的做法是根據(jù)需求分析中用戶的要求,將界面對(duì)應(yīng)的HTML代碼事先在客戶端服務(wù)器寫定,然后服務(wù)器端的程序由其他人負(fù)責(zé)完成。最后需要將前后銜接起來,實(shí)現(xiàn)從前臺(tái)到服務(wù)器端再到前臺(tái)的一個(gè)工作流程。后臺(tái)開發(fā)目前有SSH框架支持,在很大程度上做到了軟件復(fù)用,對(duì)系統(tǒng)的擴(kuò)展具有很好的支持性。但是前臺(tái)的可拓展性卻很難做到,如果需求變更,界面需要修改,則需要美工對(duì)照需求,逐行地修改前臺(tái)中的HTML代碼,十分繁瑣。往往花費(fèi)大量的人力物力還難以達(dá)到要求,得不償失。因此,我們希望有一種方法可以通過較小代價(jià)實(shí)現(xiàn)界面的生成,同時(shí)盡量不通過美工就能實(shí)現(xiàn)對(duì)界面的修改。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有信息系統(tǒng)界面開發(fā)中修改代價(jià)大的不足,提出了基于XMLSchema的軟件界面生成系統(tǒng)及方法,通過解析XML Schema DOM結(jié)構(gòu)來動(dòng)態(tài)生成界面上的HTMLD0M結(jié)構(gòu),從而實(shí)現(xiàn)了信息系統(tǒng)中界面自動(dòng)生成、靈活修改的目標(biāo),同時(shí)通過XML Schema可以很方便的對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。
本發(fā)明為實(shí)現(xiàn)上述發(fā)明目的采用如下技術(shù)方案基于XML Schema的軟件界面生成系統(tǒng),包括XML Schema管理模塊、XMLSchema解析模塊、軟件界面生成模塊、數(shù)據(jù)驗(yàn)證及更新模塊、客戶端服務(wù)器,其中所述XML Schema管理模塊、XML Schema解析模塊、軟件界面生成模塊、數(shù)據(jù)驗(yàn)證及更新模塊依次連接,所述XML Schema管理模塊的數(shù)據(jù)接口、軟件界面生成模塊的數(shù)據(jù)接口分別與服務(wù)器連接,所述XML Schema管理模塊、數(shù)據(jù)驗(yàn)證及更新模塊都與數(shù)據(jù)庫交互;所述XML Schema管理模塊用于在客戶端服務(wù)器生成管理界面供用戶增加、刪除、修改、查詢保存在數(shù)據(jù)庫中的XML Schema文件,選擇用于生成軟件界面的XML Schema文 件,以列表形式表示數(shù)據(jù)庫中已保存的XML Schema文件信息;所述XML Schema解析模塊用于讀取XML Schema管理模塊所選擇的用于生成軟件界面的XML Schema文件,記錄XML Schema文件所對(duì)應(yīng)的DOM樹結(jié)構(gòu)以及DOM樹每個(gè)節(jié)點(diǎn)的信息;所述軟件界面生成模塊用于將XML Schema解析模塊中XML Schema文件所對(duì)應(yīng)的DOM樹結(jié)構(gòu)轉(zhuǎn)換為HTML DOM樹結(jié)構(gòu);所述數(shù)據(jù)驗(yàn)證及更新模用于將軟件界面生成模塊得到的數(shù)據(jù)封裝成XML文檔,然后用生成軟件界面的XML Schema文件對(duì)所述XML文檔進(jìn)行驗(yàn)證,并將通過驗(yàn)證的XML文檔存儲(chǔ)到數(shù)據(jù)庫,對(duì)未通過的XML文檔返回錯(cuò)誤信息;所述客戶端服務(wù)器用于顯示XML Schema管理模塊生成的管理界面以及軟件界面生成模塊生成的軟件界面,將用戶對(duì)XML Schema文件的操作信息返回給XML Schema管理模塊,將用戶填寫在管理界面的數(shù)據(jù)返回給數(shù)據(jù)驗(yàn)證及更新模塊。基于XML Schema的軟件界面生成方法,包括如下步驟步驟1,XML Schema管理模塊在客戶端服務(wù)器上顯示管理界面,用戶在管理界面完成對(duì)XML Schema文件的操作,顯示選擇用于生成軟件界面的XML Schema文件;步驟2, XML Schema解析模塊讀取XML Schema管理模塊所選擇的用于生成軟件界面的XML Schema文件,記錄XML Schema DOM樹結(jié)構(gòu)以及DOM樹每個(gè)節(jié)點(diǎn)的信息;步驟3,軟件界面生成模塊將XML Schema解析模塊中XML Schema DOM樹結(jié)構(gòu)轉(zhuǎn)換為HTML DOM樹結(jié)構(gòu),并將HTML DOM對(duì)應(yīng)的軟件界面顯示在客戶端服務(wù)器上;步驟4,數(shù)據(jù)驗(yàn)證及更新模塊先將用戶填寫在步驟3所生成的軟件界面上的數(shù)據(jù)封裝成XML文檔,然后用生成軟件界面的XML Schema文件對(duì)所述XML文檔進(jìn)行驗(yàn)證,若所述XML文檔通過XML Schema驗(yàn)證,數(shù)據(jù)驗(yàn)證及更新模塊將XML文檔保存至數(shù)據(jù)庫;若所述XML文檔沒有通過XML Schema驗(yàn)證,數(shù)據(jù)驗(yàn)證及更新模塊顯示錯(cuò)誤信息。所述基于XML Schema的軟件界面生成方法中,步驟2的具體實(shí)施步驟如下步驟2-1, XML Schema解析模塊讀取的當(dāng)前XML Schema兀素獲取XML Schema兀素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)信息;步驟2-2,軟件界面生成模塊定位當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)在HTMLDOM樹中所對(duì)應(yīng)的位置;若XML Schema元素類型是復(fù)雜數(shù)據(jù)類型,軟件界面生成模塊根據(jù)步驟2_1所獲取的DOM樹節(jié)點(diǎn)信息在HTML DOM樹中XML Schema元素所對(duì)應(yīng)的位置創(chuàng)建一個(gè)表格元素,對(duì)表格元素的各屬性賦值添加正確的CSS信息;轉(zhuǎn)向步驟2-3 ;若XML Schema元素類型是簡(jiǎn)單數(shù)據(jù)類型,軟件界面生成模塊根據(jù)步驟2_1所獲取的DOM樹節(jié)點(diǎn)信息在HTML DOM樹中XML Schema元素所對(duì)應(yīng)的位置創(chuàng)建一個(gè)下拉列表,并為下拉列表添加正確的CSS信息,轉(zhuǎn)向步驟2-4 ;若XML Schema元素類型是基本數(shù)據(jù)類型,軟件界面生成模塊根據(jù)步驟2_1所獲取的DOM樹節(jié)點(diǎn)信息在HTML DOM樹中XML Schema元素所對(duì)應(yīng)的位置創(chuàng)建一個(gè)表單,并為表單添加正確的CSS信息,轉(zhuǎn)向步驟2-4 ;步驟2-3,若當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)有未處理的子節(jié)點(diǎn),返回步驟2-2 ;否則,進(jìn)入步驟2-4 ;步驟2-4,若當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)有未處理的兄弟節(jié)點(diǎn),返回步驟2-2 ;否則,進(jìn)入步驟2-5 ;步驟2-5,若當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)有未處理的父節(jié)點(diǎn),返回步驟2-4 ;否則,將HTML DOM對(duì)應(yīng)的界面顯示在客戶端服務(wù)器,結(jié)束步驟2。本發(fā)明采用上述技術(shù)方案,具有以下有益效果采用XML Schema記錄界面信息省去了大量的界面代碼,便于界面的復(fù)用;通過修改XML Schema文件動(dòng)態(tài)生成HTML DOM樹,靈活修正生成的軟件界面。
圖I為基于XML Schema的軟件界面生成系統(tǒng)的示意圖。圖2為基于XML Schema的軟件界面生成方法的流程圖。圖3為XML Schema解析模塊根據(jù)DOM樹結(jié)構(gòu)映射得到HTML DOM樹結(jié)構(gòu)的流程圖。圖4 為 XML Schema 的 DOM 樹模型。圖5為元數(shù)據(jù)管理系統(tǒng)中的深度優(yōu)先遍歷的流程圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明XML Schema是定義XML文檔的合法構(gòu)建模塊,類似DTD。本文所述XML Schema是根據(jù)用戶需求分析,專門針對(duì)軟件界面結(jié)構(gòu)、樣式及數(shù)據(jù)正確標(biāo)準(zhǔn)所設(shè)計(jì)的。其中,Schema的樹狀結(jié)構(gòu)與軟件界面的結(jié)構(gòu)相對(duì)應(yīng),屬性中分別定義了軟件界面元素的名稱、顯示值、CSS信息、數(shù)據(jù)約束標(biāo)準(zhǔn)及注釋信息等。如圖I所示的基于XML Schema的軟件界面生成系統(tǒng),包括依次連接的XML Schema管理模塊、XML Schema解析模塊、軟件界面生成模塊、數(shù)據(jù)驗(yàn)證及更新模塊,XML Schema管理模塊的數(shù)據(jù)接口、數(shù)據(jù)驗(yàn)證及更新模塊的數(shù)據(jù)接口分別與服務(wù)器連接,XML Schema管理模塊與數(shù)據(jù)驗(yàn)證及更新模塊分別與數(shù)據(jù)庫進(jìn)行交互。XML Schema管理模塊提供用于管理XML Schema文件的管理界面,管理界面顯示在客戶端服務(wù)器上。用戶在管理界面對(duì)XML Schema文件進(jìn)行增加、刪除、修改、查閱的操作,這些XML Schema文件既用于軟件界面的生成也用于數(shù)據(jù)的驗(yàn)證。XML Schema管理模塊提供的管理界面顯示所有已上傳數(shù)據(jù)的XMLSchema文件的信息列表。、
XML Schema解析模塊用于讀取XML Schema管理模塊所選擇的XMLSchema文件,獲取并保存XML Schema DOM樹結(jié)構(gòu)以及每個(gè)DOM樹節(jié)點(diǎn)的樣式描述信息。軟件界面生成模塊根據(jù)XML Schema解析模塊獲得的XML Schema DOM樹結(jié)構(gòu)以及DOM樹節(jié)點(diǎn)的樣式描述信息,建立從XML Schema DOM樹結(jié)構(gòu)到HTML DOM樹結(jié)構(gòu)的映射,生成描述HTML DOM樹的代碼,同時(shí)為每一個(gè)HTML DOM樹節(jié)點(diǎn)添加CSS信息。HTML DOM樹結(jié)構(gòu)的軟件界面顯示在客戶端服務(wù)器上。數(shù)據(jù)驗(yàn)證及更新模塊用于將用戶上傳的數(shù)據(jù)封裝成XML文檔,用生成軟件界面的的XML Schema文件進(jìn)行驗(yàn)證,同時(shí)將通過驗(yàn)證的數(shù)據(jù)保存至數(shù)據(jù)庫,未通過驗(yàn)證的部分返回其錯(cuò)誤信息。用戶通過在客戶端服務(wù)器顯示的管理界面上填寫數(shù)據(jù)來上傳數(shù)據(jù)??蛻舳朔?wù)器用于顯示XML Schema管理模塊生成的管理界面以及軟件界面生成模塊生成的軟件界面(即為HTML DOM樹結(jié)構(gòu)的軟件界面),將用戶對(duì)XML Schema文件的操 作信息返回給XML Schema管理模塊,將用戶填寫在管理界面的數(shù)據(jù)返回給數(shù)據(jù)驗(yàn)證及更新模塊。XML Schema的DOM樹結(jié)構(gòu)如圖4所示,DOM樹的根節(jié)點(diǎn)為<xs: shema〉,其下有三種子節(jié)點(diǎn)復(fù)雜類型節(jié)點(diǎn)<xs:complexType>、簡(jiǎn)單類型節(jié)點(diǎn)<xs: simpleType〉和元素節(jié)點(diǎn)<xs: element〉。根節(jié)點(diǎn)<xs: shema〉有四個(gè)屬性xmlns: xs表示元素所引用的命名空間;xmlns:tab是自定義的屬性,用來定義兀素排版在哪個(gè)Tab頁;elementFormDefault用來定義XML文檔中出現(xiàn)的元素是否需要引用名空間前綴,qualified表示需要引用名空間前綴;attributeFormDefault用來定義XML文檔中出現(xiàn)的屬性是否需要引用名空間前綴,unqualified表示不需要引用名空間前綴。完整的根節(jié)點(diǎn)表示形式如下<xs: schema xmlns:xs = http://www. w3. orR/2001/XMLSchemaxmlns: tab = " http://www.hhu.edu.cn " eIementFormDetaul t="qualitied〃attributeFormDefault = " unqualified" >。元素節(jié)點(diǎn)〈xs: element)有六個(gè)屬性name定義了元素的名字;type定義了元素的類型,將來以該類型驗(yàn)證元素的內(nèi)容是否合乎規(guī)范;id定義了元素的唯一標(biāo)示;minOccurs定義了元素的最小出現(xiàn)次數(shù),0表示該元素在XML文檔中可以不出現(xiàn);maxOccurs定義了元素的最大出現(xiàn)次數(shù),unbounded表示該元素在XML文檔中可以出現(xiàn)無數(shù)次;tab tabNO是開發(fā)者自定義的屬性,用來定義元素排版在哪個(gè)Tab頁,引用了自定義的名空間。元素節(jié)點(diǎn)還有內(nèi)嵌的子元素注釋節(jié)點(diǎn)〈xs:annotation〉,注釋節(jié)點(diǎn)〈xs:annotation〉里面還有內(nèi)嵌子元素文本注釋節(jié)點(diǎn)〈xs:documentation〉,文本注釋節(jié)點(diǎn)〈xs:documentation〉
用純文本記錄了注釋信息。完整的元素節(jié)點(diǎn)表示形式如下<xs:element name="Format" type="Format" id="格式信息"min0ccurs="0" maxOccurs="unbounded" tab:tabN0="4">
<xs: annotation〉
<xs:documentation>|^式信息 </xs:documentation>
<xs:documentation>說明計(jì)算機(jī)語言結(jié)構(gòu),描述數(shù)據(jù)目標(biāo)在記錄、文件、通信、 存儲(chǔ)設(shè)備和傳送通道中的表示方法 </xs: documentation〉
</xs: annotation〉
</xs: element〉。 基本類型元素節(jié)點(diǎn)是系統(tǒng)中最基本數(shù)據(jù)所對(duì)應(yīng)的Schema結(jié)構(gòu),它直接與基本數(shù)據(jù)對(duì)應(yīng)。這里的基本數(shù)據(jù)通常是非枚舉型的,一般是字符串類型、整型等,比如用戶姓名、電話號(hào)碼之類的數(shù)據(jù)。簡(jiǎn)單類型元素節(jié)點(diǎn)〈xs: simpleType〉是系統(tǒng)中枚舉型的基本數(shù)據(jù)所對(duì)應(yīng)的Schema結(jié)構(gòu),它是將一些存在枚舉值的數(shù)據(jù)實(shí)現(xiàn)做好其取值列表存于Schema中。當(dāng)用Schema驗(yàn)證時(shí),只有取這些枚舉值的數(shù)據(jù)才能通過驗(yàn)證?!磝s: simpleType〉有一個(gè)屬性name,定義了該類型的名字?!磝s: simpleType〉的子元素<xs:restriction>,它用來定義這種簡(jiǎn)單元素的取值,其中有一個(gè)屬性base,它規(guī)定了該簡(jiǎn)單元素取值的類型,xs: string表示取值為字符串型?!磝s:enumeration〉定義了簡(jiǎn)單類型中取值的枚舉值列表,其中的屬性value表示具體的值,id表示該枚舉值的唯一標(biāo)示。完整的簡(jiǎn)單類型節(jié)點(diǎn)表示形式如下
<xs:simpleType name="ProgCd">
<xs:restriction base="xs:string"〉
<xs:enumeration value= "001" id=11 完成n/>
<xs:enumeration value= "002" id=11 歷史檔案n/>
<xs:enumeration value= "003" id=11 廢棄n/>
<xs:enumeration value= "004" id=11 連續(xù)更新n/>
<xs:enumeration value="005" id="計(jì)劃"/>
<xs:enumeration value= "006" id=11 根據(jù)需要n/>
<xs:enumeration value= "007" id=11 正在開發(fā)n/>
</xs: restriction〉
</xs: simpleType〉。復(fù)雜類型元素節(jié)點(diǎn)<xs:complexType>是系統(tǒng)中的基本數(shù)據(jù)經(jīng)過分類抽象出的一類數(shù)據(jù)。這些數(shù)據(jù)通常不是用戶直接需要的,但是對(duì)于基本數(shù)據(jù)量較大時(shí),為了在界面上清楚的顯示,就添加了這類數(shù)據(jù)。復(fù)雜類型元素節(jié)點(diǎn)下一定包含了其類別所代表的子元素。<xs:complexType>有一個(gè)屬性name,定義了該類型的名字。在復(fù)雜類型的下面有子元素〈xs: sequence〉,它定義其下子元素在XML文檔中出現(xiàn)的順序。〈xs: sequence〉下面定義的元素都是這種復(fù)雜類型的元素所包含的子元素,而子元素的定義和一般元素的定義相同,不再贅述。完整的復(fù)雜類型節(jié)點(diǎn)表示形式如下<xs:complexType name="Format">
<xs: sequence〉
<xs:element name="formatName" type="xs:string" id=11 格式名稱n/>
<xs:element name="formatVer" type="xs: string" id=n格式版本7>
</xs: sequence〉
</xs:complexType>。下面以衛(wèi)星遙感數(shù)據(jù)元數(shù)據(jù)管理系統(tǒng)為例說明軟件界面的生成方法?;赬MLSchema的軟件界面生成方法如圖2所示的流程圖,包括XML Schema管理、XML Schema解析及軟件界面生成、數(shù)據(jù)驗(yàn)證及更新三大部分。第一部分XML Schema管理,包括如下步驟步驟I,用戶通過客戶端服務(wù)器上傳XML Schema文件至XML Schema管理模塊,并提供增刪改查等功能。若選擇上傳新XML Schema文件,XML Schema管理模塊讀取新XML Schema文件并將其保存至數(shù)據(jù)庫;若選擇刪除XML Schema文件,XML Schema管理模塊根據(jù)所選擇要?jiǎng)h除的XML Schema文件的ID號(hào)到數(shù)據(jù)庫中刪除相應(yīng)的XML Schema文件;若選擇修改XML Schema文件,XML Schema管理模塊提供修改界面供用戶進(jìn)行修改,再用修改后的XMLSchema文件替換數(shù)據(jù)庫中原來的XML Schema文件;若選擇查看XML Schema文件,XMLSchema管理模塊根據(jù)所選擇要查看的XML Schema文件的ID號(hào)到數(shù)據(jù)庫中讀取XML Schema文件的文本內(nèi)容并將讀取的信息顯示到客戶端服務(wù)器上。XML Schema管理模塊選擇操作XML Schema文件后,從數(shù)據(jù)庫中讀取XMl Schema信息,然后以列表形式將詳細(xì)信息顯示在客戶端服務(wù)器上,并將選中的XML Schema文件傳至XML Schema解析模塊。
數(shù)據(jù)庫設(shè)計(jì)時(shí),元數(shù)據(jù)整體設(shè)計(jì)為CLOB類型存儲(chǔ)于數(shù)據(jù)庫中(本系統(tǒng)采用ORACLE數(shù)據(jù)庫,CLOB類型是該數(shù)據(jù)庫軟件中支持的一種大字符串類型數(shù)據(jù),用來存儲(chǔ)XML文檔),數(shù)據(jù)表設(shè)計(jì)與實(shí)現(xiàn)如表I所示
權(quán)利要求
1.基于XMLSchema的軟件界面生成系統(tǒng),其特征在于,包括XML Schema管理模塊、XMLSchema解析模塊、軟件界面生成模塊、數(shù)據(jù)驗(yàn)證及更新模塊、客戶端服務(wù)器,其中所述XMLSchema管理模塊、XML Schema解析模塊、軟件界面生成模塊、數(shù)據(jù)驗(yàn)證及更新模塊依次連接,所述XML Schema管理模塊的數(shù)據(jù)接口、軟件界面生成模塊的數(shù)據(jù)接口分別與服務(wù)器連接,所述XML Schema管理模塊、數(shù)據(jù)驗(yàn)證及更新模塊都與數(shù)據(jù)庫交互; 所述XML Schema 管理模塊用于在客戶端服務(wù)器生成管理界面供用戶增加、刪除、修改、查詢保存在數(shù)據(jù)庫中的XML Schema文件,選擇用于生成軟件界面的XML Schema文件,以列表形式表示數(shù)據(jù)庫中已保存的XML Schema文件信息; 所述XML Schema解析模塊用于讀取XML Schema管理模塊所選擇的用于生成軟件界面的XML Schema文件,記錄XML Schema文件所對(duì)應(yīng)的DOM樹結(jié)構(gòu)以及DOM樹每個(gè)節(jié)點(diǎn)的信息; 所述軟件界面生成模塊用于將XML Schema解析模塊中XML Schema文件所對(duì)應(yīng)的DOM樹結(jié)構(gòu)轉(zhuǎn)換為HTML DOM樹結(jié)構(gòu); 所述數(shù)據(jù)驗(yàn)證及更新模用于將軟件界面生成模塊得到的數(shù)據(jù)封裝成XML文檔,然后用生成軟件界面的XML Schema文件對(duì)所述XML文檔進(jìn)行驗(yàn)證,并將通過驗(yàn)證的XML文檔存儲(chǔ)到數(shù)據(jù)庫,對(duì)未通過的XML文檔返回錯(cuò)誤信息; 所述客戶端服務(wù)器用于顯示XML Schema管理模塊生成的管理界面以及軟件界面生成模塊生成的軟件界面,將用戶對(duì)XML Schema文件的操作信息返回給XML Schema管理模塊,將用戶填寫在管理界面的數(shù)據(jù)返回給數(shù)據(jù)驗(yàn)證及更新模塊。
2.基于XMLSchema的軟件界面生成方法,其特征在于包括如下步驟 步驟1,XML Schema管理模塊在客戶端服務(wù)器上顯示管理界面,用戶在管理界面完成對(duì)XML Schema文件的操作,顯示選擇用于生成軟件界面的XML Schema文件; 步驟2, XML Schema解析模塊讀取XML Schema管理模塊所選擇的用于生成軟件界面的XML Schema文件,記錄XML Schema DOM樹結(jié)構(gòu)以及DOM樹每個(gè)節(jié)點(diǎn)的信息; 步驟3,軟件界面生成模塊將XML Schema解析模塊中XML Schema DOM樹結(jié)構(gòu)轉(zhuǎn)換為HTML DOM樹結(jié)構(gòu),并將HTML DOM對(duì)應(yīng)的軟件界面顯示在客戶端服務(wù)器上;步驟4,數(shù)據(jù)驗(yàn)證及更新模塊先將用戶填寫在步驟3所生成的軟件界面上的數(shù)據(jù)封裝成XML文檔,然后用生成軟件界面的XML Schema文件對(duì)所述XML文檔進(jìn)行驗(yàn)證, 若所述XML文檔通過XML Schema驗(yàn)證,數(shù)據(jù)驗(yàn)證及更新模塊將XML文檔保存至數(shù)據(jù)庫; 若所述XML文檔沒有通過XML Schema驗(yàn)證,數(shù)據(jù)驗(yàn)證及更新模塊顯示錯(cuò)誤信肩、O
3.根據(jù)權(quán)利要求2所述的基于XMLSchema的軟件界面生成方法,其特征在于所述步驟2的具體實(shí)施步驟如下步驟2-1, XML Schema解析模塊讀取的當(dāng)前XML Schema兀素獲取XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)信息; 步驟2-2,軟件界面生成模塊定位當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)在HTML DOM樹中所對(duì)應(yīng)的位置; 若XML Schema元素類型是復(fù)雜數(shù)據(jù)類型,軟件界面生成模塊根據(jù)步驟2_1所獲取的DOM樹節(jié)點(diǎn)信息在HTML DOM樹中XML Schema元素所對(duì)應(yīng)的位置創(chuàng)建一個(gè)表格元素,對(duì)表格元素的各屬性賦值添加正確的CSS信息;轉(zhuǎn)向步驟2-3 ; 若XML Schema元素類型是簡(jiǎn)單數(shù)據(jù)類型,軟件界面生成模塊根據(jù)步驟2_1所獲取的DOM樹節(jié)點(diǎn)信息在HTML DOM樹中XML Schema元素所對(duì)應(yīng)的位置創(chuàng)建一個(gè)下拉列表,并為下拉列表添加正確的CSS信息,轉(zhuǎn)向步驟2-4 ; 若XML Schema元素類型是基本數(shù)據(jù)類型,軟件界面生成模塊根據(jù)步驟2-1所獲取的DOM樹節(jié)點(diǎn)信息在HTML DOM樹中XML Schema元素所對(duì)應(yīng)的位置創(chuàng)建一個(gè)表單,并為表單添加正確的CSS信息,轉(zhuǎn)向步驟2-4 ; 步驟2-3,若當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)有未處理的子節(jié)點(diǎn),返回步驟2-2 ;否則,進(jìn)入步驟2-4; 步驟2-4,若當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)有未處理的兄弟節(jié)點(diǎn),返回步驟2-2;否則,進(jìn)入步驟2-5; 步驟2-5,若當(dāng)前XML Schema元素對(duì)應(yīng)的DOM樹節(jié)點(diǎn)有未處理的父節(jié)點(diǎn),返回步驟2-4 ;否則,將HTML DOM對(duì)應(yīng)的界面顯示在客戶端服務(wù)器,結(jié)束步驟2。
全文摘要
本發(fā)明公開了基于XMLSchema的軟件界面生成系統(tǒng)及方法,屬于信息處理的技術(shù)領(lǐng)域。所述軟件界面生成系統(tǒng)包括依次連接XMLSchema管理模塊、XMLSchema解析模塊、軟件界面生成模塊、數(shù)據(jù)驗(yàn)證及更新模塊。所述軟件界面生成方法通過XMLSchema管理模塊提供的管理界面選擇用于生成軟件界面的XMLSchema文件;XMLSchema解析模塊獲取DOM樹結(jié)構(gòu);軟件界面生成模塊將的DOM樹轉(zhuǎn)化為HTMLDOM樹結(jié)構(gòu)形成最終的軟件界面;數(shù)據(jù)驗(yàn)證及更新模塊用XMLSchema文件驗(yàn)證用戶上傳的數(shù)據(jù)。本發(fā)明解決了軟件界面設(shè)計(jì)周期長(zhǎng)、復(fù)用率低、界面代碼修改成本過高等問題。
文檔編號(hào)G06F17/30GK102646039SQ20121004901
公開日2012年8月22日 申請(qǐng)日期2012年2月29日 優(yōu)先權(quán)日2012年2月29日
發(fā)明者付言章, 任鋒, 馮鈞, 卞一路, 唐志賢, 朱忠華, 盛震宇, 胥世民, 韋冕, 顧忠國(guó) 申請(qǐng)人:河海大學(xué)