一種半結(jié)構(gòu)化的頁面描述與解析方法【專利摘要】本發(fā)明涉及對(duì)計(jì)算機(jī)系統(tǒng)中一種半結(jié)構(gòu)化的頁面描述與解析方法,尤其是基于XML的跨終端的頁面描述與解析方法。其特點(diǎn)是,包括如下步驟:(1)根據(jù)指定的頁面描述,將布局、局部樣式信息記錄到頁面描述文件中,將其界面元素與數(shù)據(jù)字段間的綁定關(guān)系信息記錄到頁面描述文件中;(2)針對(duì)不同類型的終端,實(shí)現(xiàn)特定的頁面描述解析器,解析所述頁面描述文件,獲取對(duì)應(yīng)終端上的頁面描述界面的布局方式及數(shù)據(jù)綁定關(guān)系。本發(fā)明通過使用XML來對(duì)頁面描述界面進(jìn)行描述和展現(xiàn),采用該方法,開發(fā)人員僅需在設(shè)計(jì)時(shí)定義一次定義頁面描述文件,然后針對(duì)不同類型的設(shè)備實(shí)現(xiàn)相應(yīng)的頁面描述解析器,即可實(shí)現(xiàn)同一頁面描述在不同類型終端上的不同界面展現(xiàn)形式。【專利說明】一種半結(jié)構(gòu)化的頁面描述與解析方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及對(duì)計(jì)算機(jī)系統(tǒng)中一種半結(jié)構(gòu)化的頁面描述與解析方法,尤其是基于XML的跨終端的頁面描述與解析方法。【
背景技術(shù):
】[0002]如今,不管是在Web應(yīng)用程序,還是在本地應(yīng)用程序中,頁面描述都已經(jīng)是一個(gè)非常重要的組成部分。它為用戶提供可視化的交互界面,促進(jìn)用戶的輸入,使得各種程序從用戶那里收集數(shù)據(jù)成為可能,而用戶的輸入正是業(yè)務(wù)流程的關(guān)鍵所在,在實(shí)際情況中幾乎所有軟件系統(tǒng)的開發(fā)都需要?jiǎng)?chuàng)建一個(gè)或多個(gè)頁面描述來展示數(shù)據(jù)并收集用戶的輸入。同時(shí),在實(shí)際情況中,應(yīng)用程序常常需要運(yùn)行在各種不同類型的終端上,比如傳統(tǒng)的PC機(jī),以及各種移動(dòng)終端等,這就需要對(duì)頁面描述界面進(jìn)行針對(duì)性的設(shè)計(jì),從而使得開發(fā)人員需要為同一個(gè)頁面描述界面設(shè)計(jì)并開發(fā)多個(gè)對(duì)應(yīng)不同類型終端的版本,導(dǎo)致大量的重復(fù)設(shè)計(jì)工作,費(fèi)時(shí)費(fèi)力。因此,如何快速、高效地對(duì)頁面描述進(jìn)行描述及展現(xiàn)已成為開發(fā)人員關(guān)注的焦點(diǎn)。[0003]在許多領(lǐng)域中,非結(jié)構(gòu)化數(shù)據(jù)常使用XML來存儲(chǔ)和傳輸數(shù)據(jù)信息。例如Web技術(shù)中的XForms,它被W3C組織制定為HTML表單的替代標(biāo)準(zhǔn),其數(shù)據(jù)模型便以XML作為存儲(chǔ)和操作數(shù)據(jù)的對(duì)象,并通過XML在網(wǎng)絡(luò)上傳輸數(shù)據(jù)。XML是指可擴(kuò)展標(biāo)記語言(ExtensibleMarkupLanguage),類似于HTML,它是一種標(biāo)記語言。與主要用于表現(xiàn)和展示數(shù)據(jù)的HTML語言不同的是,XML被設(shè)計(jì)用來傳送及攜帶數(shù)據(jù)。XML于1998年2月發(fā)布為W3C標(biāo)準(zhǔn),時(shí)至今日,它已被公認(rèn)為優(yōu)秀的數(shù)據(jù)描述語言,它是各種應(yīng)用程序之間進(jìn)行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ撸⑶以谛畔⒋鎯?chǔ)和描述領(lǐng)域變得越來越流行。[0004]如前所述,頁面描述為用戶提供可視化的交互界面,而構(gòu)成該界面的各元素之間又具有層次和嵌套關(guān)系,這與XML文檔中元素和屬性之間的關(guān)系十分相似,同時(shí),由于XML具有非常好的通用性、擴(kuò)展性和跨平臺(tái)性,因此可以考慮使用XML來描述頁面?!?br/>發(fā)明內(nèi)容】[0005]本發(fā)明的目的是提供一種半結(jié)構(gòu)化的頁面描述與解析方法,能夠免去開發(fā)人員對(duì)頁面描述界面的重復(fù)設(shè)計(jì)工作,提高對(duì)已有工作的可復(fù)用性,實(shí)現(xiàn)同一頁面描述在不同類型終端上的界面展現(xiàn),并使頁面描述界面能夠根據(jù)不同終端的屏幕大小進(jìn)行自適應(yīng)。[0006]一種半結(jié)構(gòu)化的頁面描述與解析方法,其特別之處在于,包括如下步驟:[0007](I)根據(jù)指定的頁面描述,將其布局、局部樣式信息記錄到頁面描述文件中,將其界面元素與數(shù)據(jù)字段間的綁定關(guān)系信息記錄到頁面描述文件中,得到記錄所述頁面描述界面的頁面描述文件;[0008](2)針對(duì)不同類型的終端,實(shí)現(xiàn)特定(對(duì)應(yīng))的頁面描述解析器,解析所述頁面描述文件,獲取對(duì)應(yīng)終端上的頁面描述界面的布局方式及數(shù)據(jù)綁定關(guān)系,實(shí)現(xiàn)同一頁面描述在不同類型終端上的界面展現(xiàn),從而使頁面描述界面能夠根據(jù)不同終端的屏幕大小進(jìn)行自適應(yīng)。[0009]步驟(I)中布局和局部樣式具體是指顏色、字體、層次關(guān)系、對(duì)齊方式、換行方式;而界面元素與數(shù)據(jù)字段間的綁定關(guān)系具體是指數(shù)據(jù)的類型、可見性、只讀性、校檢規(guī)則、數(shù)據(jù)字段的編輯器類型。[0010]步驟⑵中不同類型的終端具體是指平板電腦、手機(jī)、桌面終端。[0011]步驟(I)中得到記錄所述頁面描述界面的頁面描述文件,具體包括如下步驟:將頁面文件反序列化,讀取參數(shù)、創(chuàng)建頁面文件元素對(duì)應(yīng)的控件和元素分組,根據(jù)頁面視圖類型和布局信息得到頁面布局控件和樣式,加載數(shù)據(jù)在終端上展現(xiàn)頁面。[0012]步驟(2)中實(shí)現(xiàn)特定的頁面描述解析器,具體包括如下步驟:針對(duì)不同類型的終端定義特定的解析器,將所述頁面描述文件轉(zhuǎn)換為特定終端上的頁面描述界面,最后針對(duì)某種特定的展現(xiàn)形式定義對(duì)應(yīng)的頁面描述解析器。[0013]本發(fā)明通過使用XML來對(duì)頁面描述界面進(jìn)行描述和展現(xiàn),采用該方法,開發(fā)人員僅需在設(shè)計(jì)時(shí)定義一次定義頁面描述文件,然后針對(duì)不同類型的設(shè)備實(shí)現(xiàn)相應(yīng)的頁面描述解析器,即可實(shí)現(xiàn)同一頁面描述在不同類型終端上的不同界面展現(xiàn)形式。同時(shí),當(dāng)頁面描述的界面樣式、布局等發(fā)生變化時(shí),開發(fā)人員僅僅需要修改頁面描述界面的描述文件,即可將最新的頁面描述界面展現(xiàn)到各種類型的終端上,從而免去了開發(fā)人員對(duì)頁面描述界面的重復(fù)設(shè)計(jì)工作,提高了已有工作的可復(fù)用性以及開發(fā)效率,實(shí)現(xiàn)了頁面描述界面的“一次設(shè)計(jì),多種展現(xiàn)”?!緦@綀D】【附圖說明】[0014]圖1是發(fā)明實(shí)施例1提供方法的流程圖?!揪唧w實(shí)施方式】[0015]本發(fā)明提供了如下方案:[0016]1、定義頁面描述界面的描述文件,包括:[0017]在設(shè)計(jì)時(shí),用XML來描述頁面描述界面,第一行對(duì)頁面描述頁面描述文件進(jìn)行聲明,定義XML版本為1.0,所使用編碼為UTF-8。[0018]第二行,描述該文檔的根元素,定義根元素的名稱為“^Scheme”,并為其定義屬性,包括:[0019]在“UlScheme”元素上定義名為“tableName”的屬性,以指定頁面描述界面所匹配的數(shù)據(jù)庫表,該屬性的值為真實(shí)數(shù)據(jù)庫表的名稱。[0020]在“UlScheme”元素上定義名為“type”的屬性,以指定頁面描述界面的類型,通常,業(yè)務(wù)上的頁面描述界面按照界面類型,可分為:詳細(xì)視圖(DetailView)、列表視圖(ListView)、網(wǎng)格視圖(GridView)三種,因此,該屬性的值為“DetailView”、“ListView”、“GridView”之一。[0021]在“UlScheme”元素上定義名為“xmlns”的屬性,以指定該文檔的命名空間。[0022]根據(jù)業(yè)務(wù)數(shù)據(jù)的復(fù)雜程度的不同,頁面描述界面中的元素?cái)?shù)量也不同,對(duì)于一些共有的樣式,有必要進(jìn)行全局控制,在根元素“UlScheme”下定義名為“View”的元素,并為其定義屬性,包括:[0023]在“View”元素上定義名為“capt1nColumnWidth”的屬性,以指定詳細(xì)視圖中標(biāo)題列的寬度,該屬性的值默認(rèn)為“0”,即自動(dòng)計(jì)算。[0024]在“View”元素上定義名為“defaultCapt1nStyle”的屬性,以指定詳細(xì)視圖中標(biāo)題的默認(rèn)顯示樣式,該屬性的值可以為“&此0”、“111111^”、“11冊(cè)111^”之一,默認(rèn)為“&此0”,即自動(dòng)計(jì)算。[0025]在“View”元素上定義名為“defaultCapt1nAlign”的屬性,以指定詳細(xì)視圖中的標(biāo)題文本的默認(rèn)對(duì)齊方式,該屬性的值可以為“3此0”、“16代”、“(^社61'”、“1^81^”之一,默認(rèn)為“auto”,即自動(dòng)計(jì)算。[0026]在“View”兀素上定義名為“defaultColumnWidth”的屬性,以指定列表和網(wǎng)格視圖中列的寬度,該屬性的值默認(rèn)為“O”,即自動(dòng)計(jì)算。[0027]在“View”兀素上定義名為“defaultColumnAlign”的屬性,以指定列表和網(wǎng)格視圖中每一列的文本的默認(rèn)對(duì)齊方式,該屬性的值可以為“aut0”、“l(fā)eft”、“center”、“right”之一,默認(rèn)為“auto”,即自動(dòng)計(jì)算。[0028]根據(jù)頁面描述所匹配的表,針對(duì)表中的每一條記錄,在頁面描述界面中都有與之對(duì)應(yīng)的界面元素,有必要定義能夠表示界面元素的XML元素。在根元素“UlScheme”下定義名為“Attributes”的元素,以表示頁面描述界面中所有界面元素的集合。[0029]在元素“Attributes”下定義名為“Attribute”的元素,以表示頁面描述中的一個(gè)界面元素,并為其定義屬性,包括:[0030]在“Attribute”元素上定義名為“id”的屬性,以指定界面元素的唯一標(biāo)識(shí)。[0031]在“Attribute”元素上定義名為“align”的屬性,以指定界面元素中的編輯器控件的文本在列表和網(wǎng)格視圖中的對(duì)齊方式,該屬性的值可以為“aUt0”、“l(fā)eft”、“center”、“right”之一,默認(rèn)為“auto”,即自動(dòng)計(jì)算。[0032]在“Attribute”元素上定義名為“type”的屬性,以指定界面元素所對(duì)應(yīng)的數(shù)據(jù)庫中字段值的數(shù)據(jù)類型,該屬性的值可以為“string”、“int”、“sh0rt”、“l(fā)0ng”、“fl0at”、“double”、“dateTime”之一,默認(rèn)為“string”,即字符串類型。[0033]在“Attribute”元素上定義名為“capt1n”的屬性,以指定界面元素中的編輯器控件的標(biāo)題文本。[0034]在“Attribute”元素上定義名為“capt1nAlign”的屬性,以指定界面元素中的編輯器控件的標(biāo)題文本在詳細(xì)視圖中的對(duì)齊方式,該屬性的值可以為“auto”、“l(fā)eft”、“center”、“right”之一,默認(rèn)為“auto”,即自動(dòng)計(jì)算。[0035]在“Attribute”元素上定義名為“capt1nStyle”的屬性,以指定界面元素中的編輯器控件的標(biāo)題在詳細(xì)視圖中的顯示樣式,該屬性的值可以為“aut0”、“inline”、“newline”之一,默認(rèn)為“auto”,即自動(dòng)計(jì)算。[0036]在“Attribute”元素上定義名為“columnName”的屬性,以指定界面元素所對(duì)應(yīng)的數(shù)據(jù)庫中字段的名稱。[0037]在“Attribute”元素上定義名為“height”的屬性,以指定界面元素在詳細(xì)視圖中的高度,該屬性的值默認(rèn)為“O”,即自動(dòng)計(jì)算。[0038]在“Attribute”元素上定義名為“maxLength”的屬性,以指定界面元素中的編輯器控件的可編輯部分(如果允許的話)允許輸入的字符串長度。[0039]在“Attribute”元素上定義名為“nullable”的屬性,以指定界面元素中的編輯器控件的值是否允許為空,該屬性的值可以為“true”、“false”之一,默認(rèn)為“true”,即允許為空。[0040]在“Attribute”元素上定義名為“numScale”的屬性,以指定界面元素中的編輯器控件的可編輯部分(如果允許的話)小數(shù)點(diǎn)右邊允許輸入的十進(jìn)制數(shù)字的最大位數(shù)。[0041]在“Attribute”元素上定義名為“readonly”的屬性,以指定界面元素中的編輯器控件是否為只讀,該屬性的值可以為“true”、“false”之一,默認(rèn)為“false”,即非只讀。[0042]在“Attribute”元素上定義名為“visible”的屬性,以指定界面元素是否可見,該屬性的值可以為“trUe”、“falSe”之一,默認(rèn)為“true”,即可見。[0043]在“Attribute”元素上定義名為“width”的屬性,以指定界面元素在列表和網(wǎng)格視圖中的寬度,該屬性的值默認(rèn)為“O”,即自動(dòng)計(jì)算。[0044]由于頁面描述界面中的每一個(gè)界面元素都包含了一個(gè)對(duì)應(yīng)的編輯器控件,在元素“Attribute”下定義名為“Editor”的元素,以表示該界面元素所包含的編輯器控件,為其定義屬性,包括:[0045]在“Editor”元素上定義名為“type”的屬性,以指定編輯器控件的類型,該屬性的值可以為“CheckBoxEditor,,、“DateTimeEditor,,、“NumberEditor,,、“IDStringPicker,,、“MultiFiIeEditor”、“MultiStringPicker”、“StringPicker”、“SinglePictureEditor,,、“TextEditOT”、“L0ngTextEditOT”之一,以上各值分別表示“條件編輯器”、“日期編輯器”、“數(shù)字編輯器”、“帶標(biāo)識(shí)的下拉框編輯器”、“文件流編輯器”、“可多選的下拉框編輯器”、“下拉框編輯器”、“圖片流編輯器”、“文本編輯器”、“長文本編輯器”。[0046]在元素“Attributes”下定義名為“AttributeGroup”的元素,以表示界面元素的分組,并為其定義屬性,包括:[0047]在“AttributeGroup”元素上定義名為“id”的屬性,以指定界面元素分組的唯一標(biāo)識(shí)。[0048]在“AttributeGroup”元素上定義名為“capt1n”的屬性,以指定界面元素分組的標(biāo)題文本。[0049]設(shè)計(jì)完成的頁面描述界面的描述文件,可以以XML文件的形式進(jìn)行持久化,也可以通過編譯為動(dòng)態(tài)鏈接庫的形式進(jìn)行持久化。[0050]2、定義頁面描述解析器,包括:[0051]按照所述頁面描述界面的描述文件,共分為三種類型:詳細(xì)視圖(DetailView)、列表視圖(ListView)、網(wǎng)格視圖(GridView)三種,因此需分別定義三種視圖的頁面描述解析器。同時(shí),由于終端類型的不同,導(dǎo)致展現(xiàn)技術(shù)的不同,因此針對(duì)每一種具有不同展現(xiàn)技術(shù)的終端(例如傳統(tǒng)PC機(jī)區(qū)別于TOA終端),均需分別定義上述三種視圖的頁面描述解析器。[0052]頁面描述解析器對(duì)頁面描述界面的描述文件進(jìn)行解析和展現(xiàn),包括:[0053]頁面描述解析器讀取頁面描述界面的描述文件(XML文件或者動(dòng)態(tài)鏈接庫文件),將描述文件所包含的各項(xiàng)參數(shù)信息進(jìn)行反序列化。[0054]頁面描述解析器根據(jù)讀取到的參數(shù),獲取頁面描述界面所包含的界面元素,使用指定終端上的展現(xiàn)技術(shù),創(chuàng)建相應(yīng)的編輯器控件以及界面元素分組(如果有的話)。[0055]頁面描述解析器根據(jù)讀取到的參數(shù),獲取頁面描述界面的視圖類型以及每個(gè)界面元素在當(dāng)前視圖類型中的參數(shù)信息,并按照界面元素自身參數(shù)的優(yōu)先級(jí)高于全局樣式的參數(shù)的優(yōu)先級(jí)的規(guī)則,設(shè)置此前創(chuàng)建出來的編輯器控件的布局及樣式。[0056]頁面描述解析器根據(jù)讀取到的參數(shù),獲取頁面描述界面中界面元素與數(shù)據(jù)的綁定關(guān)系,并對(duì)外提供加載數(shù)據(jù)的方法,當(dāng)用戶指定數(shù)據(jù)源并加載數(shù)據(jù)時(shí),由頁面描述解析器在終端上對(duì)頁面描述界面進(jìn)行展現(xiàn),實(shí)現(xiàn)設(shè)計(jì)時(shí)的頁面描述界面。[0057]上述內(nèi)容當(dāng)中將業(yè)務(wù)數(shù)據(jù)以圖形化的方式進(jìn)行展示,非結(jié)構(gòu)化的數(shù)據(jù)可通過XML方式進(jìn)行存儲(chǔ),用戶可通過圖形化的方式來查看、編輯數(shù)據(jù),用XML語言以設(shè)備無關(guān)的數(shù)據(jù)描述形式來記錄頁面描述界面中的各項(xiàng)信息。并且僅記錄頁面描述界面中與展現(xiàn)技術(shù)(形式)無關(guān)的信息,匹配數(shù)據(jù)庫中一張指定的數(shù)據(jù)表,數(shù)據(jù)庫中一張指定的數(shù)據(jù)表可以同時(shí)匹配多個(gè)頁面描述文件,可以以XML文件的形式進(jìn)行持久化,可以通過編譯為動(dòng)態(tài)鏈接庫的形式進(jìn)行持久化。[0058]通常不同類型的終端,其頁面描述界面的展現(xiàn)技術(shù)(形式)不同,因此需要針對(duì)不同類型的終端定義特定的解析器??蓪⑺鲰撁婷枋鑫募D(zhuǎn)換為特定終端上的頁面描述界面。針對(duì)某種特定的展現(xiàn)技術(shù)(形式)所定義的頁面描述解析器,可以解析任何需要以該展現(xiàn)技術(shù)(形式)來進(jìn)行頁面描述界面展現(xiàn)的頁面描述文件。[0059]以下結(jié)合附圖和具體的實(shí)施例對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步描述。[0060]實(shí)施例1:[0061]本發(fā)明的具體實(shí)施按照?qǐng)D1所示流程進(jìn)行,下面以某業(yè)務(wù)系統(tǒng)中的一張頁面描述的描述與展現(xiàn)為例,描述該流程中的各步驟。[0062]1、查詢?cè)擁撁婷枋鏊鶎?duì)應(yīng)的數(shù)據(jù)庫表的名稱及該表所包含的字段。[0063]2、根據(jù)步驟I查詢到的表名,新增頁面描述文件,并將要綁定的數(shù)據(jù)表的名稱記錄到頁面描述文件中。[0064]3、根據(jù)步驟I查詢到的字段名,確定在頁面描述界面中需要展現(xiàn)的字段,從而確定界面元素的數(shù)量,以及每一個(gè)界面元素中編輯器控件的類型、數(shù)據(jù)綁定等信息。[0065]4、設(shè)置全局樣式(可選)。[0066]5、設(shè)置每一個(gè)界面元素的布局及樣式。[0067]6、導(dǎo)出為XML文件。[0068]7、分別為PC端和移動(dòng)端實(shí)現(xiàn)頁面描述解析器,視圖類型為詳細(xì)視圖。[0069]8、分別在PC端和移動(dòng)端使用對(duì)應(yīng)的頁面描述解析器解析并展現(xiàn)頁面描述。【權(quán)利要求】1.一種半結(jié)構(gòu)化的頁面描述與解析方法,其特征在于,包括如下步驟:(1)根據(jù)指定的頁面描述,將其布局、局部樣式信息記錄到頁面描述文件中,將其界面元素與數(shù)據(jù)字段間的綁定關(guān)系信息記錄到頁面描述文件中,得到記錄所述頁面描述界面的頁面描述文件;(2)針對(duì)不同類型的終端,實(shí)現(xiàn)特定的頁面描述解析器,解析所述頁面描述文件,獲取對(duì)應(yīng)終端上的頁面描述界面的布局方式及數(shù)據(jù)綁定關(guān)系,實(shí)現(xiàn)同一頁面描述在不同類型終端上的界面展現(xiàn),從而使頁面描述界面能夠根據(jù)不同終端的屏幕大小進(jìn)行自適應(yīng)。2.如權(quán)利要求1所述的一種半結(jié)構(gòu)化的頁面描述與解析方法,其特征在于:步驟(I)中布局和局部樣式具體是指顏色、字體、層次關(guān)系、對(duì)齊方式、換行方式;而界面元素與數(shù)據(jù)字段間的綁定關(guān)系具體是指數(shù)據(jù)的類型、可見性、只讀性、校檢規(guī)則、數(shù)據(jù)字段的編輯器類型。3.如權(quán)利要求1所述的一種半結(jié)構(gòu)化的頁面描述與解析方法,其特征在于:步驟(2)中不同類型的終端具體是指平板電腦、手機(jī)、桌面終端。4.如權(quán)利要求1所述的一種半結(jié)構(gòu)化的頁面描述與解析方法,其特征在于:步驟(I)中得到記錄所述頁面描述界面的頁面描述文件,具體包括如下步驟:將頁面文件反序列化,讀取參數(shù)、創(chuàng)建頁面文件元素對(duì)應(yīng)的控件和元素分組,根據(jù)頁面視圖類型和布局信息得到頁面布局控件和樣式,加載數(shù)據(jù)在終端上展現(xiàn)頁面。5.如權(quán)利要求1所述的一種半結(jié)構(gòu)化的頁面描述與解析方法,其特征在于:步驟(2)中實(shí)現(xiàn)特定的頁面描述解析器,具體包括如下步驟:針對(duì)不同類型的終端定義特定的解析器,將所述頁面描述文件轉(zhuǎn)換為特定終端上的頁面描述界面,最后針對(duì)特定的展現(xiàn)形式定義對(duì)應(yīng)的頁面描述解析器?!疚臋n編號(hào)】G06F17/30GK104199928SQ201410446978【公開日】2014年12月10日申請(qǐng)日期:2014年9月3日優(yōu)先權(quán)日:2014年9月3日【發(fā)明者】沙衛(wèi)國,于燁,王曄,任東曉,馮國禮,吳旻榮,夏琨,李斌,施科峰,張亮申請(qǐng)人:國家電網(wǎng)公司,國網(wǎng)寧夏電力公司信息通信公司