專利名稱:將文檔的元素與數(shù)據(jù)庫中相應(yīng)的字段、查詢和/或過程相鏈接的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及將計算機(jī)生成文檔中的元素與數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)相鏈接的方法和系統(tǒng)。
背景技術(shù):
計算機(jī)軟件應(yīng)用程序允許用戶創(chuàng)建各種有利于他們工作、教育和休閑的文檔。例如,字處理應(yīng)用程序允許用戶創(chuàng)建信件、文章、書、備忘錄等等。電子制表軟件應(yīng)用程序允許用戶存儲、處理、打印和顯示各種字母數(shù)字?jǐn)?shù)據(jù)。這樣的應(yīng)用程序具有大量眾所周知的能力,包括豐富的編輯、格式化、打印和計算。
隨著現(xiàn)代數(shù)據(jù)庫的出現(xiàn),用戶能夠收集和處理大量的與各種不同主題有關(guān)的數(shù)據(jù)。通常,數(shù)據(jù)庫設(shè)置于用戶的計算機(jī),或者數(shù)據(jù)庫可包括在遠(yuǎn)程服務(wù)器上,遠(yuǎn)程服務(wù)器包括遠(yuǎn)程基于因特網(wǎng)的服務(wù)器。許多用戶常??蓪σ粋€單一的數(shù)據(jù)庫存取,這些用戶中的每一個用于都可以添加、刪除和處理在這個數(shù)據(jù)庫中所包含的數(shù)據(jù)。例如,如果許多用戶組成一個項目小組來開發(fā)一種新型計算機(jī)軟件的說明,則可以被指派每個用戶在一給定數(shù)據(jù)庫上所包含的共享文檔庫的訪問。因此,如果第一用戶修改了說明書中所包含的一部分?jǐn)?shù)據(jù),那么將在數(shù)據(jù)庫上更新這種修改,并將可由其他用戶訪問。繼而,另一個被授權(quán)的用戶可獲得對數(shù)據(jù)庫的訪問,來看看由第一用戶所做的修改并進(jìn)行其它的修改或更新。因此,每一個用戶都可以合作的方式來開發(fā)和提供數(shù)據(jù)庫中所包含和管理的數(shù)據(jù)。
通常,一個用戶或一組用戶必須使用給定的數(shù)據(jù)庫向數(shù)據(jù)來組合成信件、備忘錄、文章、電子制表或其它文檔,用于向其他人顯示數(shù)據(jù)。繼續(xù)上述的實例,軟件開發(fā)小組的成員可能需要在項目的各個節(jié)點上將在共享數(shù)據(jù)庫中所包含他們的數(shù)據(jù)組合成一單獨的文件,諸如說明書文檔,以向新軟件未來的用戶或該項目的審查者顯示該文檔。遺憾的是,一旦準(zhǔn)備了文檔,該文檔就變成由數(shù)據(jù)庫組合數(shù)據(jù)的靜態(tài)表示,象它在準(zhǔn)備文檔之前就存在的那樣。如果項目小組的成員在準(zhǔn)備了文檔初始草案之后要更新數(shù)據(jù)庫中的數(shù)據(jù),那么就必須手工更新文檔以反映文檔所基于的數(shù)據(jù)中的變化。同樣地,如果在文檔的準(zhǔn)備期間,成員修改了在文檔中使用的數(shù)據(jù),那么也必須手工修改數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù),以反映文檔所做的修改,因為該文檔不再反映數(shù)據(jù)庫中所包含的數(shù)據(jù)。
因此,就需要有一種方法和系統(tǒng),它能夠?qū)⑽臋n內(nèi)容的部分與數(shù)據(jù)庫中相應(yīng)的字段或查詢相映射和鏈接,以便對數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)的更新能自動更新文檔的相應(yīng)部分,以及對文檔各部分的更新也能自動更新數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)。這就是本發(fā)明所做的各種考慮。
發(fā)明概述本發(fā)明的實施例提供了用于將文檔中的元素與數(shù)據(jù)庫中相應(yīng)的字段或查詢相映射和鏈接的方法和系統(tǒng)。諸如字處理文檔或電子制表文檔這樣的計算機(jī)生成文檔的用戶,將該文檔的各個部分與數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)關(guān)聯(lián)。按照本發(fā)明的一個方面,用諸如可擴(kuò)展標(biāo)記語言(XML)的標(biāo)記語言的結(jié)構(gòu)化元素來標(biāo)注文檔,以便將文檔的各部分映射至數(shù)據(jù)庫的相應(yīng)數(shù)據(jù)。如果是用XML結(jié)構(gòu)來標(biāo)記文檔的,則將一XML大綱附屬于或關(guān)聯(lián)于文檔,用于設(shè)置文檔的數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)和XML元素規(guī)則,因此用戶可用符合選定大綱的適當(dāng)?shù)腦ML結(jié)構(gòu)來標(biāo)注文檔??商鎿Q地,用戶可利用已經(jīng)包含XML結(jié)構(gòu)化的標(biāo)注并已關(guān)聯(lián)于XML大綱的文檔。
在已經(jīng)用一或多個元素來構(gòu)成文檔后,可選擇一數(shù)據(jù)庫用于關(guān)聯(lián)于該文檔。選擇數(shù)據(jù)庫可包括在數(shù)據(jù)庫所保存的文檔庫內(nèi)選擇一特定的表,在文檔庫中該特定的表關(guān)聯(lián)于該文檔。在數(shù)據(jù)庫中選定關(guān)聯(lián)于文檔的特定的表后,文檔內(nèi)的各個元素被映射至所選擇的表內(nèi)的相應(yīng)數(shù)據(jù)字段或查詢。查詢可以表示為以諸如SQL這樣的數(shù)據(jù)庫語言編寫的程序??捎么鎯^程表示查詢,在這種情況下,文檔中的元素可被映射至數(shù)據(jù)庫中一特定的存儲過程。將文檔中的各個元素映射至所選擇的數(shù)據(jù)庫表內(nèi)相應(yīng)的數(shù)據(jù)字段或查詢可包括,在文檔中提供一唯一的文檔標(biāo)識符,以將每一個單個的元素鏈接(用于數(shù)據(jù)發(fā)送與接收)至所選擇中的相應(yīng)數(shù)據(jù)字段、查詢或過程或存儲過程。同樣地,可在所選數(shù)據(jù)字段、查詢或存儲過程中提供唯一的標(biāo)識符,以將各個數(shù)據(jù)字段、查詢或過程鏈接至文檔內(nèi)相應(yīng)的元素。
一旦文檔內(nèi)的各個元素與所選擇的表或數(shù)據(jù)庫內(nèi)的相應(yīng)數(shù)據(jù)相映射和鏈接,則對文檔內(nèi)的各個元素所做的修改就會自動引起與這些元素相映射和鏈接的相應(yīng)數(shù)據(jù)字段、查詢和/或過程的更新。如果文檔元素鏈接至為這些元素提供數(shù)據(jù)的查詢,那么它們一般也會鏈接至適合于更新能夠用文檔中元素內(nèi)容更新數(shù)據(jù)庫的查詢,以便維護(hù)文檔和數(shù)據(jù)庫之間的雙向鏈接。反過來,對所選擇的數(shù)據(jù)庫表內(nèi)的各個數(shù)據(jù)字段、查詢和/或過程所做的修改也會自動更新文檔內(nèi)相應(yīng)的元素。如果元素與查詢相鏈接,那么當(dāng)文檔中的元素刷新其數(shù)據(jù)時,它們將調(diào)用與最新一組結(jié)果相關(guān)聯(lián)的查詢。
可從以下對所揭示實施例的詳細(xì)描述的考察及通過參考所附的附圖和權(quán)利要求書,清楚地理解和認(rèn)識到本發(fā)明的這些或其它特點、優(yōu)點及方面。
圖1是一提供適用于本發(fā)明典型操作環(huán)境的計算機(jī)及其相關(guān)外部設(shè)備和網(wǎng)絡(luò)化設(shè)備的方框圖。
圖2是一說明文檔和數(shù)據(jù)庫之間交互的簡化方框圖,其中文檔內(nèi)的各個元素與數(shù)據(jù)庫內(nèi)的相應(yīng)的數(shù)據(jù)字段、查詢和/或過程相映射和鏈接。
圖3示出用于創(chuàng)建文檔和將文檔內(nèi)的元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段、查詢和/或過程鏈接的軟件應(yīng)用程序的計算機(jī)屏幕顯示。
圖4示出用于創(chuàng)建文檔和將文檔內(nèi)的元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段、查詢和/或過程鏈接的軟件應(yīng)用程序的計算機(jī)屏幕顯示。
圖5是一映射用戶界面的數(shù)據(jù)字段的簡化方框圖,該用戶界面可允許用戶將文檔內(nèi)的各個元素映射至數(shù)據(jù)庫內(nèi)相應(yīng)的數(shù)據(jù)字段、查詢和/或過程。
圖6和7是流程圖,說明了文檔元素與數(shù)據(jù)庫的相應(yīng)數(shù)據(jù)字段、查詢和/或過程相映射和鏈接的方法。
詳細(xì)說明本發(fā)明實施例的下列描述參考了上述附圖,在上述附圖中,相同的數(shù)字在各圖中表示相同的部分或組件。本發(fā)明專注于將文檔的元素與數(shù)據(jù)庫中的數(shù)據(jù)字段、查詢和/或過程相映射和鏈接的方法和系統(tǒng)。
操作環(huán)境圖1和以下的討論試圖提供一個適合于實現(xiàn)本發(fā)明的計算環(huán)境的簡潔、概括的描述。當(dāng)采用在結(jié)合個人計算機(jī)的操作系統(tǒng)上運行應(yīng)用程序的基本內(nèi)容描述本發(fā)明時,本領(lǐng)域的熟練技術(shù)人員都會認(rèn)識到還可結(jié)合其它程序模塊來實現(xiàn)本發(fā)明。一般來說,程序模塊包括完成具體任務(wù)或?qū)崿F(xiàn)具體抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等等。而且,本領(lǐng)域熟練技術(shù)人員還會理解到本發(fā)明還采用其它計算機(jī)系統(tǒng)結(jié)構(gòu)來實踐,包括手持設(shè)備、微處理器系統(tǒng)、基于微處理器或可編程的消費電子產(chǎn)品、蜂窩電話、小型計算機(jī)、大型計算機(jī)等等。本發(fā)明還可以分布式計算環(huán)境來實踐,在該計算環(huán)境中,任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備完成。在分布式計算環(huán)境中,程序模塊可設(shè)置在本地和遠(yuǎn)程存儲器設(shè)備中。
參考圖1,實現(xiàn)本發(fā)明的典型系統(tǒng)包括傳統(tǒng)的個人計算機(jī)20,它包括處理單元21、系統(tǒng)存儲器22,將系統(tǒng)存儲器與處理單元21相耦合的系統(tǒng)總線23。系統(tǒng)存儲器22包括只讀存儲器(ROM)24和隨機(jī)存取存儲器(RAM)25?;据斎?輸出系統(tǒng)26(BIOS)存儲在ROM24中,它包含幫助在個人計算機(jī)20內(nèi)的部件之間傳遞信息的基本例程,諸如在啟動期間。個人計算機(jī)20還包括硬盤驅(qū)動器27、磁盤驅(qū)動器28,例如,可讀寫的移動磁盤29,以及光盤驅(qū)動器30,例如,可讀取的CD-ROM盤31或可讀寫的其它光介質(zhì)。硬盤驅(qū)動器27、磁盤驅(qū)動器28和光盤驅(qū)動器30分別通過硬盤驅(qū)動器接口32、磁盤驅(qū)動器接口33和光盤驅(qū)動器接口34連至系統(tǒng)總線23。驅(qū)動器及其相關(guān)的計算機(jī)可讀介質(zhì)為個人計算機(jī)20提供非易失性的存儲。盡管以上計算機(jī)可讀介質(zhì)的描述是指硬盤、可移動磁盤和CD-ROM盤,但本領(lǐng)域熟練技術(shù)人員應(yīng)該理解,典型的操作環(huán)境也可以使用計算機(jī)可讀的其它類型介質(zhì),諸如磁帶盒、閃存卡、數(shù)字視盤、伯努利盒(Bernoulli cartridge)等等。
在驅(qū)動器和RAM25中可以存儲許多程序模塊,包括操作系統(tǒng)35、一或多個應(yīng)用程序100、字處理程序模塊37(或其它類型的程序模塊)、諸如旅客名單38的程序數(shù)據(jù)及其它程序模塊(未示出)。
用戶可通過鍵盤40和諸如鼠標(biāo)42的定點設(shè)備,將命令和信息輸入個人計算機(jī)20。其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲墊、衛(wèi)星天線、掃描儀或其它等等。這些或其它輸入設(shè)備常常通過連接在系統(tǒng)總線的串行端口接口46連至處理單元21,但也可通過其它接口連接,諸如游戲端口或通用串行總線(USB)。監(jiān)視器47或其它類型的顯示設(shè)備也是通過諸如視頻適配卡48的接口連至系統(tǒng)總線23。除了監(jiān)視器,個人計算機(jī)一般包括其它外圍輸出設(shè)備(未示出),諸如揚(yáng)聲器或打印機(jī)。
個人計算機(jī)20可利用邏輯連接一或多臺遠(yuǎn)程計算機(jī),諸如遠(yuǎn)程計算機(jī)49,運行于網(wǎng)絡(luò)環(huán)境中。遠(yuǎn)程計算機(jī)49可以是服務(wù)器、路由器、對等設(shè)備或其它普通網(wǎng)絡(luò)節(jié)點,且一般包括許多或所有有關(guān)個人計算機(jī)20所述的部件,盡管在圖1中只示出了存儲器設(shè)備50。圖1所示的邏輯連接包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍的計算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境中,個人計算機(jī)20是通過網(wǎng)絡(luò)接口53連至LAN51的。當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境中,個人計算機(jī)20一般包括調(diào)制解調(diào)器54或其它在諸如因特網(wǎng)這樣的WAN52上建立通信的工具。調(diào)制解調(diào)器54可以是內(nèi)置的或外置的,它通過串行端口接口46連至系統(tǒng)總線23。在網(wǎng)絡(luò)環(huán)境中,有關(guān)個人計算機(jī)20所述的程序模塊,或其部分,可存儲在遠(yuǎn)程存儲器設(shè)備中。應(yīng)該理解的是所示的網(wǎng)絡(luò)環(huán)境只是用于舉例,且也可以使用在計算機(jī)間建立通信連接的其它方式。
運行圖2是示出文檔和數(shù)據(jù)庫之間交互的簡化方框圖,其中,文檔內(nèi)的各個元素與數(shù)據(jù)庫內(nèi)相應(yīng)的數(shù)據(jù)字段、查詢和/或過程相映射和鏈接。依照本發(fā)明實施例,用戶將文檔內(nèi)的元素關(guān)聯(lián)于數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)字段、查詢和/或過程。如圖2所示,示出的例示文檔210可用于將文檔內(nèi)的元素鏈接包含在數(shù)據(jù)庫205中相應(yīng)的數(shù)據(jù)字段、查詢和/或過程。本領(lǐng)域熟練技術(shù)人員應(yīng)該理解,文檔210是例示文檔,可由各種軟件應(yīng)用程序創(chuàng)建和使用,包括字處理應(yīng)用程序、電子制表應(yīng)用程序、網(wǎng)絡(luò)瀏覽器應(yīng)用程序等等。僅僅為了示例,文檔210是例示性的字處理文檔,其中用戶在準(zhǔn)備一份具有標(biāo)題212和教育部分213的簡歷。本領(lǐng)域的熟練技術(shù)人員應(yīng)理解,圖2所示的文本只是為了示例,而輸進(jìn)文檔的數(shù)據(jù)可以是任意類型的格式,包括用于創(chuàng)建文檔的軟件應(yīng)用程序所允許的字母數(shù)字文本和圖像。
為了規(guī)范文檔210內(nèi)的元素與數(shù)據(jù)庫205中相應(yīng)數(shù)據(jù)字段、查詢和/或過程的映射和鏈接,文檔210內(nèi)的元素采用結(jié)構(gòu)化的標(biāo)注,以便這些元素可以被識別并能指向數(shù)據(jù)庫內(nèi)的相應(yīng)數(shù)據(jù)字段、查詢和/或過程。依照本發(fā)明實施例,使用諸如可擴(kuò)展標(biāo)記語言(XML)這樣的標(biāo)記語言為文檔210提供結(jié)構(gòu)化標(biāo)注。如文檔210所示,XML元素<title>元素應(yīng)用于該文檔來為該文檔的標(biāo)題部分212提供結(jié)構(gòu),而<education>元素215應(yīng)用于該文檔為該文檔的教育部分213提供結(jié)構(gòu)。
通過為該文檔提供唯一的標(biāo)識符(ID)編號和通過將該唯一文檔ID關(guān)聯(lián)于數(shù)據(jù)庫的一給定表中的一給定記錄,將文檔元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段、查詢和過程相鏈接和映射。因此,當(dāng)修改文檔中相應(yīng)元素時,就可在數(shù)據(jù)庫中找到正確的記錄,而當(dāng)修改數(shù)據(jù)庫中相應(yīng)記錄時,可在文檔中找到正確的元素。最好將唯一的ID編號存儲在文檔中。
為了給文檔提供一組語法規(guī)則,以管理在文檔中可能包括的數(shù)據(jù)的類型和結(jié)構(gòu),如圖2所示的,將XML大綱(XML schema)附屬于或關(guān)聯(lián)于文檔,以提供管理用戶用來標(biāo)注文檔的每個XML元素的規(guī)則。例如,簡歷文檔可有一個諸如“resume-schema.xsd”這樣的附屬的或關(guān)聯(lián)的大綱文件230,以提供諸如<title(標(biāo)題)>、<education(教育)>、<experience(經(jīng)歷)>、<personalinterest(個人興趣)>等許用的XML元素組。大綱(schema)文件包括管理可將那些元素應(yīng)用于文檔的順序的規(guī)則和與應(yīng)用于文檔的各個元素關(guān)聯(lián)的具體規(guī)則。例如,圖2所示的附屬于或關(guān)聯(lián)于簡歷文檔的大綱可規(guī)定,關(guān)聯(lián)于<education(教育)>元素的數(shù)據(jù)必須包括學(xué)院或大學(xué)的名稱,后面跟著該學(xué)院或大學(xué)的地址。
正如本領(lǐng)域熟練技術(shù)人員所理解的,XML大綱文件的開發(fā)者確定XML元素的名字以及該元素所允許的相關(guān)數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)。那么,所有按照給定大綱文件230以XML結(jié)構(gòu)來標(biāo)注文檔的用戶,均可利用包含于XML結(jié)構(gòu)內(nèi)的數(shù)據(jù)而不用考慮文檔的總體類型和結(jié)構(gòu)。例如,如果將示于圖2的簡歷文件傳給預(yù)期的雇主,預(yù)期的雇主可開發(fā)軟件應(yīng)用程序,用于解析該文檔以在文檔內(nèi)找到適用于預(yù)期雇主使用的特定類型的數(shù)據(jù)。例如,預(yù)期的雇主,可能想要創(chuàng)建一個預(yù)期的雇員是從那些學(xué)院和大學(xué)畢業(yè)的學(xué)院和大學(xué)的數(shù)據(jù)庫。使用附屬于文檔的大綱文件230,預(yù)期的雇主將了解到與<education>元素有關(guān)的數(shù)據(jù)已按照管理該文檔的大綱文件準(zhǔn)備好。因此,預(yù)期的雇主可開發(fā)軟件應(yīng)用程序,用于找到<education>元素并提取與其關(guān)聯(lián)的數(shù)據(jù),插入到預(yù)期的雇主的數(shù)據(jù)庫中。如上所述,為了能鏈接<education>元素,例如,與數(shù)據(jù)庫中的一個教育記錄和鏈接,就必須在文檔中存儲唯一的標(biāo)識符(ID)編號,用于將該文檔及其元素與數(shù)據(jù)庫中相應(yīng)的記錄關(guān)聯(lián)起來。
按照這個實例,預(yù)期的雇主不用考慮文檔的其它方面,諸如標(biāo)題部分的位置和其中所包含的數(shù)據(jù),就可提取這個數(shù)據(jù)。文檔的每個用戶都遵循附屬于或關(guān)聯(lián)于文檔的大綱文件中所規(guī)定的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)規(guī)則的事實,使這成為可能。大綱文件230可附屬于該文檔,或者大綱文件可保存在一個單獨的地方,諸如文檔可訪問的大綱文件庫。也就是說,文檔可包含一文件路徑指針或一唯一的名字空間標(biāo)識符(例如,URI或URN),用于定位和/或識別大綱文件230,以提供管理文檔的XML結(jié)構(gòu)的文檔規(guī)則。
如上簡述,文檔的元素,諸如<title>和<education>元素可與數(shù)據(jù)庫205內(nèi)的數(shù)據(jù)字段、查詢和/或過程相鏈接,因此,相應(yīng)的數(shù)據(jù)字段、查詢和/或過程中所更新的信息將自動地更新在文檔內(nèi)所包含的相應(yīng)的元素中的數(shù)據(jù),反之亦然,如下所述。
對數(shù)據(jù)庫的更新可通過各種影響數(shù)據(jù)庫多個字段和表的查詢完成,例如使用結(jié)構(gòu)化查詢語言(SQL)。除了直接來自于各個數(shù)據(jù)字段,文檔中的數(shù)據(jù)可來自一個查詢的結(jié)果,這個查詢根據(jù)各種選擇標(biāo)準(zhǔn)將來自數(shù)據(jù)庫中的許多字段和/或表的信息來組合。此外,正如本領(lǐng)域熟練技術(shù)人員所理解的,許多數(shù)據(jù)庫可支持存儲過程的使用,存儲過程是對數(shù)據(jù)庫執(zhí)行命令以向數(shù)據(jù)庫寫入數(shù)據(jù)、從數(shù)據(jù)庫提取數(shù)據(jù)及處理數(shù)據(jù)庫中數(shù)據(jù)的程序。
除將數(shù)據(jù)字段與文檔中的元素關(guān)聯(lián)之外,也可將查詢和存儲過程與文檔中的元素關(guān)聯(lián)。為了使元素和查詢之間的鏈接“雙向”(讀-寫),或者“單向”(只讀),可為每個元素創(chuàng)建兩種類型的查詢。如果只為從數(shù)據(jù)庫讀取數(shù)據(jù)而提供一個查詢,那么對數(shù)據(jù)的改變只能在允許只讀文檔的數(shù)據(jù)庫中進(jìn)行。另一方面,如果只提供根據(jù)文檔中的數(shù)據(jù)來更新數(shù)據(jù)庫的一個查詢,那么只能改變文檔來更新數(shù)據(jù)庫。如果提供兩個查詢,其中一個查詢是用于從數(shù)據(jù)庫讀取數(shù)據(jù)而一個查詢是用于寫入數(shù)據(jù)庫,則需要創(chuàng)建雙向鏈接。因此,可更新文檔或數(shù)據(jù)庫,且另一個將自動繼承所更新的內(nèi)容。在一些實施例中,只具有單向鏈接可能是較佳的。例如,數(shù)據(jù)庫管理員可能更喜歡對具體數(shù)據(jù)字段的改變只可由更新數(shù)據(jù)庫而不是文檔來進(jìn)行。那么將只需要從數(shù)據(jù)庫讀取最新數(shù)據(jù)的查詢,來保持文檔相對于數(shù)據(jù)庫是最新的。
例如,假設(shè)用戶是專利代理人,其任務(wù)是寫專利申請。在他/她的公司里的每個專利申請都分配一個唯一的文檔標(biāo)識符(ID)編號。還假設(shè)他的公司使用數(shù)據(jù)庫來存儲專利代理人名字和分配給每個代理人的專利申請之間的關(guān)聯(lián)。如果已為他/她分配了特定的專利申請文檔,那么數(shù)據(jù)庫包含一條記錄,通過將他/她的名字與文檔ID存儲在一給定數(shù)據(jù)庫表中的同一數(shù)據(jù)記錄中,將他/她識別為該專利申請文檔的所有者。除將這條信息存儲于數(shù)據(jù)庫中以外,申請文檔本身的格式要求文檔ID和代理人名字出現(xiàn)在其中。如果沒有本發(fā)明,代理人的名字就不得不輸入數(shù)據(jù)庫,且如果在數(shù)據(jù)庫中代理人名字改變(例如,該申請被重新分配給公司的另一個代理人),將不得不手工編輯申請文檔,用新的代理人名字來取代先前的代理人名字。
依照本發(fā)明的一個實施例,提供一種裝置將與數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)的合適關(guān)聯(lián)插入文檔,因此如果修改給定數(shù)據(jù)庫表中的相應(yīng)數(shù)據(jù)記錄時(例如,不同的代理人所分配到的申請文檔),文檔將自動反映這個改變并更新出現(xiàn)在文檔中的代理人名字。如果關(guān)聯(lián)是“雙向”的,意味著也為文檔指定了一種更新數(shù)據(jù)庫的方式,即可在文檔中改變代理人名字,并且也在數(shù)據(jù)庫中更新這個改變。通過在文檔中用適當(dāng)?shù)臉?biāo)記元素來標(biāo)記代理人的名字(例如<AttoreyName>,如果用XML)并指定該元素與數(shù)據(jù)庫中適當(dāng)?shù)牟樵冎g的映射(例如,由數(shù)據(jù)庫中用于讀取數(shù)據(jù)庫的稱為“GetCurrentAttorneyName”的存儲過程和另一個用于寫入數(shù)據(jù)庫的稱為“SetCurrentAttorneyName”的過程代表),可創(chuàng)建“雙向”的關(guān)聯(lián)或通信??蓪⑦@種關(guān)聯(lián)本身存儲在文檔中或在與文檔關(guān)聯(lián)的程序模塊的某一部分中。
在數(shù)據(jù)庫205中,可創(chuàng)建相應(yīng)于在文檔210內(nèi)所包含的規(guī)定元素的數(shù)據(jù)字段、查詢和/或過程,以接收、存儲、排序和維護(hù)關(guān)聯(lián)于該元素的數(shù)據(jù)。例如,圖2所示的簡歷文檔210的用戶,可在數(shù)據(jù)庫205中準(zhǔn)備一條包含關(guān)聯(lián)于<education>元素215的數(shù)據(jù)字段的數(shù)據(jù)庫記錄,來維護(hù)放置在簡歷文檔210的教育部分213中的數(shù)據(jù)。應(yīng)該理解的是,可按照各種數(shù)據(jù)的邏輯關(guān)聯(lián)來組織數(shù)據(jù)庫。特定的數(shù)據(jù)、查詢或過程可存儲在特定的字段中。許多關(guān)聯(lián)于文檔的字段可組合在一條數(shù)據(jù)庫記錄中。數(shù)據(jù)庫表可包括許多關(guān)聯(lián)于一類文檔的記錄。
一旦在數(shù)據(jù)庫205中建立了相應(yīng)的數(shù)據(jù)字段,如上所述的唯一文檔ID使寫入文檔210并關(guān)聯(lián)于<education>元素的,將該元素指向包含具有<education>元素數(shù)據(jù)的數(shù)據(jù)字段的數(shù)據(jù)庫205中的相應(yīng)記錄。同樣地,唯一的文檔ID可用于將包含教育數(shù)據(jù)的數(shù)據(jù)字段向后鏈接至文檔210的<education>元素。因此,當(dāng)相應(yīng)于這個具體文件的數(shù)據(jù)庫(205)記錄的教育字段中的數(shù)據(jù)被更新時,在簡歷文檔210中所包含的教育部分213中的數(shù)據(jù)也被自動更新。反之,如果用戶改變了在文檔210中所包含的教育部分213中的數(shù)據(jù),那些改變被自動地送到數(shù)據(jù)庫205中適當(dāng)記錄的教育數(shù)據(jù)字段,以更新那里所包含的數(shù)據(jù)。
正如本領(lǐng)域熟練技術(shù)人員應(yīng)當(dāng)理解的,軟件應(yīng)用程序模塊可以寫入到文檔軟件應(yīng)用程序和數(shù)據(jù)庫軟件應(yīng)用程序中,當(dāng)數(shù)據(jù)在數(shù)據(jù)庫或者文檔中被修改時,用于調(diào)用相應(yīng)的數(shù)據(jù)字段、查詢和/或過程或者調(diào)用相應(yīng)的文檔元素,以請求更新相應(yīng)數(shù)據(jù)字段或相應(yīng)文檔的元素數(shù)據(jù)。用于控制文檔元素和相應(yīng)數(shù)據(jù)字段之間以及反過來的通信的軟件應(yīng)用程序模塊,可以是為文檔應(yīng)用程序和/或數(shù)據(jù)庫應(yīng)用程序所編寫的軟件程序模塊,或者程序模塊可作為文檔應(yīng)用程序和/或數(shù)據(jù)庫應(yīng)用程序訪問的應(yīng)用程序編程接口或動態(tài)鏈接庫來使用。數(shù)據(jù)庫205的數(shù)據(jù)庫應(yīng)用程序和相應(yīng)的存儲器可設(shè)置于遠(yuǎn)離用戶計算機(jī)20的、通過基于因特網(wǎng)的網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫服務(wù)器或通過與遠(yuǎn)程數(shù)據(jù)庫服務(wù)器的因特網(wǎng)連接可訪問用戶的計算機(jī)的遠(yuǎn)程計算機(jī)服務(wù)器49上。
依照本發(fā)明的一個實施例,數(shù)據(jù)庫205可包含文檔庫220,在文檔庫220中,可將各種規(guī)定的文檔類型連同關(guān)聯(lián)的數(shù)據(jù)字段、查詢和/或過程一起保存。如下面將描述的,用戶可通過用戶的文檔應(yīng)用程序從文檔庫220中選擇一種文檔類型,來打開一個已經(jīng)被結(jié)構(gòu)化標(biāo)注的并關(guān)聯(lián)于數(shù)據(jù)庫內(nèi)相應(yīng)數(shù)據(jù)字段、查詢和/或過程的特定文檔。例如,如果用戶是準(zhǔn)備專利申請說明書文檔的項目小組成員,則可將專利申請說明書文檔包含在文檔庫220中。當(dāng)用戶想要工作于專利申請說明書文檔時,用戶可通過數(shù)據(jù)庫205從文檔庫選擇專利申請說明書文檔。打開專利申請說明書文檔,使得用戶可使用具有所有結(jié)構(gòu)化標(biāo)注的用戶文檔來取代原文檔。例如,專利申請說明書文檔可以采用包含XML標(biāo)記標(biāo)注和關(guān)聯(lián)XML大綱和文件路徑指針的模板的形式,允許用戶從數(shù)據(jù)據(jù)庫205中相應(yīng)數(shù)據(jù)字段、查詢和/或過程下載數(shù)據(jù)開始準(zhǔn)備文檔,或者用戶可以通過向文檔插入數(shù)據(jù)來準(zhǔn)備文檔,并隨后將文檔自動發(fā)送至在數(shù)據(jù)庫205內(nèi)的所包含相應(yīng)數(shù)據(jù)字段、查詢和/或過程。
如圖2所示,一旦從數(shù)據(jù)庫側(cè)的文檔庫220中選擇了一個給定文檔之后,用戶就可訪問與簡歷文檔210關(guān)聯(lián)的、用于簡歷文檔的數(shù)據(jù)字段、查詢和/或過程。因此,用戶可更新在各個數(shù)據(jù)字段、查詢和/或過程225中所它含的數(shù)據(jù),以便能自動更新在相應(yīng)文檔210中的數(shù)據(jù)。數(shù)據(jù)庫205可運行在共享數(shù)據(jù)環(huán)境中,在這樣的數(shù)據(jù)環(huán)境中,許多用戶可訪問諸如簡歷文檔數(shù)據(jù)庫225這樣的單一數(shù)據(jù)庫,來添加、刪除和一般地更新在相應(yīng)數(shù)據(jù)字段、查詢和/或過程中包含的數(shù)據(jù)。因為諸如簡歷文檔225中標(biāo)題數(shù)據(jù)字段的各個數(shù)據(jù)字段都可與簡歷文檔210的相應(yīng)標(biāo)題段212相映射和鏈接,所以對在簡歷文檔225包含的標(biāo)題數(shù)據(jù)字段中的數(shù)據(jù)的修改都將引起在文檔標(biāo)題段212中包含的信息的更新。例如,如果簡歷文檔225的標(biāo)題段中的數(shù)據(jù)從“John Doe”修改為“JaneDoe”,包含在簡歷文檔210的標(biāo)題段中的信息將自動從“John Doe”修改為“Jane Doe”。同樣地,如果用戶打開簡歷文檔210,并將標(biāo)題從“John Doe”修改為“Jane Doe”,則在數(shù)據(jù)庫205包含的簡歷文檔數(shù)據(jù)字段225的標(biāo)題段中的數(shù)據(jù)同樣將被自動更新。
圖3示出了一個創(chuàng)建文檔和將文檔內(nèi)的元素鏈接至數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)字段、查詢和/或過程的軟件應(yīng)用程序的計算機(jī)屏幕顯示。依照本發(fā)明的一個實施例,且如上簡述,可在數(shù)據(jù)庫205訪問文檔庫220,用于獲得映射至相應(yīng)的數(shù)據(jù)庫的先前所創(chuàng)建的文檔,或用于獲得一個文檔模板,可用于創(chuàng)建映射至相應(yīng)的數(shù)據(jù)庫的文檔。參考圖3,一旦選擇了用戶文檔應(yīng)用程序300的典型文檔庫按鈕310后,就可啟動文檔庫用戶界面320來為用戶提供適用文檔或文檔類型的列表。例如,用戶可從文檔庫用戶界面320選擇簡歷文檔325來著手圖2所示的簡歷文檔210的編輯。
一旦用戶通過從文檔庫用戶界面320中選擇簡歷文檔來著手簡歷文檔210的編輯時,就向用戶顯示簡歷文檔210用于編輯。依照本發(fā)明的一個實施例,所編輯的簡歷文檔可包括簡歷文檔210的最新版本,它包括填充在每一個文檔元素中的、來自數(shù)據(jù)庫205的相應(yīng)數(shù)據(jù)字段、查詢和/或過程的數(shù)據(jù),因為文檔元素是通過將唯一文檔ID與相應(yīng)數(shù)據(jù)庫記錄匹配來關(guān)聯(lián)于相應(yīng)數(shù)據(jù)庫記錄。如以上參考圖2所述,一旦用戶更新了在簡歷文檔210的各種元素中所包含的數(shù)據(jù)時,也更新了在數(shù)據(jù)庫205的相應(yīng)數(shù)據(jù)字段、查詢和/或過程中所包含的數(shù)據(jù)。同樣,對在數(shù)據(jù)庫205的相應(yīng)數(shù)據(jù)字段、查詢和/或過程中所包含的數(shù)據(jù)的修改將自動更新在簡歷文檔210的數(shù)據(jù)元素中所包含的相應(yīng)數(shù)據(jù)。
可替換地,列于文檔庫用戶界面320的文檔可包括各種可由用戶訪問的模板文檔,用于關(guān)聯(lián)于數(shù)據(jù)庫205中的相應(yīng)數(shù)據(jù)字段、查詢和/或過程。依照本發(fā)明的一個實施例,各種文檔類型可包括許多諸如XML元素的結(jié)構(gòu)化元素來形成所要求的文檔的模板。在用戶完成了所選定的文檔后,例如,完成了簡歷文檔210的教育部分,用戶可在數(shù)據(jù)庫205上選擇一個數(shù)據(jù)位置,該數(shù)據(jù)庫205包含相應(yīng)于所選定的文檔的預(yù)格式化的數(shù)據(jù)元素的數(shù)據(jù)字段、查詢和/或過程。因此,當(dāng)用戶保存準(zhǔn)備好的文檔時,插入文檔的數(shù)據(jù)也將被保存到數(shù)據(jù)庫205的相應(yīng)數(shù)據(jù)字段、查詢和/或過程中。然后,如上所述,任何時候數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)字段、查詢和/或過程被修改或更新,則文檔中的相應(yīng)元素將同樣被修改或更新,反之亦然。如果創(chuàng)建新文檔并保存到文檔庫或數(shù)據(jù)庫中,可為它自動生成一個新文檔ID,因此能在數(shù)據(jù)庫中創(chuàng)建相應(yīng)于該文檔的一條記錄。
參考圖4,并依照本發(fā)明的一個實施例,可結(jié)構(gòu)化目前未被映射或鏈接至相應(yīng)數(shù)據(jù)庫的文檔,以便將各種文檔元素鏈接至數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)字段、查詢和/或過程。例如,如果用戶準(zhǔn)備諸如簡歷文檔210這樣的一個文檔時,通過在他/她的字處理器300的數(shù)據(jù)輸入?yún)^(qū)305中準(zhǔn)備文檔,用戶可從文檔庫用戶界面320中選擇簡歷的文檔類型,參考圖3所述,以便為用戶提供建議的元素列表來應(yīng)用于用戶正在準(zhǔn)備的文檔。如在圖4中所示,在響應(yīng)簡歷文檔類型的選擇時,可為用戶提供一個建議的簡歷元素窗格350,來為用戶提供建議的元素,用于使用XML結(jié)構(gòu)標(biāo)注的簡歷文檔。依照本發(fā)明的一個實施例,用戶可輸入文檔并手工插入XML元素,諸如<education>元素360,或者用戶可將他的光標(biāo)365放在文檔的教育部分內(nèi)并從窗格350中選擇教育元素355來用<education>元素自動標(biāo)注文檔的所選區(qū)域。用戶用XML結(jié)構(gòu)標(biāo)注文檔時,可提供XML樹視圖窗格340來向用戶顯示XML應(yīng)用于文檔的架構(gòu)。
一旦用結(jié)構(gòu)諸如XML元素結(jié)構(gòu)來標(biāo)注新創(chuàng)建文檔,文檔元素可被鏈接至相應(yīng)的數(shù)據(jù)字段、查詢和/或過程來允許文檔和數(shù)據(jù)庫205之間的通信,如上所述。依照本發(fā)明的一個實施例,向用戶提供用于標(biāo)注文檔的建議元素,可采用背射方式預(yù)先填充在數(shù)據(jù)庫205的相應(yīng)數(shù)據(jù)字段、查詢和/或過程中。因此,具有建議的元素之一的文檔的標(biāo)注不僅可為文檔提供所要求的結(jié)構(gòu),而且還指向數(shù)據(jù)庫205中相應(yīng)的數(shù)據(jù)字段。
可替換地,參考圖5,可為用戶提供映射數(shù)據(jù)字段的用戶界面500,用于將文檔的元素映射至數(shù)據(jù)庫205中的相應(yīng)數(shù)據(jù)字段、查詢和/或過程。如圖5所示,可將文檔的元素列表連同一個可將文檔元素映射和鏈接到的數(shù)據(jù)字段、查詢和過程的關(guān)聯(lián)列表一起填充到用戶界面500中。應(yīng)該理解的是,用戶界面500可同樣應(yīng)用于將文檔元素映射至查詢540和過程545。也就是說,如圖5中所示,可將用戶界面擴(kuò)展到包括用于文檔和數(shù)據(jù)庫之間數(shù)據(jù)讀與寫的查詢(例如,SQL語句)或存儲過程的名稱。
例如,如果用戶要求插入文檔的標(biāo)題段的數(shù)據(jù)應(yīng)該映射和鏈接至數(shù)據(jù)庫205的標(biāo)題字段,用戶可選擇標(biāo)題數(shù)據(jù)字段后再選擇<title>元素,以便將文檔的標(biāo)題元素映射和鏈接至數(shù)據(jù)庫205的標(biāo)題數(shù)據(jù)字段。因此,在將標(biāo)題元素映射至數(shù)據(jù)字段之后,對文檔的標(biāo)題部分或者數(shù)據(jù)庫205的數(shù)據(jù)字段中所包含的數(shù)據(jù)的其它修改,都將引起相應(yīng)文檔元素或數(shù)據(jù)字段的修改,且反之亦然。一旦所有要求的文檔和元素都映射和鏈接至相應(yīng)的數(shù)據(jù)字段、查詢和/或過程之后,用于將文檔與記錄或適當(dāng)?shù)臄?shù)據(jù)組相關(guān)聯(lián)的唯一ID就存在了,從而建立了文檔元素和相應(yīng)數(shù)據(jù)字段、查詢和/或過程之間的數(shù)據(jù)通信。
圖6和7是流程圖,說明了將文檔元素映射和鏈接至數(shù)據(jù)庫的相應(yīng)數(shù)據(jù)字段、查詢和/或過程的方法。600的方法始于開始步驟605,并運行至步驟610,在這里為保存和處理數(shù)據(jù)建立數(shù)據(jù)庫或表205。為了圖6和7的討論,例如,假設(shè)在數(shù)據(jù)庫205建立一個表,以保存用于準(zhǔn)備最后的專利申請說明書文檔的數(shù)據(jù)。在步驟615,對用戶是否必須創(chuàng)建新文檔做出判定。如果否,方法繼續(xù)至步驟635,且可將諸如“patentspecificationdocumentschema.xsd”這樣的大綱附屬于一個現(xiàn)有的專利申請說明書文檔,以提供可用于以XML結(jié)構(gòu)來標(biāo)注文檔的規(guī)則和過程。在步驟640,將這個大綱附屬于現(xiàn)有文檔??商鎿Q地,文檔可已具有附屬的或關(guān)聯(lián)的大綱。
如果在步驟615做出必須創(chuàng)建新文檔的判定,則方法繼續(xù)至步驟620,且用戶可創(chuàng)建新的專利申請說明書文檔并在文檔中存儲用來將文檔元素鏈接至記錄在數(shù)據(jù)庫中的唯一文檔ID,如上面參考圖3、4和5所述。在步驟625,執(zhí)行對數(shù)據(jù)庫205的檢查來判定用戶所創(chuàng)建的新文檔的大綱是否是可用的。如上面參考圖3和4的所討論的,可通過選擇文檔庫來確定在數(shù)據(jù)庫205的文檔庫是否包括可與用戶創(chuàng)建的新文檔關(guān)聯(lián)的文檔類型來做出這一判定。例如,如在圖3中所示,用戶可從文檔庫用戶界面320選擇專利揭示文檔類型,且在步驟630,可獲得關(guān)聯(lián)于專利公開文檔類型的大綱并將它附屬于用戶正在準(zhǔn)備的新文檔。
在步驟645,按用戶要求用XML元素標(biāo)注由用戶所創(chuàng)建和/或選擇的文檔。應(yīng)該理解的,如果用戶在步驟615選擇了一個現(xiàn)有的文檔,則可要求這個文檔不附加結(jié)構(gòu)化標(biāo)注。在步驟650,用戶可指定數(shù)據(jù)庫205內(nèi)的表來將文檔元素關(guān)聯(lián)于數(shù)據(jù)庫205的那張表中所保存的相應(yīng)數(shù)據(jù)字段、查詢和/或過程。在步驟655,如上面參考圖4和5所述,文檔中的元素映射和鏈接至數(shù)據(jù)庫205中給定表內(nèi)的數(shù)據(jù)字段、查詢和/或過程,以幫助文檔中元素與數(shù)據(jù)庫205中的數(shù)據(jù)字段、查詢和/或過程之間的數(shù)據(jù)通信。
再參考步驟645,如果未在數(shù)據(jù)庫205準(zhǔn)備好了用于保存關(guān)聯(lián)于由用戶所創(chuàng)建文檔的數(shù)據(jù)的表,則用戶可為在文檔中包括的XML元素指定具有在選定表中的相應(yīng)數(shù)據(jù)字段、查詢和/或過程。例如,數(shù)據(jù)庫205可包含許多表,這些表又包括許多數(shù)據(jù)字段、查詢和/或過程或文檔類型??稍跀?shù)據(jù)庫205內(nèi)建立這個表,用于保存關(guān)聯(lián)于專利申請說明書文檔的數(shù)據(jù)。在為專利申請說明書文檔創(chuàng)建的表內(nèi),也可創(chuàng)建各種子文件來保存各個專利申請說明書文檔的數(shù)據(jù)。在每個子文件內(nèi),可創(chuàng)建各種數(shù)據(jù)字段、查詢和/或過程以關(guān)聯(lián)在由用戶創(chuàng)建的專利申請說明書文檔內(nèi)包含的各個元素。
在步驟660,可在選定表內(nèi)建立各個數(shù)據(jù)字段、查詢和/或過程,用于關(guān)聯(lián)應(yīng)用于文檔的XML元素。依照一個實施例,文檔的標(biāo)注和將文檔映射至建議的數(shù)據(jù)字段、查詢和/或過程,如上面參考圖5所述,在選定表內(nèi)建立了相應(yīng)的數(shù)據(jù)字段、查詢和/或過程??商鎿Q地,在步驟665,用戶可直接輸入數(shù)據(jù)庫205,并創(chuàng)建具有數(shù)據(jù)字段、查詢和/或過程的表,當(dāng)應(yīng)用于用戶所創(chuàng)建的文檔時,這些數(shù)據(jù)字段、查詢和/或過程可映射至所選定的文檔元素。
一旦準(zhǔn)備了文檔并用XML結(jié)構(gòu)來標(biāo)注這個文檔,且一旦建立了包含相應(yīng)于文檔元素的數(shù)據(jù)的數(shù)據(jù)字段、查詢和/或過程,方法繼續(xù)至圖7的步驟670,這時可開始表和文檔的正式使用。在步驟675,如果用戶修改并保存文檔,該方法繼續(xù)至步驟680,且通過更新表中相應(yīng)的數(shù)據(jù)字段、查詢和/或過程,在表中更新在文檔各種元素中所修改和保存的數(shù)據(jù)。另一方面,在步驟685,如果用戶直接對在相應(yīng)于文檔中元素的數(shù)據(jù)字段、查詢和/或過程中包含的數(shù)據(jù)做出修改,方法繼續(xù)至690,且在相應(yīng)數(shù)據(jù)字段、查詢和/或過程中的相應(yīng)數(shù)據(jù)修改時,自動更新關(guān)聯(lián)于文檔中相應(yīng)數(shù)據(jù)元素的數(shù)據(jù)。這個方法在步驟695結(jié)束。
如上所述,提供了用于將文檔的元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段、查詢和/或過程相映射和鏈接的方法和系統(tǒng)。對于那些本領(lǐng)域熟練技術(shù)人員來說,在不脫離本發(fā)明的范圍和精神的情況下,對本發(fā)明做出各種修改或改變將是顯而易見。通過研究在此所揭示的本發(fā)明的說明與實踐,本發(fā)明的其它實施例對于那些本領(lǐng)域熟練技術(shù)人員將是顯然的。
權(quán)利要求
1.一種將一計算機(jī)生成文檔中的元素與一數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)相鏈接的方法,包括將一標(biāo)記語言的元素應(yīng)用于所述文檔;將所述文檔中一或多個標(biāo)記語言元素與所述數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)相鏈接;將數(shù)據(jù)輸入至關(guān)聯(lián)于所述文檔中給定標(biāo)記語言元素的所述數(shù)據(jù)庫中;以及響應(yīng)將數(shù)據(jù)輸入至關(guān)聯(lián)于所述文檔中給定標(biāo)記語言元素的所述數(shù)據(jù)庫中,自動將數(shù)據(jù)寫至所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于給定標(biāo)記語言元素。
2.如權(quán)利要求1所述的方法,還包括,在所述數(shù)據(jù)庫內(nèi)建立數(shù)據(jù)字段,用于鏈接至所述文檔中的相應(yīng)標(biāo)記語言元素。
3.如權(quán)利要求2所述的方法,還包括,編寫所述文檔的一唯一文檔標(biāo)識符,用于將所述數(shù)據(jù)庫中的數(shù)據(jù)字段與所述文檔相鏈接。
4.如權(quán)利要求3所述的方法,還包括編寫對數(shù)據(jù)庫的一數(shù)據(jù)庫查詢,用于采用所述數(shù)據(jù)庫內(nèi)的一或多個數(shù)據(jù)字段來組合數(shù)據(jù);以及將所述數(shù)據(jù)庫查詢的結(jié)果寫入所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于所述數(shù)據(jù)庫查詢。
5.如權(quán)利要求4所述的方法,還包括,將所述數(shù)據(jù)庫查詢與所述文檔中的一給定標(biāo)記語言元素關(guān)聯(lián),用于將所述數(shù)據(jù)庫查詢的結(jié)果寫入所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于所述數(shù)據(jù)庫查詢。
6.如權(quán)利要求5所述的方法,還包括,將一編程過程存儲在所述數(shù)據(jù)庫中,用于從所述數(shù)據(jù)庫讀取數(shù)據(jù),以及用于將數(shù)據(jù)寫至所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于所述給定標(biāo)記語言元素。
7.如權(quán)利要求6所述的方法,還包括當(dāng)更新關(guān)聯(lián)于所述數(shù)據(jù)庫查詢的所述數(shù)據(jù)庫中數(shù)據(jù)時,更新所述數(shù)據(jù)庫查詢的結(jié)果;以及當(dāng)更新所述數(shù)據(jù)庫查詢結(jié)果時,執(zhí)行所述編程過程。
8.如權(quán)利要求7所述的方法,其特征在于,所述過程采用“GetCurrentMarkupElementData(取當(dāng)前標(biāo)記元素數(shù)據(jù))”的格式。
9.如權(quán)利要求3所述的方法,還包括將數(shù)據(jù)輸入至關(guān)聯(lián)于一給定標(biāo)記語言元素的所述文檔;以及響應(yīng)將數(shù)據(jù)輸入至關(guān)聯(lián)于一給定標(biāo)記語言元素的所述文檔,自動將輸入所述文檔的數(shù)據(jù)寫至鏈接于所述給定標(biāo)記語言元素的所述數(shù)據(jù)庫中的一數(shù)據(jù)字段。
10.如權(quán)利要求9所述的方法,還包括編寫一對所述數(shù)據(jù)庫的數(shù)據(jù)庫查詢,用于將輸入所述文檔的數(shù)據(jù)寫至鏈接于所述給定標(biāo)記語言元素的所述數(shù)據(jù)庫中的一數(shù)據(jù)字段。
11.如權(quán)利要求10所述的方法,還包括,將所述數(shù)據(jù)庫查詢與所述文檔中一給定標(biāo)記語言元素關(guān)聯(lián),用于將輸入所述文檔的數(shù)據(jù)寫至鏈接于所述給定標(biāo)記語言元素的所述數(shù)據(jù)庫中的一數(shù)據(jù)字段。
12.如權(quán)利要求11所述的方法,還包括,在所述數(shù)據(jù)庫中存儲一編程過程,用于如所述查詢所要求的將輸入所述文檔的數(shù)據(jù)寫至鏈接于所述給定標(biāo)記語言元素的所述數(shù)據(jù)庫中的一數(shù)據(jù)字段。
13.如權(quán)利要求12所述的方法,其特征在于,所述過程采用“SetCurrentMarkupElementData(設(shè)置當(dāng)前標(biāo)記元素數(shù)據(jù))”的格式。
14.如權(quán)利要求1所述的方法,在對所述文檔應(yīng)用一標(biāo)記語言的元素之前,將一大綱附屬于所述文檔來定義關(guān)聯(lián)于要應(yīng)用于所述文檔的一標(biāo)記語言的規(guī)則。
15.如權(quán)利要求14所述的方法,其特征在于,所述標(biāo)記語言是可擴(kuò)展標(biāo)記語言。
16.如權(quán)利要求14所述的方法,其特征在于,所述標(biāo)記語言是超文本標(biāo)記語言。
17.如權(quán)利要求1所述的方法,其特征在于,所述將文檔中的一或多個標(biāo)記語言元素鏈接至數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)字段的步驟還包括提供一在所述文檔內(nèi)包含的標(biāo)記語言元素的列表;提供一用于鏈接至所述文檔中相應(yīng)的標(biāo)記語言元素的數(shù)據(jù)字段的列表;從所述標(biāo)記語言列表中選擇一標(biāo)記語言列表;從所述數(shù)據(jù)字段列表中選擇一數(shù)據(jù)字段,用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素;以及在從所述數(shù)據(jù)字段列表中選擇所述數(shù)據(jù)字段用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素后,將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素。
18.一種將在一計算機(jī)生成的文檔中的元素與一數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)相鏈接的方法,包括將一標(biāo)記語言的元素應(yīng)用于所述文檔;將在所述文檔中一或多個標(biāo)記語言元素與所述數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)相鏈接;為所述文檔編寫一唯一文檔標(biāo)識符,用于將在所述文檔中的一或多個標(biāo)記語言元素與在所述數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)相鏈接;將數(shù)據(jù)輸入與在所述文檔中一給定標(biāo)記語言元素關(guān)聯(lián)的所述數(shù)據(jù)庫中;在響應(yīng)將數(shù)據(jù)輸入至與在所述文檔中給定的標(biāo)記語言元素關(guān)聯(lián)的所述數(shù)據(jù)庫中時,自動將所述數(shù)據(jù)寫入所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于所述給定的標(biāo)記語言元素;將數(shù)據(jù)輸入與一給定的標(biāo)記語言元素關(guān)聯(lián)的文檔中;以及響應(yīng)將數(shù)據(jù)輸入與一給定的標(biāo)記語言元素關(guān)聯(lián)的文檔中,自動將所述輸入到文檔中的數(shù)據(jù)寫入鏈接至所述給定的標(biāo)記語言元素的數(shù)據(jù)庫中的一數(shù)字字段中。
19.如權(quán)利要求18所述的方法,還包括在所述數(shù)據(jù)庫內(nèi)建立數(shù)據(jù)字段,用于鏈接至在所述文檔中的相應(yīng)標(biāo)記語言元素。
20.如權(quán)利要求19所述的方法,還包括將一第一數(shù)據(jù)庫查詢寫入所述數(shù)據(jù)庫中,用于采用所述數(shù)據(jù)庫內(nèi)的一或多個數(shù)據(jù)字段來組合數(shù)據(jù),以及用于將所述第一數(shù)據(jù)庫查詢的結(jié)果寫入到所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于所述數(shù)據(jù)庫查詢;將一第二數(shù)據(jù)庫查詢寫入所述數(shù)據(jù)庫中,用于將輸入到所述文檔的數(shù)據(jù)寫入關(guān)聯(lián)于所述給定的標(biāo)記語言元素的數(shù)據(jù)庫中的一數(shù)據(jù)字段中。
21.如權(quán)利要求20所述的方法,還包括將所述第一和第二數(shù)據(jù)庫查詢與所述文檔中一給定的標(biāo)記語言元素關(guān)聯(lián)。
22.如權(quán)利要求21所述的方法,還包括將一第一編程過程存儲在所述數(shù)據(jù)庫中,用于從所述數(shù)據(jù)庫中讀取數(shù)據(jù)以及用于將數(shù)據(jù)寫入所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于所述給定的標(biāo)記語言元素。
23.如權(quán)利要求22所述的方法,還包括當(dāng)更新在關(guān)聯(lián)于所述數(shù)據(jù)庫查詢的數(shù)據(jù)庫中的數(shù)據(jù)時,更新所述數(shù)據(jù)庫查詢的結(jié)果;以及當(dāng)更新所述數(shù)據(jù)庫查詢的結(jié)果時,執(zhí)行所述第一編程過程。
24.如權(quán)利要求23所述的方法,還包括將一第二編程過程存儲在所述數(shù)據(jù)庫中,用于如所述查詢所要求的將所述輸入到文檔的數(shù)據(jù)寫入被鏈接到所述給定的標(biāo)記語言元素的數(shù)據(jù)庫的一數(shù)據(jù)字段中。
25.如權(quán)利要求24所述的方法,其特征在于,所述標(biāo)記語言是可擴(kuò)展標(biāo)記語言。
26.如權(quán)利要求25所述的方法,其特征在于,所述標(biāo)記語言是超文本標(biāo)記語言。
27.如權(quán)利要求18所述的方法,其特征在于,所述將所述文檔中一或多個標(biāo)記語言元素與所述數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段相鏈接的步驟還包括提供一在所述文檔中包含的標(biāo)記語言元素列表;提供一為鏈接至所述文檔中相應(yīng)的標(biāo)記語言元素而建立的數(shù)據(jù)字段列表;從所述標(biāo)記語言元素列表中選擇一標(biāo)記語言元素;從所述數(shù)據(jù)字段列表中選擇一數(shù)據(jù)字段,用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素;以及一旦從所述數(shù)據(jù)字段列表中選擇所述數(shù)據(jù)字段,用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素時,所述選擇的數(shù)據(jù)字段與所述選擇的標(biāo)記語言元素相鏈接。
28.一種可存儲計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì),當(dāng)由一計算機(jī)執(zhí)行所述指令時,執(zhí)行權(quán)利要求18所述的步驟。
29.一種將在一計算機(jī)生成的文檔中的元素與一數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)字段相鏈接的方法,包括在所述文檔中一或多個標(biāo)記語言元素和所述數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段之間提供一通信鏈接;將數(shù)據(jù)輸入至關(guān)聯(lián)于一給定標(biāo)記語言元素的文檔中;以及響應(yīng)將將數(shù)據(jù)輸入至關(guān)聯(lián)于所述給定標(biāo)記語言元素的文檔中,所述數(shù)據(jù)自動保存到相應(yīng)于所述給定標(biāo)記語言元素的數(shù)據(jù)庫中的一數(shù)據(jù)字段。
30.如權(quán)利要求29所述的方法,在提供所述文檔中一或多個標(biāo)記語言元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段之間一通信鏈接的步驟之前,從一包含用一或多個標(biāo)記語言元素標(biāo)注的文檔和關(guān)聯(lián)于所述數(shù)據(jù)庫的文檔的文檔庫中選擇所述文檔,所述數(shù)據(jù)庫包含為鏈接至所述一或多個標(biāo)記語言元素而建立的數(shù)據(jù)字段。
31.如權(quán)利要求30所述的方法,其特征在于,提供所述文檔中一或多個標(biāo)記語言元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段之間一通信鏈接的步驟還包括提供一在所述文檔中包含的標(biāo)記語言元素列表;提供一為鏈接至所述文檔中相應(yīng)的標(biāo)記語言元素而建立的數(shù)據(jù)字段列表;從所述標(biāo)記語言元素列表中選擇一標(biāo)記語言元素;從所述數(shù)據(jù)字段列表中選擇一數(shù)據(jù)字段,用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素;以及一旦從所述數(shù)據(jù)字段列表中選擇所述數(shù)據(jù)字段,用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素時,所述選擇的數(shù)據(jù)字段與所述選擇的標(biāo)記語言元素相鏈接。
32.如權(quán)利要求31所述的方法,其特征在于,所述選擇的數(shù)據(jù)字段與所述選擇的標(biāo)記語言元素相鏈接的步驟包括,為所述文檔編寫一唯一的文檔標(biāo)識符,以及將所述唯一的文檔標(biāo)識符與所述選擇的標(biāo)記語言元素關(guān)聯(lián),以及將所述唯一的文檔標(biāo)識符與所述選擇的數(shù)據(jù)字段關(guān)聯(lián),以將所述選擇的標(biāo)記語言元素指向所述數(shù)據(jù)庫中選擇的數(shù)據(jù)字段。
33.一種可存儲計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì),當(dāng)由一計算機(jī)執(zhí)行所述指令時,執(zhí)行下列步驟將一文檔中的一或多個XML元素與一數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段相鏈接;將數(shù)據(jù)輸入關(guān)聯(lián)于一給定XML元素的文檔中;以及響應(yīng)將數(shù)據(jù)輸入關(guān)聯(lián)于所述給定XML元素的文檔中,所述數(shù)據(jù)自動保存到所述數(shù)據(jù)庫中相應(yīng)于所述給定XML元素的一數(shù)據(jù)字段。
34.如權(quán)利要求33所述的計算機(jī)可讀介質(zhì),在所述將文檔中的一或多個XML元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段相鏈接的步驟之前,從一包含用所述一或多個XML元素標(biāo)注的文檔和所述關(guān)聯(lián)于數(shù)據(jù)庫的文檔的文檔庫中選擇所述文檔,所述數(shù)據(jù)庫包含為鏈接至所述一或多個XML元素的數(shù)據(jù)字段。
35.如權(quán)利要求34所述的計算機(jī)可讀介質(zhì),其特征在于,所述將文檔中的一或多個XML元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段相鏈接的步驟還包括提供一包含在所述文檔中的XML元素列表;提供一為鏈接至所述文檔中相應(yīng)的XML元素而建立的數(shù)據(jù)字段列表;從所述XML元素列表中選擇一XML元素;從所述數(shù)據(jù)字段的列表中選擇一數(shù)據(jù)字段,用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的XML元素;以及一旦從所述數(shù)據(jù)字段列表中選擇所述數(shù)據(jù)字段,用于將所述選擇的數(shù)據(jù)字段鏈接至所述選擇的標(biāo)記語言元素時,所述選擇的數(shù)據(jù)字段與所述選擇的標(biāo)記語言元素相鏈接。
36.如權(quán)利要求35所述的計算機(jī)可讀介質(zhì),其特征在于,所述將文檔中的一或多個XML元素與數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)字段相鏈接的步驟包括,為所述文檔編寫一唯一的文檔標(biāo)識符,以及將所述唯一的文檔標(biāo)識符與所述選擇的XML元素關(guān)聯(lián),以及將所述唯一的文檔標(biāo)識符與所述選擇的數(shù)據(jù)字段關(guān)聯(lián),以將所述選擇的XML元素指向所述數(shù)據(jù)庫中選擇的數(shù)據(jù)字段。
37.如權(quán)利要求36所述的具有可存儲計算機(jī)可讀指令的計算機(jī)可讀介質(zhì),當(dāng)由一計算機(jī)執(zhí)行所述指令時,還執(zhí)行下列步驟將數(shù)據(jù)輸入至一給定的數(shù)據(jù)字段中;將所述數(shù)據(jù)保存到所述給定的數(shù)據(jù)字段中;以及響應(yīng)將所述數(shù)據(jù)保存到所述給定的數(shù)據(jù)字段中,所述數(shù)據(jù)自動保存所述文檔的一位置中,所述位置在所述文檔中關(guān)聯(lián)于一給定的相應(yīng)于所述給定的數(shù)據(jù)字段的XML元素。
全文摘要
提供用于將文檔中的元素與數(shù)據(jù)庫中相應(yīng)的字段或查詢相映射和鏈接的方法和系統(tǒng)。采用諸如可擴(kuò)展標(biāo)記語言(XML)的標(biāo)記語言的結(jié)構(gòu)化元素來標(biāo)注文檔,以便將文檔各部分映射至相應(yīng)的數(shù)據(jù)庫。一旦文檔內(nèi)的各個元素與一選定的數(shù)據(jù)庫內(nèi)的相應(yīng)數(shù)據(jù)字段或查詢相映射和鏈接,對文檔內(nèi)各個元素所做的修改會自動引起那些元素所映射和鏈接的數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)的更新。反之,對所選數(shù)據(jù)庫內(nèi)各個數(shù)據(jù)字段的修改也會自動更新文檔內(nèi)相應(yīng)的元素。
文檔編號G06F17/21GK1527226SQ200410005390
公開日2004年9月8日 申請日期2004年2月12日 優(yōu)先權(quán)日2003年2月13日
發(fā)明者B·M·瓊斯, B M 瓊斯, M·薩維基 申請人:微軟公司