專利名稱:用于試圖同html或xml類型文檔接口交互的應(yīng)用的內(nèi)部數(shù)據(jù)結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于用對(duì)象編程語言寫的內(nèi)部數(shù)據(jù)結(jié)構(gòu),其具有多個(gè)能被實(shí)例化的類,用于通過讀與所述文檔相關(guān)的接口,產(chǎn)生屬于一個(gè)文檔系列的HTML或XML型文檔的內(nèi)部表示,所述接口由節(jié)點(diǎn)樹組成。
本發(fā)明也是有關(guān)于實(shí)例化從同HTML或XML類型文檔相關(guān)的接口的這種數(shù)據(jù)結(jié)構(gòu)的方法;所述的文檔類型屬于一個(gè)文檔系列。
本發(fā)明也是有關(guān)于能夠?qū)崿F(xiàn)此實(shí)例化方法的電子設(shè)備。
本發(fā)明也是有關(guān)于可能實(shí)現(xiàn)這種實(shí)例化方法的程序指令,所指的程序由處理器執(zhí)行。
本發(fā)明也是有關(guān)于用對(duì)象編程語言書寫的具有許多用來生成內(nèi)部數(shù)據(jù)表示的內(nèi)部數(shù)據(jù)結(jié)構(gòu),應(yīng)用程序能夠操作內(nèi)部數(shù)據(jù)表示;應(yīng)用程序本身的功能是試圖寫屬于一個(gè)文檔系列的HTML或XML文檔類型的接口;所述的接口包括節(jié)點(diǎn)樹。
本發(fā)明也是有關(guān)于利用內(nèi)部數(shù)據(jù)表示來寫一個(gè)屬于某文檔系列的HTML或XML文檔接口的方法;內(nèi)部數(shù)據(jù)表示是內(nèi)部數(shù)據(jù)結(jié)構(gòu)的一個(gè)實(shí)例。
本發(fā)明也是有關(guān)于具有實(shí)現(xiàn)這種書寫方法的電子設(shè)備。
本發(fā)明也是有關(guān)于在被處理器執(zhí)行所述程序時(shí),具有能夠?qū)崿F(xiàn)此書寫方法的指令的程序。
本發(fā)明在數(shù)據(jù)結(jié)構(gòu)和先前結(jié)構(gòu)的數(shù)據(jù)進(jìn)行操作領(lǐng)域具有重要應(yīng)用。在互連網(wǎng)上下文中,例如應(yīng)用到移動(dòng)通信設(shè)備或電視設(shè)備上極為有利。
背景技術(shù):
譬如,由W3C協(xié)會(huì)制定的在“Document Object Model(DOM),Level 1specification,version 1.0,October 1,1998”標(biāo)準(zhǔn)中定義的HTML或XML類型文檔接口。這個(gè)標(biāo)準(zhǔn)定義了一個(gè)面向?qū)ο蟮臉浣Y(jié)構(gòu),稱為DOM,使得有可能使HTML或XML類型文檔模型化。這個(gè)樹結(jié)構(gòu)的節(jié)點(diǎn)代表具有標(biāo)示和函數(shù)的對(duì)象(在對(duì)象編程中,這種屬于對(duì)象的函數(shù)被稱做方法)。在DOM標(biāo)準(zhǔn)中定義的方法使得在DOM結(jié)構(gòu)里導(dǎo)航并操作(存取節(jié)點(diǎn),修改,刪除,增加節(jié)點(diǎn)等)它成為可能。
DOM結(jié)構(gòu)被提出是用來充當(dāng)HTML或XML類型文檔和需要存取所述文檔內(nèi)容并/或生成這種文檔的應(yīng)用程序之間的接口。
然而,操作DOM結(jié)構(gòu)是困難的。一般地講,應(yīng)用程序不是直接操作DOM接口,而是操作從屬于上述DOM內(nèi)部數(shù)據(jù)結(jié)構(gòu)實(shí)例化的內(nèi)部數(shù)據(jù)表示。
在輸入模式,這些應(yīng)用程序可以使用DOM接口獲得HTML或XML類型的文檔的內(nèi)容以使內(nèi)部數(shù)據(jù)表示實(shí)例化。
相反,在輸出模式,它們可以產(chǎn)生內(nèi)部數(shù)據(jù)表示的DOM接口,以便使產(chǎn)生HTML或XML型文檔成為可能。
發(fā)明內(nèi)容
本發(fā)明的目的主要的是提出一種特別方便的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。在第一個(gè)實(shí)施例中,依據(jù)本發(fā)明內(nèi)部數(shù)據(jù)結(jié)構(gòu)是由許多的類構(gòu)成的,該類可以通過讀與上述文檔相關(guān)的接口,生成屬于某一系列文檔的HTML或XML類型文檔且由節(jié)點(diǎn)樹組成的的內(nèi)部表示,該內(nèi)部數(shù)據(jù)結(jié)構(gòu)其特征在于具有--為了填充由上述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類實(shí)例化的對(duì)象,這個(gè)通用類至少包括一個(gè)讀這種接口節(jié)點(diǎn)的通用方法,--一個(gè)或更多由上述通用類繼承而來的類,并且遵守與所述的系列文檔的相關(guān)而建立的命名和通信規(guī)則,由所述的通用讀方法使用所述的命名和通信規(guī)則來讀所述的接口。
在第二實(shí)施例中,內(nèi)部數(shù)據(jù)結(jié)構(gòu)具有許多類,目的是實(shí)例化來生成內(nèi)部數(shù)據(jù)表示,它可以被應(yīng)用程序操作,此應(yīng)用程序本身的用途是為屬于某系列文檔的HTML或XML文檔寫一個(gè)接口,其特征在于具有--一個(gè)通用類,這個(gè)類包括一個(gè)從上述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類的實(shí)例的接口中寫節(jié)點(diǎn)的通用方法,--一個(gè)或更多由上述通用類繼承來的類,這些類遵守與所述的系列文檔的相關(guān)而建立的命名和通信規(guī)則,由所述的通用讀方法使用所述的命名和通信規(guī)則來讀所述的接口。
所述的通用類不僅具有讀接口節(jié)點(diǎn)的通用方法(目的是填充上述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類的實(shí)例化的對(duì)象),而且具有寫接口節(jié)點(diǎn)的方法(上述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類的實(shí)例化的接口)的優(yōu)點(diǎn)。
這樣,本發(fā)明定義了一個(gè)可以由其它類繼承的抽象類,這個(gè)抽象通用類包括一個(gè)為HTML或XML類型文檔接口中寫節(jié)點(diǎn)的通用方法,并且/或者讀與HTML或XML類型文檔相關(guān)的接口節(jié)點(diǎn)的通用方法。
繼承機(jī)制是對(duì)象編程語言中所采用的傳統(tǒng)機(jī)制。特別地,它允許隱式地包含從類中繼承過來的方法。因此本發(fā)明使得能夠在抽象類層次上定義單個(gè)通用寫方法和/或單個(gè)通用讀方法,而不管接口如何。內(nèi)部數(shù)據(jù)表示對(duì)象是從抽象類中繼承過來的類實(shí)例,因此它們通過繼承都包含所述的讀和/或?qū)懛椒ā?br>
因此寫內(nèi)部數(shù)據(jù)結(jié)構(gòu)大大地簡(jiǎn)化了。
在本發(fā)明的一個(gè)相當(dāng)簡(jiǎn)單的實(shí)施例中,上述的HTML或XML類型文檔具有一個(gè)或更多元素,這里所指的元素可以包括一個(gè)或更多的子元素和/或一個(gè)或更多的屬性和/或其它內(nèi)容;并且上述的類或多個(gè)類具有一個(gè)或多個(gè)實(shí)例變量并遵守下述的命名和通信規(guī)則--上述內(nèi)部結(jié)構(gòu)類與HTML或XML類型文檔的一個(gè)元素相對(duì)應(yīng),上述的類和上述的元素具有相同的名稱,而且在上述類中--具有保留名稱的實(shí)例變量與上述元素的內(nèi)容相對(duì)應(yīng),--由從通用類繼承來的類實(shí)例對(duì)象構(gòu)成的實(shí)例變量與上述的元素的子元素相對(duì)應(yīng),上述的子元素和對(duì)象類實(shí)例具有相同的名稱。--由從通用類繼承來的類實(shí)例對(duì)象距陣構(gòu)成的實(shí)例變量與上述的元素的子元素表相對(duì)應(yīng),上述的子元素和對(duì)象類實(shí)例具有相同的名稱。--其它的實(shí)例變量與所述元素的屬性相對(duì)應(yīng),屬性和其相應(yīng)的實(shí)例變量具有相同的名稱。
本發(fā)明的另一個(gè)目的是提出一種從一個(gè)內(nèi)部數(shù)據(jù)表示來為HTML或XML類型文檔寫接口的方法,內(nèi)部數(shù)據(jù)表示是內(nèi)部數(shù)據(jù)結(jié)構(gòu)的一個(gè)實(shí)施例。上述的寫方法包括一個(gè)對(duì)象一個(gè)對(duì)象地掃描上述內(nèi)部數(shù)據(jù)表示,并且將上述通用寫方法應(yīng)用到每個(gè)上述表示對(duì)象上。
本發(fā)明的另一個(gè)目的是提出一個(gè)從與HTML或XML文檔相關(guān)接口的內(nèi)部數(shù)據(jù)結(jié)構(gòu)的實(shí)例化方法,其目的是生成上述文檔的內(nèi)部數(shù)據(jù)表示。上述的實(shí)例化方法包括逐個(gè)類地掃描上述的內(nèi)部數(shù)據(jù)結(jié)構(gòu),其方法是通過將上述的通用讀方法應(yīng)用到每個(gè)實(shí)例化的對(duì)象上,其目的是實(shí)例化上述類。
參照附圖中的實(shí)施例將進(jìn)一步加以描述本發(fā)明,但本發(fā)明并不局限于這些圖1描述的是HTML或XML類型文檔與應(yīng)用程序之間接口的例子的方框2是依據(jù)本發(fā)明的內(nèi)部數(shù)據(jù)結(jié)構(gòu)的原理表示;圖3是依據(jù)本發(fā)明的通用寫方法流程圖的方框圖;圖4是依據(jù)本發(fā)明的通用讀方法流程圖的方框圖;圖5是依據(jù)本發(fā)明的實(shí)例設(shè)備圖。
具體實(shí)施例方式
圖1是一個(gè)具有四個(gè)方框B1到B4以及描述HTML或XML類型文檔與應(yīng)用程序之間接口實(shí)例圖。方框B1代表一個(gè)HTML或XML類型文檔。方框B2代表HTML或XML類型文檔接口。作為例子這個(gè)接口由DOM規(guī)范中定義的結(jié)構(gòu)組成。方框B3代表一個(gè)語法分析器,這使得為生成上述HTML或XML類型文檔接口之目的而讀一個(gè)HTML或XML類型文檔成為可能。相反地,語法分析器也使從HTML或XML類型文檔接口生成HTML或XML類型文檔成為可能。
方框B4代表一個(gè)應(yīng)用程序,它包含一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)IDS和至少一個(gè)應(yīng)用程序PGM,此PGM用來操作內(nèi)部數(shù)據(jù)表示IDR,IDR是內(nèi)部數(shù)據(jù)結(jié)構(gòu)IDS的實(shí)例。
內(nèi)部數(shù)據(jù)結(jié)構(gòu)IDS描述的是某系列HTML或XML類型文檔的的特征(屬于某系列的文檔滿足一定的限制,比如,這些限制在XML語言里被表示成“DTD”文檔模型,或者稱為XML-概要(schema)語言的“概要”;內(nèi)部數(shù)據(jù)結(jié)構(gòu)描述這些限制)。
提供內(nèi)部數(shù)據(jù)結(jié)構(gòu)使得,一旦實(shí)例化內(nèi)部數(shù)據(jù)表示IDR從HTML或XML類型文檔接口獲得屬于某系列文檔的HTML或XML類型文檔內(nèi)容成為可能。同樣使得在輸出模式從內(nèi)部數(shù)據(jù)表示生成屬于某系列文檔的HTML或XML類型文檔的接口成為可能。
通過實(shí)施例,方框B1代表的文檔可以是一個(gè)JPEG2000格式的XML文檔。在這種情況下,結(jié)構(gòu)IDS描述的是上述JPEG2000格式。一旦這樣的內(nèi)部數(shù)據(jù)結(jié)構(gòu)實(shí)例化,就可以從與XML文檔相關(guān)的DOM接口獲取JPEG2000文件的內(nèi)容,XML文檔代表上述的JPEG2000文件。
圖2原理性地描述了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)IDS的最佳實(shí)施例和這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)IDS的實(shí)例化的內(nèi)部數(shù)據(jù)表示IDR。
內(nèi)部數(shù)據(jù)結(jié)構(gòu)IDS是用對(duì)象編程語言如C++或JAVA寫的。它包含一個(gè)通用抽象類CG,CG包括一個(gè)通用寫方法WM和一個(gè)通用讀方法RM。它也具有一系列的類C1,...Ci,...,CN,它們都是由通用類Cg繼承而來的。在圖2里,這些繼承關(guān)系是用箭頭H1,...H2,...HN。表示的。
內(nèi)部數(shù)據(jù)表示IDR具有一系列的對(duì)象O1,...Oi,...ON,它們是類C1,...Ci,...CN的實(shí)例對(duì)象O1,...Oi,...ON的實(shí)例用箭頭I1,...Ii,...IN號(hào)化。由于對(duì)象O1,...Oi,...On是從抽象通用類CG繼承來的類的實(shí)例,它們都包含在通用類CG中定義的寫方法WM和讀方法RM。
依據(jù)本發(fā)明,類C1,...Ci,...CN遵守關(guān)于上述系列文檔建立起的命名和通信規(guī)則。通用寫方法WM和讀方法RM使用這些命名和通信規(guī)則來寫和讀上述的HTML或XML類型文檔接口。
一般地講,一個(gè)HTML或XML類型文檔具有一個(gè)或多個(gè)元素,相應(yīng)地,它具有一個(gè)或多個(gè)子元素和/或一個(gè)或多個(gè)屬性和/或一些內(nèi)容。
進(jìn)一步,在對(duì)象編程中,一個(gè)類能夠具有一個(gè)或多個(gè)實(shí)例變量,每個(gè)實(shí)例變量具有一個(gè)名稱和類型。在本描述的末尾部分將考慮四種類型的實(shí)例變量■ 具有保留名稱(在本描述的末尾部分這個(gè)保留字叫做“data”)的字符串型實(shí)例變量。
■ 對(duì)象數(shù)組類型的實(shí)例變量。
■ 其它具有原始類型的實(shí)例變量,例如整型實(shí)例變量,浮點(diǎn)型實(shí)例變量或具有與上述保留字不同的字符串型實(shí)例變量。
在本發(fā)明的一個(gè)優(yōu)化實(shí)施例中,內(nèi)部數(shù)據(jù)結(jié)構(gòu)類遵循下面的命名和通信規(guī)則■ 上述內(nèi)部數(shù)據(jù)結(jié)構(gòu)的每個(gè)類與HTML或XML類型文檔的一個(gè)元素內(nèi)容相對(duì)應(yīng),上述的類和上述的元素具有相同的名稱,
而且在上述類中■ 一個(gè)具有上述保留字的字符串型實(shí)例變量與上述元素相對(duì)應(yīng),■ 由從通用類繼承來的類實(shí)例對(duì)象構(gòu)成的實(shí)例變量與上述元素的子元素相對(duì)應(yīng),上述子元素和對(duì)象的類具有相同的名稱,■ 由從通用類繼承來的類實(shí)例對(duì)象陣列構(gòu)成的實(shí)例變量與上述元素的子元素表相對(duì)應(yīng),上述子元素和對(duì)象的類具有相同的名稱,■ 其它實(shí)例變量與上述元素屬性相對(duì)應(yīng),屬性與其相對(duì)應(yīng)的實(shí)例變量具有相同的名稱。上面說明的命名和通信規(guī)則現(xiàn)在通過XML文檔實(shí)施例來加以說明,而且描述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類,它們被實(shí)例化以生成這樣的文檔的內(nèi)部數(shù)據(jù)表示Example of an XML document<Mainheader>
<SIZ Csiz=”3”>
this is some content</SIZ>
</Mainheader>
相應(yīng)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)有兩個(gè)從通用類繼承來類類“SIZ”和類“Mainheader”。類“SIZ”具有整型類型實(shí)例變量“Csiz”,和字符串型實(shí)例變量“data”。類“Mainheader”有一個(gè)對(duì)象,它是類“SIZ”的實(shí)例,名稱叫“siz”。
<pre listing-type="program-listing"> In the JAVA language,these two classes are written as follows(the genericcalss here has the name JElt) Public class SIZ Extends JElt{ Public int Csiz; Public String data; } public class Mainheader extends JElt{ public SIZ siz; }</pre>
根據(jù)DOM規(guī)范,一個(gè)DOM樹能夠具有不同類型節(jié)點(diǎn)和特別的元素類型節(jié)點(diǎn),屬性類型節(jié)點(diǎn),和文本類型節(jié)點(diǎn)。一個(gè)元素類型節(jié)點(diǎn)響應(yīng)于HTML或XML文檔的元素,一個(gè)屬性節(jié)點(diǎn)響應(yīng)于HTML或XML文檔的屬性,以及一個(gè)文本類型文檔響應(yīng)于一個(gè)HTML或XML文檔元素的內(nèi)容。
圖3描述的是在DOM接口中,寫節(jié)點(diǎn)的通用方法的流程圖。本方法把DOM節(jié)點(diǎn)作為變量,DOM節(jié)點(diǎn)是要寫的節(jié)點(diǎn)的父節(jié)點(diǎn)(在圖3中,這個(gè)節(jié)點(diǎn)用FN標(biāo)示)。它被當(dāng)前對(duì)象使用,稱為當(dāng)前對(duì)象。
依據(jù)圖3,依據(jù)本發(fā)明的通用寫方法在步驟S1創(chuàng)建一個(gè)元素類型節(jié)點(diǎn)N并根據(jù)當(dāng)前對(duì)象的名稱來命名它。下一步,寫方法掃描本對(duì)象的所有實(shí)例變量并對(duì)每個(gè)實(shí)例變量,依據(jù)實(shí)例變量的類型執(zhí)行以下步驟的其中之一如果實(shí)例變量是對(duì)象陣列,此陣列是從通用類JElt(步驟S2)繼承來的類實(shí)例■ 創(chuàng)建DOM元素類型節(jié)點(diǎn)E1,...Ep表L,根據(jù)上述類的名稱命名之,■ 將本表中節(jié)點(diǎn)增加到DOM樹,并作為當(dāng)前節(jié)點(diǎn)N的子節(jié)點(diǎn),■ 對(duì)增加的每個(gè)節(jié)點(diǎn)E1,...Ep調(diào)用寫方法。
如果實(shí)例變量是從通用類JElt(步驟S3)繼承來的實(shí)例對(duì)象■ 創(chuàng)建DOM元素類型節(jié)點(diǎn)E,根據(jù)上述類的名稱命名之,■ 將創(chuàng)建的節(jié)點(diǎn)E增加到DOM樹,并作為當(dāng)前節(jié)點(diǎn)N的子節(jié)點(diǎn),■ 對(duì)增加的節(jié)點(diǎn)E調(diào)用寫方法。
如果實(shí)例變量是個(gè)字符串型實(shí)例變量,具有保留名稱“data”(步驟S4)■ 創(chuàng)建DOM文本類型節(jié)點(diǎn)T,其值是由實(shí)例變量的值組成的。
在所有其它情況下(步驟S5)。
■ 創(chuàng)建一個(gè)DOM屬性類型節(jié)點(diǎn)A,依據(jù)實(shí)例變量命名之并且其值是由實(shí)例變量的值構(gòu)成的。圖4描述的是用DOM接口讀節(jié)點(diǎn)通用方法的流程圖。這種方法用DOM節(jié)點(diǎn)作為變量(DOM節(jié)點(diǎn)包含有為實(shí)例化對(duì)象即當(dāng)前對(duì)象之目的要獲取的信息),在圖4中這個(gè)節(jié)點(diǎn)以IN來標(biāo)示。
正如在圖4中所示,依據(jù)本發(fā)明的通用讀方法包括掃描當(dāng)前對(duì)象的所有的實(shí)例變量并且對(duì)其中的每個(gè)變量根據(jù)實(shí)例變量的類型執(zhí)行下面步驟中之一如果實(shí)例變量是對(duì)象陣列,此陣列是從通用類JElt(步驟T2)繼承來的類實(shí)例■ 在DOM樹中尋找所有DOM元素類型節(jié)點(diǎn),這些節(jié)點(diǎn)和類具有相同名稱而且是當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)(在圖4中這些節(jié)點(diǎn)以E1,...Ep標(biāo)示)。
■ 對(duì)其中每個(gè)節(jié)點(diǎn)E1,...Ep調(diào)用讀方法。
如果實(shí)例變量是從通用類JElt(步驟T3)繼承來的類實(shí)例對(duì)象■ 在DOM樹中尋找DOM元素類型節(jié)點(diǎn),這些節(jié)點(diǎn)和類具有相同名稱而且是當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)(在圖4中此節(jié)點(diǎn)以E標(biāo)示)。
■ 對(duì)此節(jié)點(diǎn)E調(diào)用讀方法。
如果實(shí)例變量是個(gè)字符串型實(shí)例變量,具有保留名稱“data”(步驟T4)■ 尋找DOM文本類型節(jié)點(diǎn),此節(jié)點(diǎn)是當(dāng)前節(jié)點(diǎn)DOM節(jié)點(diǎn)的子節(jié)點(diǎn)(在圖4中這個(gè)節(jié)點(diǎn)以T標(biāo)示)。
■ 獲取節(jié)點(diǎn)T的值以便于填充當(dāng)前實(shí)例變量。
在所有其它情況下(步驟T5)■ 在DOM樹中尋找DOM屬性類型節(jié)點(diǎn),這些節(jié)點(diǎn)和當(dāng)前實(shí)例變量類具有相同名稱而且是當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)(在圖4中這些節(jié)點(diǎn)以A標(biāo)示)。
■ 獲取節(jié)點(diǎn)A的值以便于填充當(dāng)前實(shí)例變量。
附件包含一個(gè)用JAVA語言編寫的實(shí)現(xiàn)通用類“JElt”的例子,它包括一個(gè)通用寫方法“corite To DOM”和一個(gè)通用讀方法“read From DOM”。
圖5描述的是依據(jù)本發(fā)明實(shí)現(xiàn)的設(shè)備實(shí)施例,此設(shè)備PX是一個(gè)基于微處理器匯編MP。MP主要包括一個(gè)處理器P和存儲(chǔ)器MEM。存儲(chǔ)器MEM里包括■ 內(nèi)部數(shù)據(jù)結(jié)構(gòu)IDS,■ 一個(gè)為生成內(nèi)部數(shù)據(jù)表示IDR之目的而實(shí)例化內(nèi)部數(shù)據(jù)結(jié)構(gòu)的程序P1,■ 一個(gè)用來操作內(nèi)部數(shù)據(jù)表示并傳送內(nèi)部輸出數(shù)據(jù)表示之目的的應(yīng)用程序P2,■ 為上述輸出數(shù)據(jù)表示實(shí)現(xiàn)寫方法的程序P3。
上面描述的內(nèi)部數(shù)據(jù)結(jié)構(gòu)具有一個(gè)通用類,此通用類既包含讀接口節(jié)點(diǎn)的通用方法也包含寫接口節(jié)點(diǎn)的通用方法。但還不僅局限于此。通用類可以含有這些通用方法之一。
進(jìn)一步,在剛剛描述的實(shí)施例中,接口是DOM接口而且文檔是HTML或XML類型文檔,因?yàn)檫@些接口和文檔是到本發(fā)明迄今為止使用最普遍的接口和文檔。但并僅局限于此,在原則上對(duì)其它類型接口以及其它文檔或者這種類型接口和文檔的開發(fā)也是適用的。
權(quán)利要求
1.一種由對(duì)象編程語言寫的內(nèi)部數(shù)據(jù)結(jié)構(gòu),具有多個(gè)能被實(shí)例化的類,用于通過讀與所述文檔相關(guān)的接口,產(chǎn)生屬于一個(gè)文檔系列的HTML或XML型文檔的內(nèi)部表示,所述接口由節(jié)點(diǎn)樹構(gòu)成,其特征在于所述內(nèi)部結(jié)構(gòu)具有--為了填充上述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類實(shí)例化的對(duì)象之目的,這個(gè)通用類至少包括一個(gè)讀這種接口節(jié)點(diǎn)的通用方法,--一個(gè)或更多由上述通用繼承來的類,這些類遵守關(guān)于所述的系列文檔建立的命名和通信規(guī)則,所述的通用讀方法使用所述的命名和通信規(guī)則是用來讀所述的接口的。
2.一種內(nèi)部數(shù)據(jù)結(jié)構(gòu),是用對(duì)象編程語言寫的,由許多的類構(gòu)成,目的是為了實(shí)例化生成屬于某一系列文檔的HTML或XML類型文檔的內(nèi)部數(shù)據(jù)表示,這些內(nèi)部數(shù)據(jù)結(jié)構(gòu)可以可被應(yīng)用程序操作,應(yīng)用程序本身是用于寫屬于某系列文檔的HTML或XML類型文檔接口的,此接口包括節(jié)點(diǎn)樹,其特征在于內(nèi)部數(shù)據(jù)結(jié)構(gòu)具有--一個(gè)通用類,這個(gè)類包括一個(gè)從上述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類的實(shí)例接口中寫節(jié)點(diǎn)的通用方法,--一個(gè)或更多由上述通用類繼承來的類,這些類遵守關(guān)于所述的系列文檔建立的命名和通信規(guī)則,所述的通用寫方法使用所述的命名和通信規(guī)則來寫所述的接口。
3.根據(jù)權(quán)利要求1或2所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu),其特征在于所述的HTML或XML類型文檔具有一個(gè)或更多元素,它們具有一個(gè)或多個(gè)子元素量和/或一個(gè)或更多屬性和/或其它內(nèi)容,而且所述類具有一個(gè)或更多的實(shí)例變量并遵守下面的命名和通信規(guī)則--所述內(nèi)部數(shù)據(jù)結(jié)構(gòu)類與HTML或XML類型文檔的元素相對(duì)應(yīng),所述的類和所述的元素具有相同的名稱,而且在所述類中--具有保留名稱的實(shí)例變量與所述元素的內(nèi)容相對(duì)應(yīng),--由對(duì)象組成的實(shí)例變量作為從通用類繼承的類實(shí)例,與所述元素的子元素相對(duì)應(yīng)的,所述的子元素和實(shí)例化對(duì)象的類具有相同的名稱,--由從通用類繼承來的類實(shí)例對(duì)象的陣列構(gòu)成的實(shí)例變量與上述元素的子元素表相對(duì)應(yīng),所述子元素和其對(duì)象為實(shí)例的類具有相同的名稱;--其它實(shí)例變量與所述元素屬性相對(duì)應(yīng),屬性與相應(yīng)的實(shí)例變量具有相同的名稱。
4.一種利用根據(jù)權(quán)利要求2所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu)例子的內(nèi)部數(shù)據(jù)表示為HTML或XML類型文檔編寫的接口的方法,所述方法包括如下步驟逐個(gè)地掃描所述的內(nèi)部數(shù)據(jù)表示以及將所述的通用寫方法應(yīng)用到每個(gè)表示對(duì)象上。
5.一種利用根據(jù)權(quán)利要求3所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu)例子的內(nèi)部數(shù)據(jù)表示為HTML或XML類型文檔寫接口的方法,所述方法包括如下步驟逐個(gè)地掃描所述的內(nèi)部數(shù)據(jù)表示以及將所述的通用寫方法應(yīng)用到每個(gè)表示對(duì)象上。
6.一種程序,它的指令使得能夠?qū)崿F(xiàn)如權(quán)利要求4所述的為HTML或XML類型文檔寫接口的方法,其中所述程序由處理器執(zhí)行。
7.一種電子設(shè)備,具有實(shí)現(xiàn)如權(quán)利要求3所述的為HTML或XML類型文檔編寫接口的方法的裝置。
8.一種利用與HTML或XML類型文檔相關(guān)的接口實(shí)例化如權(quán)利要求1所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu)的方法,其目的是生成所述文檔的內(nèi)部表示,所述的實(shí)例化方法包括逐類掃描所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu);通過將所述的通用讀方法應(yīng)用到每個(gè)實(shí)例化對(duì)象來實(shí)例化所述的類。
9.一種利用與HTML或XML類型文檔相關(guān)的接口實(shí)例化如權(quán)利要求3所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu)的方法,其目的是生成所述文檔的內(nèi)部表示,所述的實(shí)例化方法包括逐類掃描所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu);通過將所述的通用讀方法應(yīng)用到每個(gè)實(shí)例化對(duì)象來實(shí)例化所述的類。
10.一種程序,由一個(gè)處理器執(zhí)行時(shí),它的指令使得能夠?qū)崿F(xiàn)如 8所述的實(shí)例化內(nèi)部數(shù)據(jù)表示的方法。
11.一種電子設(shè)備,具有實(shí)現(xiàn)如權(quán)利要求8所述的實(shí)例化內(nèi)部數(shù)據(jù)表示的方法的裝置。
全文摘要
本發(fā)明提出一種用對(duì)象語言寫的內(nèi)部數(shù)據(jù)結(jié)構(gòu),而且這個(gè)內(nèi)部數(shù)據(jù)結(jié)的地意圖是被實(shí)例化用來提供能夠被應(yīng)用程序操作的內(nèi)部數(shù)據(jù)表示。這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)有一個(gè)抽象通用類,其它類都是從這個(gè)類繼承來的。這個(gè)通用抽象類包括一個(gè)HTML或XML類型文檔接口的通用寫節(jié)點(diǎn)方法和/或一個(gè)與HTML或XML類型文檔相關(guān)的接口的通用讀節(jié)點(diǎn)方法。這樣,在該應(yīng)用輸入模式下通過實(shí)例化所述的內(nèi)部數(shù)據(jù)結(jié)構(gòu)能夠從同HTML或XML類型文檔相關(guān)的接口生成內(nèi)部數(shù)據(jù)表示。而且在輸出模式,能夠從內(nèi)部數(shù)據(jù)表示為HTML或XML類型文檔寫接口。
文檔編號(hào)G06F12/00GK1384432SQ0212058
公開日2002年12月11日 申請(qǐng)日期2002年4月24日 優(yōu)先權(quán)日2001年4月27日
發(fā)明者S·德維勒斯 申請(qǐng)人:皇家菲利浦電子有限公司