專利名稱:帶有嵌套表格的無模式數(shù)據(jù)映射系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)映射系統(tǒng)和方法,尤其涉及不使用模式的數(shù)據(jù)映射系統(tǒng)和方法。
背景技術(shù):
由于可擴(kuò)充標(biāo)記語(yǔ)言(XML)變得越來越普及于在應(yīng)用程序之間,尤其是通過因特網(wǎng)移動(dòng)數(shù)據(jù),流行的應(yīng)用程序通過使用XML實(shí)現(xiàn)了web相關(guān)的能力(如,向web發(fā)行文檔)。一個(gè)這樣的應(yīng)用程序是由華盛頓州雷蒙德市的微軟公司提供的MICROSOFT EXCEL。引入了XML列表以顯示符合預(yù)定模式的XML有效負(fù)載數(shù)據(jù)。通常,XML有效負(fù)載數(shù)據(jù)和XML列表的構(gòu)成之間的關(guān)系由XML映射來定義,它是電子表格工作簿定義的一部分。XML映射可確定XML列表在工作簿中的位置、將被映射的列的數(shù)量、以及與每一列相關(guān)聯(lián)的元素或?qū)傩缘念愋?。XML電子表格(XMLSS)文件描述了電子表格工作簿,包括該工作簿所包含的所有XML列表。預(yù)定模式的元素被映射到一網(wǎng)格,以創(chuàng)建已映射的XML列表,其每一行表示有效負(fù)載數(shù)據(jù)的節(jié)點(diǎn)實(shí)例。一般而言,模式定義了XML有效負(fù)載數(shù)據(jù)的形狀。
為使應(yīng)用程序能夠提供因特網(wǎng)上有效的交互性,電子表格應(yīng)用程序必須確保給定的工作簿如同它在獨(dú)立的系統(tǒng)上那樣通過網(wǎng)絡(luò)來加載并顯示。這一保真度的關(guān)鍵部分是將有效負(fù)載數(shù)據(jù)映射成XML列表。這一映射要求使用預(yù)定的模式。
不幸的是,將XML有效負(fù)載數(shù)據(jù)映射到XML列表的預(yù)定模式的信賴程度可能是有問題的。例如,如果該模式是不可用的或者被破壞的,則數(shù)據(jù)可能無法被正確地映射。另外,向有效負(fù)載數(shù)據(jù)和XML列表應(yīng)用模式可能要求計(jì)算機(jī)處理單元(CPU)的密集處理。處理器的這一負(fù)擔(dān)對(duì)注入服務(wù)器或手持式設(shè)備等計(jì)算系統(tǒng)而言可能是不切實(shí)際或不利的。
由于映射嵌套表格的復(fù)雜性,將有效負(fù)載數(shù)據(jù)映射到電子表格列表而不使用模式可能是困難的。嵌套表格通常用于顯示錯(cuò)綜復(fù)雜的有效負(fù)載數(shù)據(jù),使得表格可能包括多個(gè)表格(如,子表)嵌套表格的遞歸特性允許顯示相互關(guān)連的有效負(fù)載數(shù)據(jù)。
因此,本領(lǐng)域中需要一種用于將有效負(fù)載數(shù)據(jù)映射到電子表格,而不使用模式的系統(tǒng)和方法。
本領(lǐng)域中也需要一種用于將有效負(fù)載數(shù)據(jù)映射到電子表格列表,而不使用模式的系統(tǒng)和方法,其中,結(jié)果基本上類似于使用模式的數(shù)據(jù)映射。
此外,本領(lǐng)域中需要一種系統(tǒng)和方法,用于將有效負(fù)載數(shù)據(jù)映射到電子表格列表,同時(shí)支持嵌套表格的實(shí)現(xiàn),而不使用模式。
發(fā)明內(nèi)容
概括而言,本發(fā)明包括一種用于將有效負(fù)載數(shù)據(jù)映射到電子表格數(shù)據(jù)的電子表格列表(如,XML列表)的系統(tǒng)和方法。更具體地,本發(fā)明包括一種系統(tǒng),用于將有效負(fù)載數(shù)據(jù)映射到電子表格列表,同時(shí)支持嵌套表格的實(shí)現(xiàn),而不使用模式。在接收電子表格列表之后,本發(fā)明生成電子表格列表中定義的每一字段路徑的父路徑。最長(zhǎng)的父路徑(如,底部路徑)可用于從有效負(fù)載數(shù)據(jù)生成一組綁定。本發(fā)明可將每一綁定節(jié)點(diǎn)映射到電子表格列表中的一行。通過使用底部路徑和字段路徑從每一綁定節(jié)點(diǎn)遍歷,本發(fā)明可獲取電子表格列表的行中所有其它字段的值?;蛘?,如果一個(gè)以上父路徑符合最長(zhǎng)父路徑的資格,并且這些父路徑彼此不相等或不是彼此的子集,則可將這些父路徑指定為分支底部路徑。然后可將所有其它的路徑與一適當(dāng)?shù)姆种У撞柯窂较嚓P(guān)聯(lián)。在綁定過程中,可以對(duì)每一分支底部路徑求值以生成結(jié)果節(jié)點(diǎn),它可用于獲取電子表格列表的字段的值。
有利的是,本發(fā)明將有效負(fù)載數(shù)據(jù)映射到電子表格列表,而無需使用模式。本發(fā)明提供的結(jié)果基本上類似于通過使用模式來生成的結(jié)果。另外,本發(fā)明支持電子表格列表內(nèi)嵌套表格的實(shí)現(xiàn)。因此,本發(fā)明消除了為將有效負(fù)載數(shù)據(jù)映射到電子表格列表而對(duì)模式的依賴性,從而減少了潛在的數(shù)據(jù)映射失敗。另外,消除這一依賴性(如,處理器密集型數(shù)據(jù)映射)釋放了計(jì)算機(jī)處理單元的有價(jià)值的資源,用于更重要的任務(wù)。
當(dāng)結(jié)合附圖閱讀并理解本發(fā)明的說明書使,可以清楚本發(fā)明的其它特征和優(yōu)點(diǎn)。
圖1示出了依照本發(fā)明的一個(gè)示例性實(shí)施例的電子表格數(shù)據(jù)映射系統(tǒng)的框圖表示。
圖2示出了依照本發(fā)明的一個(gè)示例性實(shí)施例其可使用的計(jì)算環(huán)境和計(jì)算機(jī)系統(tǒng)的框圖表示;圖3示出了依照本發(fā)明的一個(gè)示例性實(shí)施例包括電子表格列表的電子表格數(shù)據(jù)的偽代碼表示。
圖4示出了依照本發(fā)明的一個(gè)示例性實(shí)施例的有效負(fù)載數(shù)據(jù)的偽代碼表示。
圖5示出了依照本發(fā)明的一個(gè)示例性實(shí)施例的有效負(fù)載數(shù)據(jù)的框圖。
圖6示出了依照本發(fā)明的一個(gè)示例性實(shí)施例的已映射電子表格列表的框圖。
圖7A-7C示出了依照本發(fā)明的一個(gè)示例性實(shí)施例將有效負(fù)載數(shù)據(jù)映射到電子表格列表的方法的流程圖表示。
具體實(shí)施例方式
現(xiàn)在參考附圖,貫穿附圖,相同的標(biāo)號(hào)表示相同的組件或步驟,圖1示出了依照本發(fā)明的一個(gè)示例性實(shí)施例的電子表格數(shù)據(jù)映射系統(tǒng)100的框圖表示。電子表格數(shù)據(jù)映射系統(tǒng)100可包括通信設(shè)備103,包括但不限于,電子表格存儲(chǔ)單元109、有效負(fù)載數(shù)據(jù)存儲(chǔ)單元105和映射單元106。通信設(shè)備103可由類似于下文參考圖2更完整描述的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置中找到的硬件和軟件組件支持。
電子表格存儲(chǔ)單元109通信上連接到映射單元106。電子表格存儲(chǔ)單元109儲(chǔ)存電子表格數(shù)據(jù),它包括電子表格列表,諸如但不限于,下文參考圖3更完整描述的可擴(kuò)充標(biāo)記語(yǔ)言(XML)列表112。電子表格單元109包括能夠儲(chǔ)存和檢索數(shù)據(jù)的存儲(chǔ)器設(shè)備,包括但不限于,隨機(jī)存取存儲(chǔ)器(RAM)、閃存、磁存儲(chǔ)器設(shè)備、光存儲(chǔ)器設(shè)備、硬盤驅(qū)動(dòng)器、可移動(dòng)、易失或非易失存儲(chǔ)器設(shè)備、光存儲(chǔ)介質(zhì)、磁存儲(chǔ)介質(zhì)或RAM存儲(chǔ)卡?;蛘撸娮颖砀翊鎯?chǔ)單元109可包括可通過有線和/或無線網(wǎng)絡(luò)系統(tǒng)訪問的遠(yuǎn)程存儲(chǔ)設(shè)備。另外,電子表格存儲(chǔ)單元109可包括存儲(chǔ)器系統(tǒng),包括如上所述的初級(jí)和次級(jí)存儲(chǔ)器設(shè)備的多級(jí)系統(tǒng)。初級(jí)存儲(chǔ)器設(shè)備和次級(jí)存儲(chǔ)器設(shè)備可作為彼此的高速緩存來操作,或者次級(jí)存儲(chǔ)器設(shè)備可擔(dān)當(dāng)初級(jí)存儲(chǔ)器設(shè)備的備份。在又一方案中,電子表格存儲(chǔ)單元109可包括被配置成簡(jiǎn)單數(shù)據(jù)庫(kù)文件或使用諸如SQL等查詢語(yǔ)言的可搜索的關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)器設(shè)備。
有效負(fù)載數(shù)據(jù)存儲(chǔ)單元115通信上連接到映射單元106。有效負(fù)載數(shù)據(jù)存儲(chǔ)單元115儲(chǔ)存有效負(fù)載數(shù)據(jù),其中,有效負(fù)載數(shù)據(jù)可被映射到電子表格數(shù)據(jù)的對(duì)應(yīng)XML列表112。有效負(fù)載數(shù)據(jù)在下文參考圖4更完整地描述。有效負(fù)載數(shù)據(jù)存儲(chǔ)單元115包括類似于上文參考電子表格存儲(chǔ)單元109所討論的存儲(chǔ)器設(shè)備的存儲(chǔ)器設(shè)備。
映射單元106通信上耦合到電子表格存儲(chǔ)單元109和有效負(fù)載數(shù)據(jù)存儲(chǔ)單元115。映射單元106用適用于執(zhí)行任務(wù)并提供此處所描述的能力和功能的硬件和軟件(圖2)來配置。映射單元106可適用于將儲(chǔ)存在有效負(fù)載數(shù)據(jù)存儲(chǔ)單元115中的有效負(fù)載數(shù)據(jù)映射到儲(chǔ)存在電子表格存儲(chǔ)單元109中的XML列表112。
在操作中,映射單元106從電子表格存儲(chǔ)單元109接收電子表格數(shù)據(jù),并從有效負(fù)載數(shù)據(jù)存儲(chǔ)單元115接收有效負(fù)載數(shù)據(jù)。電子表格數(shù)據(jù)可包括XML列表112,它一般由一組字段(此處也稱為“列”)來定義。通常,字段可以被計(jì)算或映射。計(jì)算的字段可由公式或常量來定義,而映射的字段可由到有效負(fù)載數(shù)據(jù)的“路徑”或“指針”來定義。映射單元106可使用字段路徑來從有效負(fù)載數(shù)據(jù)獲取節(jié)點(diǎn)列表(如,有時(shí)候被稱為“綁定節(jié)點(diǎn)”),由此,每一節(jié)點(diǎn)然后可由映射單元106映射到XML列表112中的一行。映射單元106可通過跟隨從節(jié)點(diǎn)到期望字段的路徑,從有效負(fù)載數(shù)據(jù)中獲取XML列表112中所有字段的值。
在本發(fā)明的一個(gè)替換實(shí)施例中,通信設(shè)備103還包括一用戶界面118,它適用于向用戶顯示數(shù)據(jù),并接收用戶輸入。用戶界面118通信上連接到映射單元106。映射單元106可向用戶界面118提供映射的XML列表112,用戶界面118可通過顯示器(未示出)向用戶顯示映射的XML列表112。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,用戶界面118可用各種實(shí)施例和格式來設(shè)計(jì),并且其范圍可以從簡(jiǎn)單到更復(fù)雜的配置。在本發(fā)明的一個(gè)示例性實(shí)施例中,用戶界面118可包括小鍵盤、顯示屏、觸摸屏或其它方便的設(shè)備,并也可包括執(zhí)行預(yù)定任務(wù)的程序模塊或機(jī)器指令,指令可在處理單元121上執(zhí)行。
另外,通信設(shè)備103可包括便于從通信設(shè)備103到網(wǎng)絡(luò)124的通信的網(wǎng)絡(luò)接口121。網(wǎng)絡(luò)接口121通信上連接到映射單元106和網(wǎng)絡(luò)124。映射單元106可向網(wǎng)絡(luò)接口121提供映射的XML列表112,網(wǎng)絡(luò)接口121可向網(wǎng)絡(luò)124中的另一通信設(shè)備提供映射的XML列表112。網(wǎng)絡(luò)接口121通??梢允怯布O(shè)備,如網(wǎng)絡(luò)接口卡或通信設(shè)備103的擴(kuò)展卡,它方便了通信設(shè)備103和網(wǎng)絡(luò)124之間的連接。盡管未在圖1中示出,然而網(wǎng)絡(luò)接口121可包括射頻發(fā)送器和接收器,它們啟用了通信設(shè)備103和網(wǎng)絡(luò)124的接入點(diǎn)(未示出)之間的通信。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,網(wǎng)絡(luò)124通常包括適用于連接兩個(gè)或多個(gè)通信設(shè)備103(包括但不限于,多個(gè)服務(wù)器或客戶機(jī)設(shè)備)的組的基礎(chǔ)結(jié)構(gòu)和設(shè)置。這一網(wǎng)絡(luò)124、通信設(shè)備103和服務(wù)器可用多種拓樸來配置,包括但不限于,星形、總線形或環(huán)形配置。同樣,網(wǎng)絡(luò)124、通信設(shè)備103和服務(wù)器可被概括地歸類為屬于特定的體系結(jié)構(gòu),包括但不限于對(duì)等客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。網(wǎng)絡(luò)124另外可按通信設(shè)備103或服務(wù)器的地理位置或其類型來分類。例如,連接如在一個(gè)建筑物中彼此相近地定位的多個(gè)計(jì)算機(jī)系統(tǒng)或服務(wù)器的網(wǎng)絡(luò)124被稱為局域網(wǎng)(LAN);如果計(jì)算機(jī)系統(tǒng)相互遠(yuǎn)離地定位,則網(wǎng)絡(luò)124一般被稱為廣域網(wǎng)(WAN),如因特網(wǎng);如果計(jì)算機(jī)系統(tǒng)位于有限的地理區(qū)域內(nèi),如大學(xué)校園或軍事機(jī)關(guān)內(nèi),則網(wǎng)絡(luò)124被稱為校園網(wǎng)(CAN);如果計(jì)算機(jī)系統(tǒng)在城市或城鎮(zhèn)內(nèi)連接在一起,則網(wǎng)絡(luò)124被稱為城域網(wǎng)(MAN);如果計(jì)算機(jī)系統(tǒng)在用戶的家中連接在一起,則網(wǎng)絡(luò)124被稱為家庭網(wǎng)絡(luò)(HAN)。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,通信上連接可包括或需要用于信號(hào)和/或媒介的雙向通信的任一適當(dāng)類型的通信,包括但不限于,模擬、數(shù)字、無線和有線通信信道。這類通信信道可使用,但不限于、銅線、光纖、射頻、紅外、衛(wèi)星或其它設(shè)備和媒介。
盡管本發(fā)明的若干實(shí)施例涉及XML電子表格數(shù)據(jù)、XML列表和XML有效負(fù)載數(shù)據(jù),然而本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在本發(fā)明的范圍內(nèi)也可使用其它類型的數(shù)據(jù)配置,因此,本發(fā)明不限于以XML配置的數(shù)據(jù)。
圖2示出了依照本發(fā)明的一個(gè)示例性實(shí)施例,其可使用的計(jì)算環(huán)境200及其計(jì)算機(jī)系統(tǒng)210、280的框圖表示。計(jì)算環(huán)境200及其計(jì)算機(jī)系統(tǒng)210、280僅為用于實(shí)施本發(fā)明的合適的計(jì)算環(huán)境的一個(gè)示例,并非暗示對(duì)本發(fā)明的使用范圍或功能的局限。也不應(yīng)將計(jì)算機(jī)系統(tǒng)210、280解釋為對(duì)示例性計(jì)算環(huán)境200中示出的任一組件或其組合具有任何依賴或需求。
因此,應(yīng)當(dāng)理解,本發(fā)明可以用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來操作。適用于或適合使用本發(fā)明的眾所周知的通信設(shè)備103、計(jì)算系統(tǒng)、環(huán)境和/或配置的實(shí)例包括但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)個(gè)人計(jì)算機(jī)、小型機(jī)、大型機(jī)、包括上述系統(tǒng)或設(shè)備的任一個(gè)的分布式計(jì)算環(huán)境等等。
本發(fā)明可在諸如由計(jì)算機(jī)系統(tǒng)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文環(huán)境中描述。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)踐,其中,任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中,包括但不限于存儲(chǔ)器存儲(chǔ)設(shè)備。
參考圖2,本發(fā)明的示例性計(jì)算環(huán)境200包括以計(jì)算機(jī)系統(tǒng)210形式的通用計(jì)算裝置。計(jì)算機(jī)系統(tǒng)210的組件可包括但不限于處理單元330、系統(tǒng)存儲(chǔ)器230以及將包括系統(tǒng)存儲(chǔ)器230的各類系統(tǒng)組件耦合至處理單元220用于雙向數(shù)據(jù)和/或指令通信的系統(tǒng)總線332。系統(tǒng)總線221可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)的局部總線。作為示例而非局限,這類體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線以及外圍部件互連(PCI)總線(即,也稱為Mezzanine總線)。
計(jì)算機(jī)系統(tǒng)210通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)系統(tǒng)210訪問的任一可用介質(zhì),包括易失和非易失介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實(shí)現(xiàn)的易失和非易失,可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、磁盒、磁帶、磁光存儲(chǔ)設(shè)備、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來儲(chǔ)存所期望的信息并可由計(jì)算機(jī)系統(tǒng)210訪問的任一其它介質(zhì)。通信介質(zhì)通常在諸如載波或其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號(hào)中包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學(xué)、RF、紅外和其它無線介質(zhì)。上述任一的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器230包括易失和/或非易失存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM)231和隨機(jī)存取存儲(chǔ)器(RAM)232。基本輸入/輸出系統(tǒng)233(BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)210內(nèi)的元件之間傳輸信息的基本例程,通常儲(chǔ)存在ROM 231中。RAM 232通常包含處理單元220立即可訪問或者當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖2示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137,它們有時(shí)可完全或部分地駐留在RAM 232中。
計(jì)算機(jī)210也可包括其它可移動(dòng)/不可移動(dòng)、易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作示例,圖2示出了對(duì)不可移動(dòng)、非易失磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器241、對(duì)可移動(dòng)、非易失磁盤252進(jìn)行讀寫的磁盤驅(qū)動(dòng)器251以及對(duì)可移動(dòng)、非易失光盤256,如CD ROM或其它光介質(zhì)進(jìn)行讀寫的光盤驅(qū)動(dòng)器255。可以在示例性操作環(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器241通常通過不可移動(dòng)存儲(chǔ)器接口,如接口240連接到系統(tǒng)總線221,磁盤驅(qū)動(dòng)器251和光盤驅(qū)動(dòng)器255通常通過可移動(dòng)存儲(chǔ)器接口,如接口250連接到系統(tǒng)總線121。
圖2討論并示出的驅(qū)動(dòng)器241、251、255及其關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)系統(tǒng)210提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖2中,示出硬盤驅(qū)動(dòng)器241儲(chǔ)存操作系統(tǒng)244、應(yīng)用程序245、其它程序模塊246和程序數(shù)據(jù)247。注意,這些組件可以與操作系統(tǒng)234、應(yīng)用程序235、其它程序模塊236和程序數(shù)據(jù)237相同,也可以與它們不同。這里對(duì)操作系統(tǒng)244、應(yīng)用程序245、其它程序模塊246和程序數(shù)據(jù)247給予不同的標(biāo)號(hào)來說明至少它們是操作系統(tǒng)234、應(yīng)用程序235、其它程序模塊236和程序數(shù)據(jù)237的不同副本。用戶可以通過輸入設(shè)備,如鍵盤262和定位設(shè)備261(通常指鼠標(biāo)、跟蹤球或觸摸板)向計(jì)算機(jī)系統(tǒng)210輸入命令和信息。其它連接的輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線221的用戶輸入接口260連接至處理單元220,但是也可以通過其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器291或其它類型的顯示設(shè)備也通過接口,如視頻接口290連接至系統(tǒng)總線221。除監(jiān)視器291之外,計(jì)算機(jī)系統(tǒng)210也可包括其它外圍輸出設(shè)備,如揚(yáng)聲器297和打印機(jī)296,通過輸出外圍接口295連接。
計(jì)算機(jī)系統(tǒng)210可以在使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)280的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)280可以是個(gè)人計(jì)算機(jī)、膝上計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有上述與計(jì)算機(jī)系統(tǒng)210相關(guān)的元件,盡管在圖2中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備281。圖2描述的雙向通信連接包括局域網(wǎng)(LAN)271和廣域網(wǎng)(WAN)273,但也可包括其它計(jì)算機(jī)網(wǎng)絡(luò)。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)通信上連接到LAN 271時(shí),計(jì)算機(jī)系統(tǒng)210通過網(wǎng)絡(luò)接口或適配器270連接至LAN 271。當(dāng)通信上連接到WAN 273時(shí),計(jì)算機(jī)系統(tǒng)210通常包括調(diào)制解調(diào)器272或其它裝置,用于通過WAN 273,如因特網(wǎng)建立通信。調(diào)制解調(diào)器272可以是內(nèi)置或外置的,通過用戶輸入接口260連接至系統(tǒng)總線221。在網(wǎng)絡(luò)化環(huán)境中,描述的與計(jì)算機(jī)系統(tǒng)210相關(guān)的程序模塊或其部分可儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備281中。作為示例而非限制,圖2示出了遠(yuǎn)程應(yīng)用程序285駐留在存儲(chǔ)器存儲(chǔ)設(shè)備281中??梢岳斫?,示出的網(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī)之間建立雙向通信鏈路的其它裝置。
圖3示出了依照本發(fā)明的一個(gè)示例性實(shí)施例包括電子表格列表112的電子表格數(shù)據(jù)的偽代碼表示300。如上所述,電子表格存儲(chǔ)單元109包括電子表格列表112,它可由映射單元106映射到有效負(fù)載數(shù)據(jù)。在本發(fā)明的一個(gè)示例性實(shí)施例中,電子表格列表112以XML代碼來配置,因此在下文稱為XML列表112。
XML提供了準(zhǔn)許在多個(gè)系統(tǒng)之間的數(shù)據(jù)的定義、確認(rèn)、傳輸和解釋的可定制標(biāo)簽。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,XML從標(biāo)準(zhǔn)廣義標(biāo)記語(yǔ)言(SGML)導(dǎo)出,并提供了用于數(shù)據(jù)配置的廣泛接受的代碼格式。一般而言,XML標(biāo)簽是在文檔內(nèi)使用的命令,或指示應(yīng)當(dāng)如何格式化或解釋文檔或代碼的部分的代碼。XML標(biāo)簽通常是成對(duì)的,并包括一起始標(biāo)簽和一終止標(biāo)簽。起始標(biāo)簽通常由小于符號(hào)(“<”)和大于符號(hào)(“>”)之間的標(biāo)簽名來表示。終止標(biāo)簽通常與起始標(biāo)簽相同,除在小于符號(hào)(“<”)之后有一正斜杠(“/”)之外。例如,但不限于,范圍(range)元素306以“<range>”標(biāo)簽開始并以“</range>”標(biāo)簽結(jié)束。起始“<range>”標(biāo)簽和終止“</range>”標(biāo)簽之間的所有文本或代碼可以被解釋為范圍元素306的部分。
更具體地,圖3示出了XML電子表格(XMLSS)的一部分,它描述了電子表格工作簿,包括包含在其中的XML列表112。條目(entry)元素303(如,<entryx2:id=″list1″>...</entry>)表示電子表格數(shù)據(jù)內(nèi)的單個(gè)XML列表112。XML列表112可由稱為字段(field)的一組列來定義,這些列在XML列表112中可用字段元素312A-312F(如,<field>...</field>)來表示。因此,字段元素312A-312F表示映射單元106將有效負(fù)載數(shù)據(jù)映射到XML列表112所得的列。
字段可被計(jì)算或被映射。計(jì)算的字段可由公式或常量來定義。映射的字段可由到有效負(fù)載數(shù)據(jù)的路徑來定義。如圖3所示,字段路徑可在XML列表112中由xpath元素309B-309G(如,<xpath>...</xpath>)來表示。條目元素303也可具有路徑(如,有時(shí)候被稱為“根路徑”),并也可由xpath元素309A來表示。字段路徑是到條目路徑的相對(duì)路徑xpath 309B-309G,因此,到字段的完整路徑需要將條目路徑與字段路徑串接。例如,但不限于,由字段元素312B的xpath元素309C表示的字段路徑是“DEPARTMENTID”。然而,由字段元素312B表示的字段的完整路徑需要將由xpath元素309A表示的條目xpath和由xpath元素309C表示的字段路徑相組合,因此得到了完整路徑“/CORP/DEPARTMENT/DEPARTMENTID”。
字段也可與特定的數(shù)據(jù)或定義類型,諸如但不限于,串、變量或整數(shù)相關(guān)聯(lián)。如圖3所示,字段的數(shù)據(jù)或定義類型可由xsdtype元素315A-315F來表示。使用上述示例,由字段元素312B表示的字段的xsdtype 315B表示的數(shù)據(jù)或定義類型是“STRING”。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,XML列表112可以多種編排方案來配置,并可包括各種字段和路徑。因此,圖3所示的電子表格數(shù)據(jù)僅用于說明性目的,并非局限本發(fā)明的范圍。
圖4示出了依照本發(fā)明的一個(gè)示例性實(shí)施的有效負(fù)載數(shù)據(jù)的偽代碼表示400。如上所述,有效負(fù)載數(shù)據(jù)存儲(chǔ)單元115包括可被映射到電子表格數(shù)據(jù)的XML列表112的有效負(fù)載數(shù)據(jù)。在本發(fā)明的一個(gè)示例性實(shí)施例中,有效負(fù)載數(shù)據(jù)以XML代碼來配置。一般而言,有效負(fù)載數(shù)據(jù)對(duì)應(yīng)于XML列表112中定義或描述的字段。因此,XML列表112中定義的路徑可與有效負(fù)載數(shù)據(jù)中的XML標(biāo)簽相關(guān)。
例如但不限于,圖4所示的有效負(fù)載數(shù)據(jù)涉及圖3所定義的XML列表。更具體地,圖4所示的負(fù)載(payload)元素03、406、409、410、412、415對(duì)應(yīng)于圖3所示的完整字段路徑。表1示出了圖3的完整字段路徑與圖4的負(fù)載元素之間的相關(guān)性。
表1如表1所示,部門名(department name)元素403A、403B對(duì)應(yīng)于完整字段路徑“/CORP/DEPARTMENT/@NAME”;部門id(departmentid)元素406A、406B對(duì)應(yīng)于完整字段路徑“/CORP/DEPARTMENT/DEPARTMENTID”;人名(personname)元素412A-412F對(duì)應(yīng)于完整字段路徑“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”和“CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME”;個(gè)人id(personid)元素415A-415F對(duì)應(yīng)于完整字段路徑“/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID”和“/CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID”。在本發(fā)明的一個(gè)示例性實(shí)施例中,字段路徑中的“/@”符號(hào)表明該路徑是屬性,而字段路徑中的“/”符號(hào)表明該字段是元素。由此,如由路徑“/CORP/DEPARTMENT/@NAME”所表示的,“NAME”是“DEPARTMENT”的屬性,而如由路徑“/CORP/DEPARTMENT/DEPARTMENTID”所表示的,“DEPARTMENTID”是“DEPARTMENT”的元素。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,有效負(fù)載數(shù)據(jù)的配置可依賴于或符合XML列表112的配置。因此,圖4所示的有效負(fù)載數(shù)據(jù)僅用于說明性目的,并非局限本發(fā)明的范圍。
圖5示出了依照本發(fā)明的一個(gè)示例性實(shí)施例的有效負(fù)載數(shù)據(jù)的框圖。圖5所示的有效負(fù)載數(shù)據(jù)類似于上文參考圖4所討論的有效負(fù)載數(shù)據(jù),除沒有XML元素標(biāo)簽之外。更具體地,圖5示出了電子表格數(shù)據(jù)(見圖3)及其相關(guān)聯(lián)的有效負(fù)載數(shù)據(jù)的字段路徑的分層特征。
在本發(fā)明的一個(gè)示例性實(shí)施例中,映射單元106可確定XML列表112中每一字段路徑的“父”路徑(下文參考圖7更完整地描述)。特定字段路徑的父路徑可通過在該路徑中沿字段路徑返回一步來確定。換言之,父路徑在層次中在該字段路徑后一步。例如,但不限于,字段路徑“/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID/”可具有父路徑“/CORP/DEPARTMENT/MANAGERS/PERSON”。另外,父路徑可以對(duì)屬性和元素字段計(jì)算。由此,屬性字段路徑“/a/b/@c”和元素字段路徑“/a/b/c”可具有同一父路徑“/a/b”。
圖5也示出了如何可跟隨字段路徑到對(duì)應(yīng)的有效負(fù)載數(shù)據(jù)。例如但不限于,映射單元106可跟隨字段路徑“/CORP/DEPARTMENT/DEPARTMENTED”,并發(fā)現(xiàn)對(duì)應(yīng)的值“1001”和“1002”。相反,字段路徑可以從有效負(fù)載數(shù)據(jù)中確定。例如但不限于,有效負(fù)載數(shù)據(jù)“John”可具有對(duì)應(yīng)的字段路徑“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”。
圖6示出了依照本發(fā)明的一個(gè)實(shí)施例的映射的電子表格列表112的框圖。如上所述,映射單元106可將有效負(fù)載數(shù)據(jù)映射到電子表格數(shù)據(jù)的XML列表112。盡管這一映射不依賴于模式,然而所得的映射電子表格列表112基本上類似于“模式映射”的電子表格列表。
在本發(fā)明的一個(gè)示例性實(shí)施例中,映射單元106可為XML列表112指定一“底部”路徑(下文參考圖7更完整地描述)。通常,底部路徑是先前生成的父路徑(上文參考圖5描述)的最長(zhǎng)路徑。如果有一個(gè)以上父路徑符合最長(zhǎng)路徑的資格,則可將首先生成的父路徑指定為底部路徑,或?qū)⒎献铋L(zhǎng)路徑資格的每一父路徑指定為分支底部路徑(下文參考圖7更完成地描述)。
映射單元106可使用底部路徑來指定XML列表112的節(jié)點(diǎn),如綁定節(jié)點(diǎn)。通常,節(jié)點(diǎn)可被分配到映射的XML列表112中的一行。節(jié)點(diǎn)可擔(dān)當(dāng)XML列表112的每一行的索引。更具體地,節(jié)點(diǎn)可指示在映射的XML列表112中存在的行的數(shù)量。
例如但不限于,圖3所示的字段的父路徑是“/CORP/DEPARTMENT”(如,“/CORP/DEPARTMENT/@NAME”的父路徑)、“/CORP/DEPARTMENT”(如,“/CORP/DEPARTMENT/DEPARTMENTID”的父路徑)、“/CORP/DEPARTMENT/MANAGERS/PERSON”(如,“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”的父路徑)、“/CORP/DEPARTMENT/MANAGERS/PERSON”(如,“/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID”的父路徑)、“/CORP/DEPARTMENT/CONTRACTORS/PERSON”(如,“/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME”的父路徑)、“/CORP/DEPARTMENT/CONTRACTORS/PERSON”(如,“/CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID”的父路徑)。映射單元106可指定“/CORP/DEPARTMENT/MANAGERS/PERSON”(如,“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”的父路徑)和“/CORP/DEPARTMENT/CONTRACTORS/PERSON”(如,“/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME”的父路徑)作為分支底部路徑,因?yàn)樗鼈兪撬傻淖铋L(zhǎng)父路徑,且都不彼此相等或是對(duì)方的子集。對(duì)于每一分支底部路徑,映射單元106跟隨分支底部路徑以確定結(jié)果節(jié)點(diǎn)。映射的XML列表112的行624、627、630、633、636、639和列603、606、609、612、615、618的值可通過跟隨每一分支底部路徑到每一對(duì)應(yīng)的字段路徑來確定。
圖7A-7C示出了依照本發(fā)明的一個(gè)示例性實(shí)施例將有效負(fù)載數(shù)據(jù)映射到電子表格列表112的方法700的流程圖表示。映射單元106將從負(fù)載存儲(chǔ)單元115接收的有效負(fù)載數(shù)據(jù)映射到從電子表格存儲(chǔ)單元109接收的XML列表,而不使用模式。
在步驟701開始之后,映射單元106前進(jìn)到步驟703,映射單元703從電子表格存儲(chǔ)單元109接收電子表格數(shù)據(jù)。電子表格數(shù)據(jù)可包括XML列表112。下一步,在步驟706,映射單元106確定是否需要對(duì)任何XML列表112求值。如果在步驟706映射單元106確定不需要對(duì)任何XML列表112求值,則映射單元106依照步驟715的方法700暫停操作。然而,如果在步驟706映射單元106確定有要被求值的XML列表112存在,則映射單元106前進(jìn)到步驟709,映射單元106確定是否要對(duì)XML列表112內(nèi)的任何字段路徑求值。如果在步驟709映射單元106確定不需要對(duì)任何字段路徑求值,則映射單元106如下所述地前進(jìn)到步驟718。然而,如果在步驟709映射單元106確定存在需要求值的字段路徑,則映射單元106前進(jìn)到步驟712,映射單元106生成字段路徑的父路徑。映射單元106然后如上所述地前進(jìn)到步驟709。
在步驟718,映射單元106確定是否從XML列表112的字段路徑生成了任何父路徑。如果在步驟718映射單元106確定沒有生成任何父路徑,則映射單元106如上所述地前進(jìn)到步驟706。否則,如果在步驟718映射單元106確定生成了父路徑,則映射單元前進(jìn)到步驟721,映射單元106標(biāo)識(shí)不是彼此的子集的最長(zhǎng)父路徑(作出其列表)。下一步,在步驟724,映射單元106確定在最長(zhǎng)父路徑列表中是否存在任何重復(fù)。如果在步驟724映射單元106確定在最長(zhǎng)父路徑列表中沒有重復(fù),則映射單元106如下所述地前進(jìn)到步驟730。然而,如果在步驟724映射單元106確定在最長(zhǎng)父路徑列表中存在重復(fù),則映射單元106前進(jìn)到步驟727,映射單元?jiǎng)h除最長(zhǎng)父路徑列表中的所有重復(fù)。
下一步,在步驟730,映射單元106將每一最長(zhǎng)父路徑指定為底部路徑(此處也稱為“分支底部路徑”),其中,每一底部路徑表示一不同的分支。然后,在733,映射單元106將XML列表的每一字段與一個(gè)或多個(gè)分支底部路徑相關(guān)聯(lián),使得字段的父路徑是相關(guān)聯(lián)的分支底部路徑的子集。字段的父路徑可以是一個(gè)以上分支底部路徑的子集。映射單元106然后前進(jìn)到步驟736,其中映射單元106確定是否有任何分支底部路徑仍需要求值。如果在步驟736映射單元106確定沒有分支底部路徑需要求值,則映射單元依照745處的方法700暫停操作。否則,如果在步驟736映射單元106確定存在仍需要求值的分支底部路徑,則映射單元106前進(jìn)到739,其中映射單元106對(duì)有效負(fù)載數(shù)據(jù)上的分支底部路徑求值,以生成綁定節(jié)點(diǎn)列表。通過將每一父路徑與一個(gè)或多個(gè)分支底部路徑組合,可通過從綁定節(jié)點(diǎn)開始遍歷從有效負(fù)載數(shù)據(jù)獲得XML列表的每一字段(列)的值(如果有的話)。下一步,在742,映射單元106通過從一行的綁定節(jié)點(diǎn)開始沿路徑到每一對(duì)應(yīng)的字段路徑,從有效負(fù)載數(shù)據(jù)獲取與該行中的分支底部路徑相關(guān)聯(lián)的所有字段(列)的值。如果字段屬于不與分支底部路徑相關(guān)聯(lián)的父路徑,則字段值保留為空。映射單元106然后如上所述地前進(jìn)到步驟736。
盡管以細(xì)節(jié)描述了本發(fā)明,然而可以理解,如在上文中描述且在所附權(quán)利要求書中定義的,可以在不脫離本發(fā)明的精神和范圍的情況下作出各種變化和修改。所附權(quán)利要求書中所有裝置加功能元件(如果有的話)的對(duì)應(yīng)結(jié)構(gòu)、材料、動(dòng)作和等效技術(shù)方案旨在包括用于結(jié)合特別地要求保護(hù)的其它要求保護(hù)的元素來執(zhí)行功能的任何結(jié)構(gòu)、材料或動(dòng)作。
權(quán)利要求
1.一種將有效負(fù)載數(shù)據(jù)映射到電子表格列表的系統(tǒng),其特征在于,所述系統(tǒng)包括一電子表格存儲(chǔ)單元,它適用于儲(chǔ)存包括至少一個(gè)電子表格列表的電子表格數(shù)據(jù);一有效負(fù)載數(shù)據(jù)存儲(chǔ)單元,它適用于儲(chǔ)存有效負(fù)載數(shù)據(jù);以及一映射單元,它適用于從所述電子表格存儲(chǔ)單元接收電子表格數(shù)據(jù)、從所述有效負(fù)載數(shù)據(jù)存儲(chǔ)單元接收有效負(fù)載數(shù)據(jù)、以及將所述有效負(fù)載數(shù)據(jù)映射到所述至少一個(gè)電子表格列表。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述至少一個(gè)電子表格列表包括可擴(kuò)充標(biāo)記語(yǔ)言(XML)列表。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括;一用戶界面,它適用于從所述映射單元接收所述至少一個(gè)映射的電子表格列表,并向用戶顯示所述至少一個(gè)映射的電子表格列表。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括一網(wǎng)絡(luò)接口,它適用于從所述映射單元接收所述至少一個(gè)映射的電子表格列表,并向網(wǎng)絡(luò)提供所述至少一個(gè)映射的電子表格列表。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述至少一個(gè)電子表格包括與所述有效負(fù)載數(shù)據(jù)相關(guān)聯(lián)的至少一個(gè)字段路徑,并且所述映射單元還適用于從所述至少一個(gè)字段路徑確定至少一個(gè)父路徑。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述映射單元還適用于從所述至少一個(gè)父路徑指定至少一個(gè)分支底部路徑,其中,所述至少一個(gè)分支底部路徑包括所述至少一個(gè)父路徑的最長(zhǎng)路徑。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述映射單元還適用于通過將所述至少一個(gè)分支底部路徑應(yīng)用到所述有效負(fù)載數(shù)據(jù),從所述至少一個(gè)分支底部路徑指定至少一個(gè)結(jié)果節(jié)點(diǎn)。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述映射單元還適用于將所述至少一個(gè)結(jié)果節(jié)點(diǎn)映射到電子表格列表中的一行。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述行包括多個(gè)字段,并且所述映射單元還適用于使用所述至少一個(gè)分支底部路徑和所述有效負(fù)載數(shù)據(jù)的所述至少一個(gè)結(jié)果節(jié)點(diǎn)獲取所述多個(gè)字段的值。
10.一種將有效負(fù)載數(shù)據(jù)映射到電子表格列表的方法,其特征在于,所述方法包括以下步驟接收包括至少一個(gè)電子表格列表的電子表格數(shù)據(jù),其中,所述至少一個(gè)電子表格列表包括與一字段相關(guān)聯(lián)的至少一個(gè)路徑;接收有效負(fù)載數(shù)據(jù),其中,所述有效負(fù)載數(shù)據(jù)與所述電子表格數(shù)據(jù)相關(guān)聯(lián);以及通過使用所述至少一個(gè)路徑將所述有效負(fù)載數(shù)據(jù)映射到所述至少一個(gè)電子表格列表。
11.如權(quán)利要求10所述的方法,其特征在于,通過使用所述至少一個(gè)路徑將所述有效負(fù)載數(shù)據(jù)映射到所述至少一個(gè)電子表格列表還包括以下步驟為所述至少一個(gè)路徑生成一組父路徑;將所述父路徑組的至少一個(gè)父路徑指定為至少一個(gè)分支底部路徑;以及從有效負(fù)載數(shù)據(jù)生成一組節(jié)點(diǎn),其中,所述節(jié)點(diǎn)組是通過對(duì)所述有效負(fù)載數(shù)據(jù)的所述至少一個(gè)分支底部路徑求值來生成的。
12.如權(quán)利要求11所述的方法,其特征在于,通過使用所述至少一個(gè)路徑將所述有效負(fù)載數(shù)據(jù)映射到所述至少一個(gè)電子表格列表還包括以下步驟將所述節(jié)點(diǎn)組的一個(gè)節(jié)點(diǎn)映射到所述至少一個(gè)電子表格列表的一行;以及通過跟蹤所述至少一個(gè)分支底部路徑到與所述電子表格數(shù)據(jù)內(nèi)的所述字段相關(guān)聯(lián)的至少一個(gè)路徑,檢索所述行內(nèi)的所述字段的值。
13.如權(quán)利要求11所述的方法,其特征在于,為所述至少一個(gè)路徑生成一組父路徑包括以下步驟枚舉所述電子表格數(shù)據(jù)的所述至少一個(gè)路徑;跟隨枚舉的所述至少一個(gè)路徑返回到前一字段;以及將與所述前一字段相關(guān)聯(lián)的路徑插入到所述父路徑組中。
14.如權(quán)利要求11所述的方法,其特征在于,將所述父路徑組的至少一個(gè)父路徑指定為至少一個(gè)分支底部路徑包括以下步驟;確定所述父路徑組的至少一個(gè)最長(zhǎng)父路徑;以及如果所述至少一個(gè)最長(zhǎng)父路徑的第一父路徑不是所述至少一個(gè)最長(zhǎng)父路徑的第二父路徑的子集,則將所述至少一個(gè)最長(zhǎng)父路徑指定為至少一個(gè)分支底部路徑。
15.如權(quán)利要求11所述的方法,其特征在于,所述方法還包括以下步驟將所述父路徑組的第三父路徑與所述至少一個(gè)分支底部路徑相關(guān)聯(lián),其中,所述第三父路徑是所述至少一個(gè)分支底部路徑的子集。
16.一種包括用于將有效負(fù)載數(shù)據(jù)映射到電子表格列表的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可執(zhí)行指令執(zhí)行以下步驟接收包括至少一個(gè)電子表格列表的電子表格數(shù)據(jù),其中,所述至少一個(gè)電子表格列表包括與一字段相關(guān)聯(lián)的至少一個(gè)路徑;接收有效負(fù)載數(shù)據(jù),其中,所述有效負(fù)載數(shù)據(jù)與所述電子表格數(shù)據(jù)相關(guān)聯(lián);以及通過使用所述至少一個(gè)路徑將所述有效負(fù)載數(shù)據(jù)映射到所述至少一個(gè)電子表格列表。
17.如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,通過使用所述至少一個(gè)路徑將所述有效負(fù)載數(shù)據(jù)映射到所述至少一個(gè)電子表格列表還包括以下步驟為所述至少一個(gè)路徑生成一組父路徑;將所述父路徑組的至少一個(gè)父路徑指定為至少一個(gè)分支底部路徑;以及從有效負(fù)載數(shù)據(jù)生成一組節(jié)點(diǎn),其中,所述節(jié)點(diǎn)組是通過對(duì)所述有效負(fù)載數(shù)據(jù)上的所述至少一個(gè)分支底部路徑求值來生成的。
18.如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,通過使用所述至少一個(gè)路徑將所述有效負(fù)載數(shù)據(jù)映射到所述至少一個(gè)電子表格列表還包括以下步驟將所述節(jié)點(diǎn)組的一個(gè)節(jié)點(diǎn)映射到所述至少一個(gè)電子表格列表的一行;以及通過跟蹤所述至少一個(gè)分支底部路徑到與所述電子表格數(shù)據(jù)內(nèi)的所述字段相關(guān)聯(lián)的所述至少一個(gè)路徑,檢索所述行內(nèi)的所述字段的值。
19.如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,為所述至少一個(gè)路徑生成一組父路徑包括以下步驟枚舉所述電子表格數(shù)據(jù)的所述至少一個(gè)路徑;跟隨枚舉的所述至少一個(gè)路徑返回到前一字段;以及將與所述前一字段相關(guān)聯(lián)的路徑插入到所述父路徑組中。
20.如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,將所述父路徑組的至少一個(gè)父路徑指定為至少一個(gè)分支底部路徑包括以下步驟確定所述父路徑組的至少一個(gè)最長(zhǎng)父路徑;以及如果所述至少一個(gè)最長(zhǎng)父路徑的第一父路徑不是所述至少一個(gè)最長(zhǎng)父路徑的第二父路徑的子集,則將所述至少一個(gè)最長(zhǎng)父路徑指定為至少一個(gè)分支底部路徑。
21.如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可執(zhí)行指令還包括執(zhí)行以下步驟將所述父路徑組的第三父路徑與所述至少一個(gè)分支底部路徑相關(guān)聯(lián),其中,所述第三父路徑是所述至少一個(gè)分支底部路徑的子集。
全文摘要
一種用于將有效負(fù)載數(shù)據(jù)映射到電子表格列表的系統(tǒng)和方法。本發(fā)明包括一種系統(tǒng),用于將有效負(fù)載數(shù)據(jù)映射到電子表格列表,同時(shí)支持嵌套表格的實(shí)現(xiàn),而不使用模式。在接收電子表格列表之后,本發(fā)明生成電子表格列表中定義的每一字段路徑的父路徑。最長(zhǎng)父路徑可用于從有效負(fù)載數(shù)據(jù)生成一組節(jié)點(diǎn)。如果有一個(gè)以上唯一父路徑符合最長(zhǎng)父路徑的資格,則可將這類父路徑指定為分支底部路徑。所有其它父路徑然后可與一適當(dāng)?shù)姆种У撞柯窂较嚓P(guān)聯(lián)。在綁定過程中,可對(duì)每一分支底部路徑求值,以生成結(jié)果節(jié)點(diǎn),它可用于獲取電子表格列表的字段的值。
文檔編號(hào)G06F17/30GK1677398SQ20051005909
公開日2005年10月5日 申請(qǐng)日期2005年3月21日 優(yōu)先權(quán)日2004年3月22日
發(fā)明者Y·-M·梁 申請(qǐng)人:微軟公司