專(zhuān)利名稱(chēng):文字處理應(yīng)用程序中的數(shù)據(jù)綁定的制作方法
背景技術(shù):
近年來(lái)標(biāo)記語(yǔ)言受到廣泛的歡迎。一種標(biāo)記語(yǔ)言,可擴(kuò)展標(biāo)記語(yǔ)言(XML),是提供標(biāo)識(shí)、交換和處理各種數(shù)據(jù)的方法的通用語(yǔ)言。例如,XML用于創(chuàng)建可以由各種應(yīng)用程序利用的文檔。XML文件的元素一般擁有相關(guān)聯(lián)的名字空間和模式。
名字空間是XML文檔中用于定義元素/屬性名稱(chēng)和類(lèi)型的名字集合的唯一標(biāo)識(shí)符。名字空間的名字通常用于唯一地標(biāo)識(shí)每一類(lèi)XML文檔。唯一的名字空間區(qū)分來(lái)自不同源且碰巧擁有相同名稱(chēng)的標(biāo)記元素。
XML模式提供描述和確認(rèn)XML環(huán)境中的數(shù)據(jù)的方法。模式規(guī)定了什么元素和屬性被用來(lái)描述XML文檔中的內(nèi)容、哪里允許每一元素、該模式中允許何種類(lèi)型的內(nèi)容以及在哪些其它元素內(nèi)可以出現(xiàn)哪些元素。模式的使用確保文檔是以一致且可預(yù)測(cè)的方式來(lái)結(jié)構(gòu)化的。模式可以由用戶(hù)創(chuàng)建,且一般由諸如XML等相關(guān)聯(lián)的標(biāo)記語(yǔ)言支持。通過(guò)使用XML編輯器,用戶(hù)可以操縱XML文件,并生成遵循用戶(hù)所創(chuàng)建的模式的XML文檔。在以往的文字處理軟件應(yīng)用程序中,向該應(yīng)用程序添加對(duì)自定義XML模式的支持,使得用戶(hù)能夠使用自定義XML標(biāo)記(例如,<title>(標(biāo)題))來(lái)對(duì)文檔的內(nèi)容“加標(biāo)簽”,這本質(zhì)上向之前為未分類(lèi)的文本運(yùn)行給出語(yǔ)義意義。這意味著之前僅是具有格式的文本但對(duì)其它應(yīng)用程序處理沒(méi)有任何意義的文檔現(xiàn)在可以是含有XML標(biāo)記的特定片段的結(jié)構(gòu)化XML文檔,該XML標(biāo)記來(lái)自任何其它知道XML的應(yīng)用程序可以定位和理解的任何用戶(hù)定義的XML模式。
在一個(gè)基本示例中,文檔頂端的文本可以使用來(lái)自用戶(hù)定義的XML模式的<title>XML元素被“加標(biāo)簽”為標(biāo)題,這意味著其它知道XML的應(yīng)用程序現(xiàn)在可以容易地理解,該文本范圍包含“標(biāo)題”并適當(dāng)?shù)靥崛∷?。這使得后端進(jìn)程能夠智能地使用適當(dāng)?shù)恼Z(yǔ)義和上下文來(lái)提取文檔的各部分(例如,該文本是<title>)。
然而,與現(xiàn)有的文字處理應(yīng)用程序相關(guān)聯(lián)的缺點(diǎn)源于自定義XML標(biāo)記的添加和持久性被束縛于文檔的呈現(xiàn)這一事實(shí)。即,在現(xiàn)有的實(shí)現(xiàn)中,在文字處理軟件文檔的XML標(biāo)記(例如,以XML格式表示的顧客發(fā)票的細(xì)節(jié))與其在文檔表面上的呈現(xiàn)(例如,三段純文本及其后具有特定表格樣式的5列4行的表格)之間存在不可動(dòng)搖的鏈接。從而,在現(xiàn)有的文字處理軟件應(yīng)用程序中表示的XML數(shù)據(jù)(因?yàn)樗皇`于呈現(xiàn))必須與文檔的內(nèi)容精確一致。例如,如果發(fā)票的XML模式規(guī)定<date>(日期)在<address>(地址)之前,而<address>在<phoneNumber>(電話號(hào)碼)之前,那么這三個(gè)XML元素必須以文檔中呈現(xiàn)的完全一樣的順序出現(xiàn)。這意味著對(duì)呈現(xiàn)格式的改變(例如,來(lái)回移動(dòng)含有<date>的表格行)也會(huì)引起對(duì)該文檔中包含的XML數(shù)據(jù)的結(jié)構(gòu)的改變,這需要解決方案開(kāi)發(fā)器部分上的額外步驟來(lái)確保該數(shù)據(jù)遵循相關(guān)聯(lián)的XML模式的結(jié)構(gòu)。從而,不向文檔的最終用戶(hù)提供自由操縱呈現(xiàn)的自由,因?yàn)檫@樣做可能一定會(huì)改變數(shù)據(jù)的語(yǔ)義,從而潛在地違反該數(shù)據(jù)的XML模式。
另外,在現(xiàn)有的文字處理軟件應(yīng)用程序上開(kāi)發(fā)的解決方案在試圖為后端應(yīng)用程序讀/寫(xiě)來(lái)自文檔的數(shù)據(jù)時(shí),需要更仔細(xì)地考慮呈現(xiàn)的含義。這樣,如果粗體文本的段落被標(biāo)記為標(biāo)題,那么由現(xiàn)有的文字處理軟件應(yīng)用程序保存的結(jié)果XML將會(huì)如下<w:p>
<Title>
<w:r>
<w:rPr>
<w:b/>
</w:rPr>
<w:t>This is the title.</w:t>
</w:r>
</Title>
<w:p>
如上所示,對(duì)現(xiàn)有的文字處理軟件應(yīng)用程序非常特有的XML標(biāo)簽(在該示例中,w:p、w:r等)在兩邊圍繞自定義XML標(biāo)簽。這意味著正在處理該數(shù)據(jù)的知道XML的解決方案必須不僅理解其自身的數(shù)據(jù)格式(包含<Title>元素),也必須理解現(xiàn)有文字處理軟件應(yīng)用程序格式的精確細(xì)節(jié),所以當(dāng)其搜索其自己的數(shù)據(jù)時(shí)知道遍歷和忽略該信息。從而,這種類(lèi)型的實(shí)現(xiàn)仍舊向用戶(hù)強(qiáng)加某些要求,因?yàn)閷?duì)文檔中文本外觀的小的改變(例如,將<Title>元素的內(nèi)容拖入表格單元中)會(huì)導(dǎo)致圍繞文字處理軟件原有標(biāo)簽內(nèi)的自定義XML標(biāo)簽的位置的顯著改變。從而,程序員/代碼開(kāi)發(fā)員經(jīng)常需要編寫(xiě)額外的代碼,以預(yù)期和理解現(xiàn)有的文字處理軟件應(yīng)用程序?qū)⒒诔尸F(xiàn)會(huì)在何處放置自定義XML元素,并處理所有各種排列。這意味著所得的解決方案可能仍舊需要包含用于處理特定的現(xiàn)有文字處理軟件應(yīng)用程序需要的重要的邏輯代碼。
使用現(xiàn)有的文字處理軟件應(yīng)用程序工作的程序員/代碼開(kāi)發(fā)員在考慮讀和寫(xiě)操作時(shí)也需要考慮文檔布局格式的含義。例如,用戶(hù)可能試圖抓取<StockSymbol>元素的值,并使用它來(lái)將公司的全稱(chēng)放置在同一文檔中的<CompanyName>元素中,作為對(duì)編寫(xiě)公司報(bào)告的用戶(hù)的簡(jiǎn)單的促進(jìn)。為了維護(hù)文檔的完整性,用戶(hù)需要在他們可以編寫(xiě)功能性代碼來(lái)執(zhí)行讀寫(xiě)動(dòng)作之前,對(duì)來(lái)自文檔的所需數(shù)據(jù)的讀和寫(xiě)來(lái)考慮文檔的當(dāng)前布局格式。例如,用戶(hù)可能需要知道他們寫(xiě)入的值是否位于表格單元中、項(xiàng)目符號(hào)列表中等,以構(gòu)造當(dāng)被插入文檔中時(shí)會(huì)產(chǎn)生所需結(jié)果的現(xiàn)有文字處理軟件應(yīng)用程序的格式化信息。這是額外編碼來(lái)理解文字處理軟件應(yīng)用程序的呈現(xiàn)語(yǔ)義的另一個(gè)潛在原因。
現(xiàn)有文字處理軟件應(yīng)用程序的又一限制是XML元素的編輯行為有時(shí)可能被察覺(jué)到為“脆弱的”。如上所述,這部分是因?yàn)樗鼈兪苓@一事實(shí)的限制,即基于用戶(hù)定義的模式,文檔表面標(biāo)簽的定位確定XML數(shù)據(jù)的結(jié)構(gòu)。從而,引發(fā)大量問(wèn)題。首先,一般用戶(hù)操作(例如,從一部分復(fù)制/粘貼至另一部分)可能會(huì)更改XML結(jié)構(gòu)并使得該文檔依據(jù)相關(guān)聯(lián)的XML模式是無(wú)效的。第二,在這樣的文字處理軟件實(shí)現(xiàn)中,顧客定義的XML模式所需的所有元素需要被包括在文檔表面上的某種形式中。這意味著開(kāi)發(fā)員可能難以創(chuàng)建相關(guān)聯(lián)XML數(shù)據(jù),作為用于攜帶沒(méi)有在文檔表面顯示而更多地作為元數(shù)據(jù)的關(guān)于文件的額外信息的方法。并且,第三,在這樣的文字處理軟件實(shí)現(xiàn)中,也需要包括文檔表面上語(yǔ)義上不必要的元素(例如,不標(biāo)記混合內(nèi)容的非葉子元素),這進(jìn)一步提高了普通用戶(hù)操作修改XML數(shù)據(jù)的能力。
在多種情況下,定義XML數(shù)據(jù)(例如,構(gòu)成備忘錄文檔的數(shù)據(jù))的模式往往由單個(gè)標(biāo)準(zhǔn)體來(lái)嚴(yán)格定義,以便于多個(gè)不同種類(lèi)處理系統(tǒng)之間的該數(shù)據(jù)的通信。然而,通過(guò)這樣便于后端通信,通常犧牲了文檔的人可讀性和可編輯性,這使得用戶(hù)難以理解和剖析該數(shù)據(jù)。例如,XML標(biāo)準(zhǔn)可以定義日期的標(biāo)準(zhǔn)格式,諸如dd-mm-yyyyThh:mm:ss.ssss(日-月-年T時(shí):分:秒.毫秒)。所有的數(shù)據(jù)必須以這種格式來(lái)表示,以便由知道XML的應(yīng)用程序剖析。顯然,用戶(hù)難以正確地輸入該格式,且該格式通常與用戶(hù)一般輸入日期的方式?jīng)_突(例如,在許多場(chǎng)所一般使用mm-dd-yyyy(月-日-年)來(lái)代替dd-mm-yyyy等)。
從而,需要一種使得開(kāi)發(fā)員能夠分離XML數(shù)據(jù)和這類(lèi)數(shù)據(jù)在諸如文字處理軟件應(yīng)用程序等應(yīng)用程序中的呈現(xiàn)的方法。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種用于創(chuàng)建文字處理軟件文檔的文字處理軟件應(yīng)用程序,其中數(shù)據(jù)和呈現(xiàn)可被分開(kāi)。更具體地,數(shù)據(jù)可被輸入至存儲(chǔ)在與其呈現(xiàn)格式分開(kāi)的位置中的文字處理軟件文檔中,并可從中提取。根據(jù)本發(fā)明的實(shí)施例,文字處理軟件應(yīng)用程序的用戶(hù)可為文字處理軟件文檔數(shù)據(jù)創(chuàng)建分離的存儲(chǔ)位置,并建立該數(shù)據(jù)的內(nèi)容與呈現(xiàn)表面之間的鏈接(或綁定)。文字處理軟件應(yīng)用程序的用戶(hù)可以通過(guò)直接改變所鏈接的XML數(shù)據(jù)來(lái)修改文字處理軟件文檔的內(nèi)容,而不必處理可能不斷改變的呈現(xiàn)格式的復(fù)雜性。將視圖/呈現(xiàn)與數(shù)據(jù)分離允許用戶(hù)繼續(xù)自由地編輯文檔,同時(shí)允許數(shù)據(jù)以單個(gè)已知的結(jié)構(gòu)格式在持久文件格式中表示。當(dāng)使用外部進(jìn)程來(lái)修改文字處理軟件文檔的內(nèi)容時(shí),用戶(hù)可以編輯存儲(chǔ)在該文字處理軟件文件內(nèi)的分離的XML數(shù)據(jù)片段,而無(wú)需對(duì)呈現(xiàn)表面或格式的當(dāng)前布局的了解。這些鏈接(或綁定)也被創(chuàng)建來(lái)使得對(duì)呈現(xiàn)表面的結(jié)構(gòu)的改變不會(huì)確定XML數(shù)據(jù)的結(jié)構(gòu),反之,對(duì)XML數(shù)據(jù)結(jié)構(gòu)的改變不會(huì)確定文字處理軟件文檔的呈現(xiàn)表面的布局——可以創(chuàng)建或斷開(kāi)這些鏈接而沒(méi)有對(duì)文檔內(nèi)容的不利影響。本發(fā)明的實(shí)施例傾向于簡(jiǎn)化文字處理軟件文檔中對(duì)結(jié)構(gòu)化數(shù)據(jù)的添加、編輯或提取。
根據(jù)本發(fā)明的實(shí)施例,可以使用文本的特定區(qū)域的語(yǔ)義來(lái)標(biāo)記文字處理軟件文檔,而相關(guān)聯(lián)的數(shù)據(jù)現(xiàn)在存儲(chǔ)在該文檔內(nèi)的分開(kāi)的XML數(shù)據(jù)文件中。使用數(shù)據(jù)綁定將數(shù)據(jù)鏈接至文檔中的文本范圍,即標(biāo)記的區(qū)域。從而,數(shù)據(jù)現(xiàn)在可以被存儲(chǔ)在其自己的XML數(shù)據(jù)文件中的一致位置(“數(shù)據(jù)存儲(chǔ)”)中,而不論數(shù)據(jù)綁定將該內(nèi)容放至文檔呈現(xiàn)表面中的何處或者如何呈現(xiàn)該數(shù)據(jù)。這樣,用戶(hù)不必?fù)?dān)心在文檔中對(duì)數(shù)據(jù)進(jìn)行移動(dòng)/改變/刪除等,因?yàn)樵摂?shù)據(jù)的XML結(jié)構(gòu)位于一致位置中的自定義XML內(nèi),且不受對(duì)呈現(xiàn)表面改變的影響。而且,本發(fā)明的實(shí)施例為文字處理軟件應(yīng)用程序提供編程接口。用戶(hù)可以使用該編程接口來(lái)開(kāi)發(fā)用于對(duì)數(shù)據(jù)存儲(chǔ)中或文檔中一個(gè)或多個(gè)區(qū)域中的改變作出反應(yīng)的代碼。
圖1示出了可用于本發(fā)明的一個(gè)示例性實(shí)施例中的示例性計(jì)算設(shè)備。
圖2是示出用于實(shí)現(xiàn)本發(fā)明的示例性環(huán)境的框圖;以及圖3是根據(jù)本發(fā)明的實(shí)施例的流程圖。
具體實(shí)施例方式
貫穿說(shuō)明書(shū)和權(quán)利要求書(shū),以下術(shù)語(yǔ)采用此處明確相關(guān)聯(lián)的含義,除非上下文清楚地另外指明。
術(shù)語(yǔ)“數(shù)據(jù)”指的是文字處理文檔帶有的、引用的或使用的任何補(bǔ)充信息。該信息通常是巨大的,且不太可能全部在文檔的呈現(xiàn)層上展示。
術(shù)語(yǔ)“標(biāo)記語(yǔ)言”或“ML”指的是文檔內(nèi)指定應(yīng)用程序?qū)⑷绾谓忉屛臋n的各部分的專(zhuān)用代碼的語(yǔ)言。在文字處理軟件文件中,標(biāo)記語(yǔ)言指定如何格式化或布置文本。
術(shù)語(yǔ)“元素”指的是XML文檔的基本單元。元素可以包括屬性、其它元素、文本和XML文檔的其它內(nèi)容區(qū)域。
術(shù)語(yǔ)“呈現(xiàn)”指的是文檔的可視部分——如果打印文檔則會(huì)出現(xiàn)的文本和布局。
術(shù)語(yǔ)“標(biāo)簽”指的是描繪XML文檔內(nèi)的元素的插入到文檔中的字符。每一元素可以含有僅僅兩個(gè)標(biāo)簽開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽??赡苡锌赵?沒(méi)有內(nèi)容),在這種情況下,允許一個(gè)標(biāo)簽。
標(biāo)簽之間的XML內(nèi)容被認(rèn)為是元素的“子元素”(或后代)。因此,嵌入在元素內(nèi)容中的其它元素被稱(chēng)為“子元素”或“子節(jié)點(diǎn)”或元素。直接嵌入在元素內(nèi)容中的文本被認(rèn)為是該元素的“子文本節(jié)點(diǎn)”。子元素和元素內(nèi)的文本一起構(gòu)成了元素的“內(nèi)容”。
術(shù)語(yǔ)“屬性”指的是被置為特定值并與元素相關(guān)聯(lián)的附加性質(zhì)。元素可以含有與之相關(guān)聯(lián)的任意數(shù)量的屬性設(shè)置,包括沒(méi)有屬性設(shè)置。屬性被用來(lái)將附加信息與不含有附加元素的元素相關(guān)聯(lián),或被作為文本節(jié)點(diǎn)來(lái)對(duì)待。
術(shù)語(yǔ)“內(nèi)容區(qū)域”指的是作為用戶(hù)輸入的一種類(lèi)型的內(nèi)容的容器的文檔的有界和/或可任選標(biāo)注的區(qū)域。見(jiàn)于2004年9月30日提交的,轉(zhuǎn)讓給本發(fā)明的受讓人的名為“Methods,System,and Computer-Readable Medium For ManagingSpecific Types of Content In An Electronic Document(用于管理電子文檔中特定類(lèi)型內(nèi)容的方法、系統(tǒng)和計(jì)算機(jī)可讀介質(zhì))”的美國(guó)申請(qǐng)第10/955,612號(hào),該申請(qǐng)通過(guò)整體引用包含在此。
“XPath”是使用模式表達(dá)式來(lái)標(biāo)識(shí)XML文檔中的節(jié)點(diǎn)的操作符。XPath模式以斜杠分割的子元素名稱(chēng)列表,它描述通過(guò)XML文檔的路徑。模式“選取”匹配路徑的元素。
術(shù)語(yǔ)“XML數(shù)據(jù)存儲(chǔ)”指的是文字處理文檔內(nèi)的容器,當(dāng)文件打開(kāi)時(shí)它提供對(duì)存儲(chǔ)在文字處理軟件文檔中的數(shù)據(jù)(例如,以XML格式)的存儲(chǔ)和修改的訪問(wèn)。
術(shù)語(yǔ)“數(shù)據(jù)綁定”指的是內(nèi)容區(qū)域上的屬性,它確定文字處理軟件文檔內(nèi)其中可以存儲(chǔ)內(nèi)容區(qū)域的內(nèi)容的一個(gè)或多個(gè)XML數(shù)據(jù)片斷中的XPath位置。如此處所用的“ref”-指的是由個(gè)別綁定使用的每一綁定的XML文檔的唯一整數(shù);“ID”-指的是XML數(shù)據(jù)存儲(chǔ)中特定XML文檔的唯一ID“selectionNamespaces”-指的是XML數(shù)據(jù)存儲(chǔ)中相關(guān)聯(lián)XML文檔的前綴映射(將名字空間與簡(jiǎn)短縮寫(xiě)相關(guān)聯(lián));以及“rootURI”-指的是XML數(shù)據(jù)存儲(chǔ)中相關(guān)聯(lián)XML文檔的根名字空間說(shuō)明性操作環(huán)境本發(fā)明的實(shí)施例提供了用于創(chuàng)建其中可以分離XML數(shù)據(jù)的存儲(chǔ)和呈現(xiàn)的文字處理軟件文檔的文字處理軟件應(yīng)用程序。更具體地,可以被輸入到文字處理軟件應(yīng)用程序中并從中提取的數(shù)據(jù)被存儲(chǔ)在與文字處理軟件文檔的呈現(xiàn)格式分離的位置中。從而,文字處理軟件應(yīng)用程序的用戶(hù)可以為包含在文字處理軟件文檔中的XML數(shù)據(jù)創(chuàng)建分離的存儲(chǔ)位置,并建立該數(shù)據(jù)內(nèi)容和呈現(xiàn)表面之間的鏈接(或綁定),使得用戶(hù)能夠通過(guò)編輯該呈現(xiàn)的內(nèi)容來(lái)編輯相關(guān)聯(lián)的XML數(shù)據(jù),而且防止用戶(hù)改變相關(guān)聯(lián)的XML數(shù)據(jù)的結(jié)構(gòu)。例如,發(fā)票的數(shù)據(jù)可以按文字處理軟件文件格式來(lái)分離地存儲(chǔ)為XML,使得在文檔中來(lái)回移動(dòng)鏈接的位置不會(huì)改變分離的數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)。這樣,使得對(duì)該結(jié)構(gòu)化數(shù)據(jù)的后端處理更容易,因?yàn)閿?shù)據(jù)現(xiàn)在具有不受用戶(hù)編輯文檔的方式影響的已知結(jié)構(gòu)。用戶(hù)可以在文字處理軟件文檔中編輯數(shù)據(jù)、格式化數(shù)據(jù),包括豐富呈現(xiàn)格式化等,且僅有對(duì)文本內(nèi)容的改變被‘推’回到存儲(chǔ)在該文檔后方的XML數(shù)據(jù)。然而,根據(jù)本發(fā)明,通過(guò)與文字處理軟件文檔的用戶(hù)交互來(lái)更新的所有數(shù)據(jù)可用于XML的原始本地流。從而本發(fā)明也使得能夠通過(guò)直接改變鏈接的XML數(shù)據(jù)來(lái)修改文字處理軟件文檔的內(nèi)容,而無(wú)需處理可能不斷改變的該數(shù)據(jù)的呈現(xiàn)格式的復(fù)雜性。這樣做,極大地簡(jiǎn)化了對(duì)文字處理軟件文檔中的結(jié)構(gòu)化數(shù)據(jù)的添加、編輯和提取。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例性系統(tǒng)包括計(jì)算設(shè)備,諸如計(jì)算設(shè)備100。在最基本的配置中,計(jì)算設(shè)備100一般包括至少一個(gè)處理單元102和系統(tǒng)存儲(chǔ)器104。取決于計(jì)算設(shè)備的確切配置和類(lèi)型,系統(tǒng)存儲(chǔ)器104可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)或是兩者的某種組合。系統(tǒng)存儲(chǔ)器104一般包括操作系統(tǒng)105、一個(gè)或多個(gè)應(yīng)用程序106,且可以包括程序數(shù)據(jù)107。在一個(gè)實(shí)施例中,應(yīng)用程序106可以包括文字處理軟件應(yīng)用程序120。該基本配置在圖1中由虛線108內(nèi)的組件示出。
計(jì)算設(shè)備100可具有其它特征或功能。例如,計(jì)算設(shè)備100還可包括諸如,例如磁盤(pán)、光盤(pán)、或磁帶等附加數(shù)據(jù)存儲(chǔ)設(shè)備(可移動(dòng)和/或不可移動(dòng))。這樣的附加存儲(chǔ)在圖1中由可移動(dòng)存儲(chǔ)109和不可移動(dòng)存儲(chǔ)110示出。計(jì)算機(jī)存儲(chǔ)介質(zhì)可包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)的介質(zhì)。系統(tǒng)存儲(chǔ)器104、可移動(dòng)存儲(chǔ)109和不可移動(dòng)存儲(chǔ)110都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù),CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它光存儲(chǔ),磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁性存儲(chǔ)設(shè)備,或可用來(lái)存儲(chǔ)所需信息并可由計(jì)算設(shè)備100訪問(wèn)的任何其它介質(zhì)。任何這樣的計(jì)算機(jī)存儲(chǔ)介質(zhì)都可以是設(shè)備100的一部分。計(jì)算設(shè)備100也可以具有諸如鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備等輸入設(shè)備。也可以包括諸如顯示器、揚(yáng)聲器、打印機(jī)等的輸出設(shè)備。在本領(lǐng)域中,這些設(shè)備是公知的,無(wú)需在此處詳細(xì)討論。
計(jì)算設(shè)備100也可以包含允許設(shè)備諸如通過(guò)網(wǎng)絡(luò)等與其它計(jì)算設(shè)備118通信的通信連接116。通信連接116是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通??删唧w化為諸如載波或其它傳輸機(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)”是指以在信號(hào)中將信息編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接的有線介質(zhì),以及諸如聲學(xué)、RF、紅外及其它無(wú)線介質(zhì)的無(wú)線介質(zhì)。如此處所用的術(shù)語(yǔ)計(jì)算機(jī)可讀介質(zhì)既包括存儲(chǔ)介質(zhì)又包括通信介質(zhì)。
可以在計(jì)算設(shè)備100的系統(tǒng)存儲(chǔ)器104中存儲(chǔ)多個(gè)程序模塊和數(shù)據(jù)文件,包括適用于控制聯(lián)網(wǎng)的個(gè)人計(jì)算機(jī)的操作的操作系統(tǒng)105,諸如來(lái)自華盛頓州雷蒙德市微軟公司的WINDOWS XP操作系統(tǒng)。系統(tǒng)存儲(chǔ)器104也可以存儲(chǔ)一個(gè)或多個(gè)程序模塊,諸如文字處理軟件應(yīng)用程序120以及以下所述的其它程序模塊。文字處理軟件應(yīng)用程序120可用于提供用于創(chuàng)建、編輯和處理電子文檔的功能。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,文字處理軟件應(yīng)用程序120包括來(lái)自微軟公司的WORD程序。然而,應(yīng)該理解,可以使用來(lái)自其它制造商的文字處理軟件應(yīng)用程序來(lái)實(shí)施本發(fā)明的各個(gè)方面。還應(yīng)理解,本發(fā)明的各個(gè)方面不限于文字處理軟件應(yīng)用程序,而也可以利用能夠處理各種形式的內(nèi)容(例如,文本、圖像、圖片等)的其它應(yīng)用程序106,諸如電子表格應(yīng)用程序、數(shù)據(jù)庫(kù)應(yīng)用程序、演示應(yīng)用程序、繪圖或計(jì)算機(jī)輔助應(yīng)用程序等。
本發(fā)明的實(shí)施例可以被實(shí)現(xiàn)為計(jì)算機(jī)進(jìn)程、計(jì)算系統(tǒng)或者諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)等制品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀的且編碼用于執(zhí)行計(jì)算機(jī)進(jìn)程的指令的計(jì)算機(jī)程序的計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)程序產(chǎn)品還可以是載波上所傳播的計(jì)算系統(tǒng)可讀的且編碼用于執(zhí)行計(jì)算機(jī)進(jìn)程的指令的計(jì)算機(jī)程序的信號(hào)。
在文字處理軟件應(yīng)用程序中綁定數(shù)據(jù)圖2是示出用于實(shí)施本發(fā)明的實(shí)施例的示例性環(huán)境的框圖。圖2中所示的示例性環(huán)境是文字處理軟件環(huán)境200,包括文字處理軟件應(yīng)用程序202、文字處理軟件文檔204、編程環(huán)境206、數(shù)據(jù)存儲(chǔ)208、模式文件210以及XML處理模塊212。然而,如上所述,本發(fā)明也可適用于能夠處理各種形式的內(nèi)容(例如,文本、圖像、圖片、等等)的其它應(yīng)用程序106,諸如電子表格應(yīng)用程序、數(shù)據(jù)庫(kù)應(yīng)用程序、演示應(yīng)用程序、繪圖或計(jì)算機(jī)輔助的應(yīng)用程序等等。編程模塊206可為XML處理模塊212提供簡(jiǎn)單的應(yīng)用程序編程接口(API),它允許開(kāi)發(fā)修改文檔204或者XML數(shù)據(jù)存儲(chǔ)208的內(nèi)容的代碼。可以理解,本發(fā)明不旨在由此處所述的任何特定實(shí)施例或示例來(lái)限制。例如,文字處理軟件環(huán)境可包括多個(gè)文字處理軟件文檔204、數(shù)據(jù)存儲(chǔ)208和/或模式文件210。根據(jù)本發(fā)明的實(shí)施例,文字處理軟件應(yīng)用程序202使用XML處理模塊212來(lái)處理根據(jù)可擴(kuò)展標(biāo)記語(yǔ)言格式化的數(shù)據(jù)。一個(gè)合適的XML處理模塊212是華盛頓州雷蒙德市微軟公司所制造并銷(xiāo)售的MSXML。
文字處理軟件應(yīng)用程序202包括其自己的一個(gè)或多個(gè)名字空間和一個(gè)或一組模式210,它們被定義以用于與文字處理軟件應(yīng)用程序202相關(guān)聯(lián)的文檔204。由模式210為文字處理軟件應(yīng)用程序202定義的該組標(biāo)簽和屬性定義了文檔204的格式。如下所述,并根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)存儲(chǔ)208可以包括數(shù)據(jù)209。較佳地,模式210被附加至數(shù)據(jù)存儲(chǔ)208內(nèi)的數(shù)據(jù)209。文字處理軟件文檔204也包括如下所述的由用戶(hù)創(chuàng)建的內(nèi)容區(qū)域207。可以作為文字處理軟件應(yīng)用程序202的一部分包括一個(gè)以上數(shù)據(jù)存儲(chǔ)208、相關(guān)聯(lián)的XML數(shù)據(jù)209和模式210。為了提供帶有管理可能被包括在給定XML數(shù)據(jù)209中的數(shù)據(jù)的類(lèi)型和結(jié)構(gòu)的一組語(yǔ)法和數(shù)據(jù)類(lèi)型規(guī)則,可以將一個(gè)或多個(gè)XML模式210與XML數(shù)據(jù)209相關(guān)聯(lián),用于提供管理用戶(hù)可用來(lái)注釋給定XML數(shù)據(jù)209的每一個(gè)XML元素和標(biāo)簽的規(guī)則。模式210包括管理將那些元素應(yīng)用于XML數(shù)據(jù)209的順序的規(guī)則以及與應(yīng)用于XML數(shù)據(jù)209的各個(gè)元素相關(guān)聯(lián)的特定規(guī)則。
本發(fā)明的實(shí)施例提供可用于創(chuàng)建文字處理軟件文檔204的文字處理軟件應(yīng)用程序202,文檔中的數(shù)據(jù)和呈現(xiàn)可通過(guò)與文字處理軟件文檔一起存儲(chǔ)的分離的數(shù)據(jù)存儲(chǔ)208的存在而被分離。更具體地,可輸入到文字處理軟件文檔204中或從中提取的數(shù)據(jù)被存儲(chǔ)在文檔的數(shù)據(jù)存儲(chǔ)208內(nèi)的一個(gè)或多個(gè)XML數(shù)據(jù)209文件中,由此將數(shù)據(jù)與文字處理軟件文檔204的呈現(xiàn)格式分離。從而,文字處理軟件應(yīng)用程序202的用戶(hù)可以為文字處理軟件文檔204的數(shù)據(jù)創(chuàng)建分離的存儲(chǔ)位置,并在該數(shù)據(jù)的內(nèi)容與呈現(xiàn)表面203之間建立與一個(gè)或多個(gè)內(nèi)容區(qū)域207相關(guān)聯(lián)的鏈接(或綁定)205,使得用戶(hù)能夠通過(guò)編輯呈現(xiàn)的內(nèi)容來(lái)編輯數(shù)據(jù),但是通過(guò)同一標(biāo)記防止用戶(hù)改變數(shù)據(jù)209的結(jié)構(gòu)。在文檔204中來(lái)回移動(dòng)內(nèi)容區(qū)域207的位置不會(huì)改變分離的數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209的結(jié)構(gòu)。而且,對(duì)數(shù)據(jù)的呈現(xiàn)(如粗體、斜體、對(duì)齊等)所作的改變不影響數(shù)據(jù)結(jié)構(gòu)。由此,由于XML數(shù)據(jù)209對(duì)應(yīng)于不受用戶(hù)編輯文檔204的方式影響的已知結(jié)構(gòu),從而簡(jiǎn)化了結(jié)構(gòu)化數(shù)據(jù)的后端處理。
本發(fā)明的實(shí)施例使得能夠通過(guò)直接改變所鏈接的數(shù)據(jù)來(lái)修改文字處理軟件文檔204的內(nèi)容,而無(wú)需處理可能不斷改變的呈現(xiàn)格式的復(fù)雜性。這樣做極大地簡(jiǎn)化了對(duì)文字處理軟件文檔204中的結(jié)構(gòu)化數(shù)據(jù)的添加、編輯和提取。此外,綁定到結(jié)構(gòu)化XML數(shù)據(jù)209的數(shù)據(jù)綁定205可在文檔204中來(lái)回移動(dòng),而不會(huì)影響數(shù)據(jù)的結(jié)構(gòu)。較佳地,使用XPath表達(dá)式來(lái)實(shí)現(xiàn)內(nèi)容區(qū)域207上的數(shù)據(jù)綁定205,該表達(dá)式可經(jīng)由用戶(hù)界面或編程窗口206來(lái)定義。
用戶(hù)使用XPath表達(dá)式(用于標(biāo)識(shí)XML樹(shù)中的節(jié)點(diǎn)213的標(biāo)準(zhǔn)XML方法)來(lái)唯一地標(biāo)識(shí)文檔內(nèi)容區(qū)域應(yīng)被綁定到的期望XML節(jié)點(diǎn)213。文字處理軟件應(yīng)用程序202用于自動(dòng)剖析和使用XPath以定位數(shù)據(jù)綁定區(qū)域的期望目標(biāo)。這也意味著熟悉XPath標(biāo)準(zhǔn)的開(kāi)發(fā)者可充分利用XML的這一用途來(lái)創(chuàng)建本質(zhì)上半動(dòng)態(tài)的數(shù)據(jù)綁定205。即,基于對(duì)數(shù)據(jù)209的其它改變或?qū)Τ尸F(xiàn)203的改變來(lái)標(biāo)識(shí)不同的目標(biāo)節(jié)點(diǎn)213。例如,假設(shè)用戶(hù)想要顯示在給定時(shí)間段里完成最高銷(xiāo)售額的雇員的名字。如果此信息位于與文檔204相關(guān)聯(lián)的XML數(shù)據(jù)209中,則用戶(hù)可創(chuàng)建鏈接至具有最高的已完成事項(xiàng)的個(gè)人的名字的XPath表達(dá)式,并且隨數(shù)據(jù)改變?cè)撴溄幼詣?dòng)轉(zhuǎn)移到適當(dāng)?shù)奈恢?節(jié)點(diǎn)213)。鏈接也可以通過(guò)使用代碼211、用戶(hù)界面、或編程環(huán)境206在節(jié)點(diǎn)213之間改變。
或者,用戶(hù)可創(chuàng)建唯一標(biāo)識(shí)文檔內(nèi)容區(qū)域207應(yīng)被綁定至的數(shù)據(jù)209中對(duì)象表示節(jié)點(diǎn)213的數(shù)據(jù)綁定。文字處理軟件應(yīng)用程序202用于自動(dòng)確定XPath,以為數(shù)據(jù)綁定區(qū)域定位期望目標(biāo)。然而,這意味著在該情況下,數(shù)據(jù)綁定205將自動(dòng)更新其XPath以確保與同一XPath表達(dá)式相比,數(shù)據(jù)綁定205指向同一對(duì)象。
如上文所簡(jiǎn)要所述的編程代碼211可以被開(kāi)發(fā)成使用XML處理模塊212,并對(duì)在任一方向上移動(dòng)(即,從文檔表面203上的內(nèi)容區(qū)域207到數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209中的節(jié)點(diǎn)213,或相反)的改變作出反應(yīng)。用戶(hù)可開(kāi)發(fā)定義文檔表面203和數(shù)據(jù)存儲(chǔ)208內(nèi)的特定內(nèi)容之間的關(guān)系的代碼211。此外,代碼211可以被開(kāi)發(fā)成對(duì)文檔204的綁定區(qū)域內(nèi)或數(shù)據(jù)存儲(chǔ)208內(nèi)的改變作出反應(yīng),以俘獲或截取諸如編輯、添加、刪除等的事件。例如,假設(shè)用戶(hù)想要確保至多一個(gè)文檔可以使用一個(gè)特定標(biāo)題?;谳斎氲綐?biāo)題節(jié)點(diǎn)中的內(nèi)容,代碼211可以對(duì)照中央數(shù)據(jù)庫(kù)檢查該標(biāo)題是否已被使用。如果該標(biāo)題已被采用,則代碼211可提示用戶(hù)輸入另一個(gè)標(biāo)題和/或警告用戶(hù)該標(biāo)題不可用。本發(fā)明的實(shí)施例使得用戶(hù)能夠使用相關(guān)聯(lián)的XML一次性編寫(xiě)代碼211,且該代碼如今可被移植到支持XML構(gòu)造的使用的所有文檔類(lèi)型,而無(wú)需擔(dān)心目標(biāo)應(yīng)用程序的確切語(yǔ)義,從而極大地簡(jiǎn)化并流線化應(yīng)用程序開(kāi)發(fā)。
根據(jù)本發(fā)明的實(shí)施例,可用表示文本的特定區(qū)域(例如,標(biāo)題、正文等)的語(yǔ)義的內(nèi)容區(qū)域207來(lái)對(duì)文字處理軟件文檔204添加標(biāo)簽,并且通過(guò)添加數(shù)據(jù)綁定205,該內(nèi)容區(qū)域207內(nèi)的相關(guān)聯(lián)文本現(xiàn)在被存儲(chǔ)在文檔204內(nèi)的數(shù)據(jù)存儲(chǔ)208中的某個(gè)XML數(shù)據(jù)209內(nèi)的節(jié)點(diǎn)213中。使用一個(gè)或多個(gè)數(shù)據(jù)綁定205,數(shù)據(jù)209被鏈接到文檔中的內(nèi)容區(qū)域207,即,被標(biāo)簽的區(qū)域。從而,如今數(shù)據(jù)209可被存儲(chǔ)在其自己的XML流中的一致位置(“數(shù)據(jù)存儲(chǔ)”),而無(wú)論數(shù)據(jù)綁定205在文檔204的呈現(xiàn)203(即,編輯特定文檔時(shí)用戶(hù)與之交互的數(shù)字表示,例如描繪特定用戶(hù)文檔的WORD窗口)中的何處定位相關(guān)聯(lián)的內(nèi)容,或者如何呈現(xiàn)數(shù)據(jù)209。這樣,用戶(hù)不必?fù)?dān)心在文檔204中來(lái)回移動(dòng)數(shù)據(jù),因?yàn)閄ML數(shù)據(jù)209如今被定位在一個(gè)一致的位置中的數(shù)據(jù)存儲(chǔ)208內(nèi)。而且,數(shù)據(jù)存儲(chǔ)208可包含未被文檔204內(nèi)的數(shù)據(jù)綁定205所引用的數(shù)據(jù)209。諸如元數(shù)據(jù)等的這些“額外”數(shù)據(jù)向諸如解決方案開(kāi)發(fā)者等用戶(hù)提供可能與文檔用戶(hù)無(wú)關(guān)的附加信息。
根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)的結(jié)構(gòu)被保存在分離的位置中,即文檔的數(shù)據(jù)存儲(chǔ)208內(nèi)的一個(gè)或多個(gè)XML數(shù)據(jù)片斷209中,從而使得用戶(hù)能夠在呈現(xiàn)203中來(lái)回移動(dòng)鏈接(即,數(shù)據(jù)綁定205),而不影響數(shù)據(jù)結(jié)構(gòu)。從而,XML數(shù)據(jù)209的結(jié)構(gòu)不會(huì)改變,僅有與文字處理軟件文檔204相關(guān)聯(lián)的XML數(shù)據(jù)209的呈現(xiàn)改變。這樣,對(duì)文檔204中的數(shù)據(jù)呈現(xiàn)的格式的改變不影響數(shù)據(jù)存儲(chǔ)208的結(jié)構(gòu)。通過(guò)操縱文檔表面203用戶(hù)并不移動(dòng)實(shí)際數(shù)據(jù)209-這樣用戶(hù)對(duì)呈現(xiàn)擁有完全的控制,而無(wú)需考慮在存儲(chǔ)208中分開(kāi)維護(hù)的數(shù)據(jù)209的衍生物。因此,本發(fā)明的實(shí)施例允許用戶(hù)訪問(wèn)與呈現(xiàn)信息分離的自定義XML信息。
可以使用一個(gè)或多個(gè)數(shù)據(jù)綁定205將數(shù)據(jù)源的內(nèi)容(數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209,此處稱(chēng)為XML數(shù)據(jù)209)“綁定”到文檔204中的位置。如此處所使用的,XML數(shù)據(jù)209包括諸如文本(純文本或豐富格式的文本)、圖像、特定類(lèi)型(日期)的內(nèi)容等任何類(lèi)型的內(nèi)容。數(shù)據(jù)綁定205的結(jié)構(gòu)可以被描述為XPath鏈接,它允許文字處理軟件應(yīng)用程序202連接至/與之同步化/持久鏈接至與文檔204相關(guān)聯(lián)的XML數(shù)據(jù)存儲(chǔ)208中的XML節(jié)點(diǎn)213。XML數(shù)據(jù)存儲(chǔ)208較佳地是文檔204的一部分(即,存儲(chǔ)208是與文字處理軟件文件一起保存的,并隨特定文檔204行進(jìn)或與之相關(guān)聯(lián))。數(shù)據(jù)綁定205也可以包含用于控制應(yīng)如何在呈現(xiàn)(例如,文字處理軟件的文檔表面203)和數(shù)據(jù)存儲(chǔ)208之間變換數(shù)據(jù)的信息。文字處理軟件應(yīng)用程序202的用戶(hù)可允許存儲(chǔ)在數(shù)據(jù)存儲(chǔ)208中的數(shù)據(jù)209(由后端應(yīng)用程序操縱的數(shù)據(jù))以標(biāo)準(zhǔn)格式存儲(chǔ),但在文字處理軟件文檔204中以較友好的格式呈現(xiàn)同一信息(例如,用戶(hù)看到的是1月29日,2004年,但該數(shù)據(jù)是按照29-01-004T12:00:00.0000來(lái)以dateTime格式存儲(chǔ)的)。作為另一個(gè)示例,數(shù)據(jù)綁定信息可包含圖像——對(duì)數(shù)據(jù)209而言,該圖像被表示為看起來(lái)無(wú)意義的字符串,但上述同一變換原理意味著用戶(hù)將在文字處理軟件文檔204的內(nèi)容區(qū)域207中看到一個(gè)圖像。用戶(hù)可添加/改變圖像,且XML編碼的表示將被持久化為XML數(shù)據(jù)209,以使任何后端進(jìn)程可以存儲(chǔ)/操縱該信息。
根據(jù)一個(gè)實(shí)施例,當(dāng)用戶(hù)向內(nèi)容區(qū)域207添加數(shù)據(jù)綁定信息205時(shí),用戶(hù)通過(guò)指定XPath表達(dá)式來(lái)提供所關(guān)心的鏈接的XML數(shù)據(jù)209(例如,標(biāo)識(shí)了一個(gè)或多個(gè)節(jié)點(diǎn)213)。一旦被綁定,該內(nèi)容區(qū)域207的內(nèi)容將被鏈接或綁定至由該XPath返回的節(jié)點(diǎn)213的內(nèi)容(XML數(shù)據(jù))。因此,這意味著如果XML節(jié)點(diǎn)213是以由XPath返回的XML節(jié)點(diǎn)213改變的方式被添加/移除/改變的,則文檔204中的內(nèi)容區(qū)域207的內(nèi)容自動(dòng)更新?;蛘?,如果發(fā)生導(dǎo)致特定數(shù)據(jù)綁定205不返回任何XML節(jié)點(diǎn)213的改變,則該數(shù)據(jù)綁定215進(jìn)入如下所述的‘懸掛引用’狀態(tài)。
例如,假定文檔204包括以下段落,其中“Microsoft Corporation”對(duì)應(yīng)于純文本內(nèi)容區(qū)域207(以斜體示出),該內(nèi)容區(qū)域207被綁定到該文本的數(shù)據(jù)存儲(chǔ)208內(nèi)的某個(gè)鏈接的XML數(shù)據(jù)209的XPath/contract(1)/header(1)company(1)。顯示在呈現(xiàn)203上的段落是“Microsoff Corporation is located at One Microsoft Way.”根據(jù)一個(gè)實(shí)施例,可通過(guò)在編程環(huán)境206(例如)中指定單行代碼來(lái)建立鏈接Document.ContentRegion.Add().DataBinding.Add(“/contract(1)/header(1)/company(1)”)相應(yīng)的鏈接的XML數(shù)據(jù)209可能看起來(lái)是(以單引號(hào)示出至節(jié)點(diǎn)213的鏈接)<contract>
<header>
‘<company>Microsoft Corporation</company>’<company>Contoso Corporation</company>
</header>
</contract>
假設(shè)現(xiàn)在用戶(hù)使用數(shù)據(jù)存儲(chǔ)208 API來(lái)添加新的<company>節(jié)點(diǎn)213,作為<header>的第一個(gè)子節(jié)點(diǎn)(新節(jié)點(diǎn)213以單引號(hào)示出)<contract>
<header>
‘<company>Fabrikam Corporation</company>’<company>Microsoft Corporation</company>
<company>Contoso Corporation</company>
</header>
</contract>
內(nèi)容區(qū)域207上所得的綁定205仍舊被綁定到同一XPath(“/contract(1)/header(1)/company(1)”),因此文檔內(nèi)容可以立即更新來(lái)顯示該節(jié)點(diǎn)213的新內(nèi)容“Fabrikam Corporation is located at One Microsoft Way.”
根據(jù)本發(fā)明,如果文字處理軟件文檔204的一個(gè)或多個(gè)區(qū)域包含數(shù)據(jù)綁定的內(nèi)容區(qū)域207,則文檔204對(duì)任一所鏈接的內(nèi)容源的改變作出反應(yīng)。從而,如果文檔204的范圍是數(shù)據(jù)綁定的,那么對(duì)相關(guān)聯(lián)的XML數(shù)據(jù)209中的XML節(jié)點(diǎn)213的內(nèi)容的改變將導(dǎo)致內(nèi)容區(qū)域207的文本的自動(dòng)改變。相應(yīng)地,如果文檔204的范圍是數(shù)據(jù)綁定的,那么改變文檔204中該綁定的內(nèi)容區(qū)域207的文本會(huì)導(dǎo)致對(duì)相應(yīng)的XML數(shù)據(jù)209中的XML節(jié)點(diǎn)213的內(nèi)容的自動(dòng)改變。即,具有相同綁定205的多個(gè)內(nèi)容區(qū)域207可以存在于文檔204中的多處。例如,具有至名字的數(shù)據(jù)綁定205的內(nèi)容區(qū)域207可被添加到文檔的頭部以及正文。改變這些位置中的任何一個(gè)會(huì)將使該文本與XML數(shù)據(jù)存儲(chǔ)208同步,XML數(shù)據(jù)存儲(chǔ)208又將在文檔204中存在至該節(jié)點(diǎn)213的數(shù)據(jù)綁定205的內(nèi)容區(qū)域207的任何地方反應(yīng)該改變。
XML數(shù)據(jù)209中的XML節(jié)點(diǎn)213可與文檔204具有一對(duì)多的關(guān)系,這意味著XML數(shù)據(jù)209中的同一XML節(jié)點(diǎn)213可被多個(gè)數(shù)據(jù)綁定205引用。只要更新文檔204中數(shù)據(jù)綁定的內(nèi)容區(qū)域207,即引起對(duì)XML數(shù)據(jù)209中適當(dāng)?shù)腦ML節(jié)點(diǎn)213的改變,這又使文檔204中的其它內(nèi)容區(qū)域207中的所有其它相關(guān)聯(lián)的綁定205使用該新文本來(lái)更新。例如,假設(shè)文檔204的頭部中的內(nèi)容區(qū)域207包含為某個(gè)XML數(shù)據(jù)209中的<title/>節(jié)點(diǎn)指定XPath表達(dá)式的數(shù)據(jù)綁定205,而文檔204的正文中的另一個(gè)內(nèi)容區(qū)域207也包含至該同一元素的數(shù)據(jù)綁定205。根據(jù)本發(fā)明,這兩者會(huì)顯示相同的內(nèi)容,即使它們具有不同的格式。如果用戶(hù)編輯文檔204的正文中的內(nèi)容區(qū)域207中的內(nèi)容,該更新會(huì)被持久化到數(shù)據(jù)存儲(chǔ)208中的適當(dāng)?shù)腦ML數(shù)據(jù)209中的適當(dāng)?shù)腦ML節(jié)點(diǎn)213,引起同樣指定該XML節(jié)點(diǎn)213的、文檔204中與綁定205相關(guān)聯(lián)的所有其它內(nèi)容區(qū)域207(例如,頁(yè)眉中,頁(yè)腳中,等等)的更新。本發(fā)明的實(shí)施例提供用于將文檔中的多個(gè)位置綁定至數(shù)據(jù)存儲(chǔ)208中的單個(gè)XML節(jié)點(diǎn)213的機(jī)制,當(dāng)前將所有這三個(gè)位置的內(nèi)容鏈接到單個(gè)數(shù)據(jù)源。從而,文檔204中被鏈接到XML數(shù)據(jù)209中的同一節(jié)點(diǎn)211的的所有內(nèi)容區(qū)域207的內(nèi)容是完全相同的。
這樣的說(shuō)明性示例是典型的報(bào)告文檔,其中用戶(hù)通??梢栽谌舾晌恢蔑@示標(biāo)題在封面上(以大號(hào)粗體文本)、在頁(yè)眉中(以較小的文本)、以及在頁(yè)腳中(以較小的斜體文本)。正常地,用戶(hù)將必須在每個(gè)位置打出標(biāo)題,確保如果這三個(gè)位置中的任何一個(gè)的標(biāo)題改變,則他們要記得在其它兩個(gè)位置改變標(biāo)題(以保持內(nèi)容一致)。但是,總是太容易忘記要使所有這三個(gè)位置保持同步。根據(jù)本發(fā)明的實(shí)施例,一旦數(shù)據(jù)存儲(chǔ)208被置于包含用戶(hù)想要在文檔204中顯示的XML數(shù)據(jù)209的位置中,文檔中的多個(gè)位置(例如,上述的三個(gè)位置)全部都可以是綁定到數(shù)據(jù)存儲(chǔ)208中的單個(gè)XML節(jié)點(diǎn)213的內(nèi)容區(qū)域207數(shù)據(jù)。
因此,所有這三個(gè)位置的內(nèi)容被鏈接或綁定至單個(gè)數(shù)據(jù)源209。這意味著用戶(hù)通過(guò)改變這些區(qū)域中的任何一個(gè)(例如,封面)的內(nèi)容,將自動(dòng)引起用戶(hù)的文本被推入至底層X(jué)ML數(shù)據(jù)209,然后又被推入至文檔204中含有相應(yīng)的數(shù)據(jù)綁定205的內(nèi)容區(qū)域207的其它位置(在該情況下,為頁(yè)眉和頁(yè)腳)。這意味著如今用戶(hù)在他們與文檔的交互的范圍內(nèi)已鏈接或綁定了這三個(gè)內(nèi)容范圍以使它們完全相同。根據(jù)本發(fā)明的實(shí)施例,文檔的各個(gè)區(qū)域可以用多種方式來(lái)呈現(xiàn)(大號(hào)粗體、小號(hào)斜體等),但數(shù)據(jù)存儲(chǔ)208中的數(shù)據(jù)結(jié)構(gòu)保持不變。
懸掛引用根據(jù)本發(fā)明的實(shí)施例,用戶(hù)也可以指定沒(méi)有目標(biāo)的XPath表達(dá)式——它們指定的目標(biāo)XML節(jié)點(diǎn)213不存在于數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209中。數(shù)據(jù)綁定205沒(méi)有‘忘記’其期望目標(biāo)節(jié)點(diǎn)213,而是進(jìn)入‘等待’狀態(tài),在該狀態(tài)中,它不被連接至任何特定XML數(shù)據(jù)209,而是等待來(lái)查看期望節(jié)點(diǎn)213是否出現(xiàn)在后臺(tái)XML數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209中。這對(duì)于文檔組裝情形特別有用,在該情形中,文檔204的每一部分(例如,標(biāo)準(zhǔn)封面、封底、以及重復(fù)使用的條款)可包含數(shù)據(jù)綁定205,數(shù)據(jù)綁定205僅應(yīng)在這些部分被組裝為單個(gè)最終文檔204中時(shí)被填充。在該情形中,文檔創(chuàng)建者指定每一文檔‘部分’中的內(nèi)容區(qū)域207內(nèi)至不存在于該部分中的XML數(shù)據(jù)209中的XML節(jié)點(diǎn)213的數(shù)據(jù)綁定205(例如,封面可能包含帶有至<Title/>的XML元素和<Date/>的XML元素的綁定205的內(nèi)容區(qū)域)。當(dāng)該部分在其目標(biāo)文檔外被查看時(shí),那些綁定不被連接,因?yàn)椴淮嬖谌魏蝀ML數(shù)據(jù)209,但只要該部份一被添加到包含期望數(shù)據(jù)209的文檔中,數(shù)據(jù)綁定205立即連接(同步)至數(shù)據(jù)209,并顯示正確的內(nèi)容——即允許文檔的創(chuàng)建者指定并保存綁定205,即使數(shù)據(jù)209尚未被生成。
當(dāng)內(nèi)容區(qū)域207上的數(shù)據(jù)綁定205沒(méi)有被成功鏈接到已鏈接的XML流中的節(jié)點(diǎn)213時(shí)(即,內(nèi)容區(qū)域中綁定的狀態(tài)),發(fā)生一種類(lèi)型的懸掛引用215。當(dāng)從已鏈接的XML流中替換/移除節(jié)點(diǎn)213時(shí),作為結(jié)果,一個(gè)或多個(gè)數(shù)據(jù)綁定205可能變?yōu)閼覓煲?15。較佳地,如果數(shù)據(jù)綁定205由于其XPath而具有懸掛引用215,那么文字處理軟件應(yīng)用程序202繼續(xù)將節(jié)點(diǎn)213的最后已知的XPath存儲(chǔ)在數(shù)據(jù)綁定205上。當(dāng)XPath不再解析至任何節(jié)點(diǎn)209時(shí)可能發(fā)生這一情況。每當(dāng)數(shù)據(jù)存儲(chǔ)208向文字處理軟件文檔204發(fā)送某個(gè)XML數(shù)據(jù)209的更新的消息時(shí),文字處理軟件應(yīng)用程序202就檢查是否有任何懸掛引用215被最后的更新所解析(即,XPath如今指向XML樹(shù)中的有效節(jié)點(diǎn)213)。如果文字處理軟件應(yīng)用程序202解析懸掛引用,那么數(shù)據(jù)存儲(chǔ)208的內(nèi)容較佳地優(yōu)先于當(dāng)前在數(shù)據(jù)綁定205中的內(nèi)容——即,數(shù)據(jù)綁定205的內(nèi)容被數(shù)據(jù)存儲(chǔ)208中的節(jié)點(diǎn)213中的內(nèi)容所取代。較佳地,使用可通過(guò)一個(gè)或多個(gè)編程環(huán)境206訪問(wèn)的簡(jiǎn)單API層來(lái)展示懸掛引用。
作為示例,假設(shè)文字處理軟件204包括以下段落,其中Microsoft Corporation對(duì)應(yīng)于綁定到某個(gè)XML數(shù)據(jù)209中的XPath/contract/header/company(3)的純文本內(nèi)容區(qū)域207數(shù)據(jù)“Microsft Corporation is located at One Microsoft Way.”相應(yīng)的XML數(shù)據(jù)209可能看起來(lái)是(以單引號(hào)示出至節(jié)點(diǎn)213的鏈接)<contract>
<header>
<company>Fabrikam Corporation</company>
<company>Contoso Corporation</company>
‘<company>Microsoft Corporation</company>’</header>
</contract>
如果諸如開(kāi)發(fā)員等用戶(hù)使用數(shù)據(jù)存儲(chǔ)208的API來(lái)移除<header>下的第一個(gè)<company>節(jié)點(diǎn)213(單引號(hào)中的節(jié)點(diǎn)213)<contract>
<header>
‘<company>Fabrikam Corporation</company>’<company>Contoso Corporation</company>
<company>Microsoft Corporation</company>
</header>
</contract>
所得的文檔204中內(nèi)容區(qū)域207上的數(shù)據(jù)綁定205維護(hù)至同一XPath的鏈接,因此數(shù)據(jù)綁定205變?yōu)橹廉?dāng)前不存在的\contractct\header\company(3)的懸掛引用215<contract>
<header>
<company>Ford Corporation</company>
<company>Intel Corporation</company>
</header>
</contract>
這意味著在內(nèi)部有斷裂的鏈接,但根據(jù)本發(fā)明,內(nèi)容區(qū)域207的內(nèi)容不會(huì)改變,也不會(huì)發(fā)生錯(cuò)誤,即,“Microsoft Corporation is located at One Microsoft Way.”當(dāng)某個(gè)XML數(shù)據(jù)209被替換或移除時(shí)(或當(dāng)一鏈接從一個(gè)文檔被移到另一個(gè)文檔時(shí)),則引用該XML數(shù)據(jù)209的所有數(shù)據(jù)綁定205立即變?yōu)橹赶蛞褎h除XML數(shù)據(jù)209的懸掛引用215。如果數(shù)據(jù)綁定205包含懸掛引用215,那么文字處理軟件應(yīng)用程序202繼續(xù)存儲(chǔ)與該數(shù)據(jù)綁定205相關(guān)聯(lián)的最后已知的XPath/名字空間鏈接。根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)一組數(shù)據(jù)綁定205變?yōu)閼覓煲?15時(shí),文字處理軟件應(yīng)用程序202試圖將這些鏈接重新附加至相關(guān)聯(lián)的XML數(shù)據(jù)存儲(chǔ)208中的任何其它可用的XML數(shù)據(jù)209。如果任何數(shù)據(jù)綁定205的確解析到另一個(gè)XML數(shù)據(jù)209中的節(jié)點(diǎn)213,那么所有的懸掛引用215都關(guān)聯(lián)至該XML數(shù)據(jù)209,從而更新數(shù)據(jù)綁定205當(dāng)前連接的相關(guān)聯(lián)內(nèi)容區(qū)域207。如果該XML數(shù)據(jù)209沒(méi)有導(dǎo)致對(duì)任何懸掛引用215的有效數(shù)據(jù)綁定205,那么文字處理軟件應(yīng)用程序202對(duì)數(shù)據(jù)存儲(chǔ)208中的每一XML數(shù)據(jù)209等執(zhí)行類(lèi)似的檢查。如果沒(méi)有XML數(shù)據(jù)209可用于懸掛引用215,那么該綁定保持為至原始XML數(shù)據(jù)209的懸掛引用215。
參考圖3中所示的流程圖,并繼續(xù)參考圖2,描述了本發(fā)明的一個(gè)實(shí)施例。圖3中所示的過(guò)程300在302處開(kāi)始,那時(shí)用戶(hù)使用文字處理軟件應(yīng)用程序202打開(kāi)文字處理軟件文檔204。在304處,文字處理軟件應(yīng)用程序創(chuàng)建數(shù)據(jù)存儲(chǔ)208,然后在310處使用存儲(chǔ)在文字處理軟件文檔204中的、或通過(guò)使用用戶(hù)界面或編程窗口206請(qǐng)求的任何XML數(shù)據(jù)209填充數(shù)據(jù)存儲(chǔ)208。數(shù)據(jù)存儲(chǔ)208較佳地作為文檔204的一部分被包括在內(nèi),但在文檔編輯表面203上不可見(jiàn)。可以理解,可在創(chuàng)建內(nèi)容區(qū)域207和數(shù)據(jù)綁定205之前裝載數(shù)據(jù)存儲(chǔ)208。同樣地,可在數(shù)據(jù)存儲(chǔ)208之前創(chuàng)建內(nèi)容區(qū)域207。換言之,圖3中所示的各個(gè)操作不必以任何特定順序來(lái)執(zhí)行,并可根據(jù)特定用戶(hù)的偏好來(lái)實(shí)現(xiàn)。
在306處,用戶(hù)創(chuàng)建存在于文檔204的表面203上的一個(gè)或多個(gè)內(nèi)容區(qū)域207。注意,也可以從文檔204的現(xiàn)有內(nèi)容讀取這些內(nèi)容區(qū)域。在308處,用戶(hù)可通過(guò)提供特定的鏈接的XML數(shù)據(jù)209和指定目標(biāo)節(jié)點(diǎn)213的XPath表達(dá)式來(lái)將數(shù)據(jù)綁定信息與內(nèi)容區(qū)域207相關(guān)聯(lián)。一個(gè)或多個(gè)數(shù)據(jù)綁定將數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209的一個(gè)或多個(gè)節(jié)點(diǎn)213鏈接到一個(gè)或多個(gè)內(nèi)容區(qū)域207。數(shù)據(jù)綁定205成為綁定的或懸掛的。如上所述,每一節(jié)點(diǎn)213可被綁定至多個(gè)內(nèi)容區(qū)域207,內(nèi)容區(qū)域207中的每一個(gè)指定至同一XML節(jié)點(diǎn)213的數(shù)據(jù)綁定205。而且,數(shù)據(jù)綁定205可被鏈接到多個(gè)數(shù)據(jù)存儲(chǔ)208。在309處,用戶(hù)可以在內(nèi)容區(qū)域207或者數(shù)據(jù)存儲(chǔ)208中創(chuàng)建XML數(shù)據(jù)。在310處,文字處理軟件應(yīng)用程序202將所有XML數(shù)據(jù)裝載至數(shù)據(jù)存儲(chǔ)208中。在312處,文字處理軟件應(yīng)用程序202從文檔204或按照用戶(hù)所請(qǐng)求的(306)裝載內(nèi)容區(qū)域207,并且在314處,文字處理軟件應(yīng)用程序202從文檔204或按照用戶(hù)所請(qǐng)求的(308)裝載數(shù)據(jù)綁定205。在316處,文字處理軟件應(yīng)用程序202檢查是否存在與特定數(shù)據(jù)綁定205所指定的節(jié)點(diǎn)213相關(guān)聯(lián)的XML數(shù)據(jù)209。
如果XML數(shù)據(jù)209不存在,那么在318處,文字處理軟件應(yīng)用程序202確定同一XML名字空間內(nèi)是否存在其它XML數(shù)據(jù)209。在316處,如果XML數(shù)據(jù)209被定位在數(shù)據(jù)存儲(chǔ)內(nèi),那么在320處,文字處理軟件應(yīng)用程序202確定是否存在所指定的XPath的相關(guān)聯(lián)的XML節(jié)點(diǎn)213。如果該XPath存在,那么在322處,文字處理軟件應(yīng)用程序202通過(guò)數(shù)據(jù)綁定將各個(gè)文檔內(nèi)容,即內(nèi)容區(qū)域207以及任何其它所鏈接的內(nèi)容連接至一個(gè)或多個(gè)相關(guān)聯(lián)的XML節(jié)點(diǎn)213。如果在320處沒(méi)有定位到XPath,那么在324處,文字處理軟件應(yīng)用程序202將該特定數(shù)據(jù)綁定205標(biāo)記為懸掛引用215(進(jìn)入懸掛狀態(tài))。如果在318處,在數(shù)據(jù)存儲(chǔ)208內(nèi)的同一XML名字空間中找到其它XML數(shù)據(jù)209,那么在326處,文字處理軟件應(yīng)用程序202再次檢查在該數(shù)據(jù)內(nèi)是否存在XML節(jié)點(diǎn)213。
如果XML數(shù)據(jù)209不存在,那么在324處,文字處理軟件應(yīng)用程序202將特定數(shù)據(jù)綁定205標(biāo)記為懸掛引用(進(jìn)入懸掛狀態(tài))。如果在326處發(fā)現(xiàn)XML數(shù)據(jù)209存在,那么在328處,文字處理軟件應(yīng)用程序202在XML數(shù)據(jù)209內(nèi)搜索期望的XPath。如果在320處找到節(jié)點(diǎn)213,那么在322處,文字處理軟件應(yīng)用程序202將文檔內(nèi)容,即內(nèi)容區(qū)域207以及任何其它所鏈接的內(nèi)容連接至一個(gè)或多個(gè)相關(guān)聯(lián)的XML節(jié)點(diǎn)213。
應(yīng)該理解,本發(fā)明的各個(gè)實(shí)施例的邏輯操作被實(shí)現(xiàn)為(1)計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作序列或計(jì)算系統(tǒng)上運(yùn)行的程序模塊,和/或(2)計(jì)算系統(tǒng)內(nèi)相互連接的機(jī)器邏輯電路或電路模塊。實(shí)現(xiàn)方式是取決于實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)的性能要求進(jìn)行選擇的問(wèn)題。從而,組成此處的本發(fā)明的實(shí)施例的邏輯操作被不同地稱(chēng)為操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作以及模塊能夠用軟件、固件、專(zhuān)用數(shù)字邏輯、及其任何組合實(shí)現(xiàn),而不背離如所附權(quán)利要求書(shū)中所闡述的本發(fā)明的精神和范圍。
以上說(shuō)明書(shū)、示例及數(shù)據(jù)提供了制造和使用本發(fā)明的組成部分的完整描述。因?yàn)榭蓪?shí)現(xiàn)本發(fā)明的眾多實(shí)施例而不背離本發(fā)明的精神和范圍,所以本發(fā)明駐留在所附權(quán)利要求書(shū)中。
權(quán)利要求
1.在文字處理軟件應(yīng)用程序中,一種用于提供文字處理軟件文檔的方法,包括創(chuàng)建用于顯示所述文檔的內(nèi)容的呈現(xiàn)表面,創(chuàng)建用于存儲(chǔ)含有相關(guān)聯(lián)的結(jié)構(gòu)的文檔數(shù)據(jù)的數(shù)據(jù)存儲(chǔ),將模式文件與所述文字處理軟件應(yīng)用程序內(nèi)的數(shù)據(jù)存儲(chǔ)相關(guān)聯(lián),創(chuàng)建所述文字處理軟件文檔中的一個(gè)或多個(gè)內(nèi)容區(qū)域,以及創(chuàng)建與所述一個(gè)或多個(gè)內(nèi)容區(qū)域相關(guān)聯(lián)的一個(gè)或多個(gè)綁定。
2.如權(quán)利要求1所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括將所述數(shù)據(jù)結(jié)構(gòu)與所述呈現(xiàn)表面分開(kāi)。
3.如權(quán)利要求1所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括提供對(duì)所述數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù)的訪問(wèn)。
4.如權(quán)利要求3所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括直接在所述數(shù)據(jù)存儲(chǔ)內(nèi)編輯數(shù)據(jù)。
5.如權(quán)利要求4所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括更新與所述數(shù)據(jù)編輯相關(guān)聯(lián)的一個(gè)或多個(gè)內(nèi)容區(qū)域。
6.如權(quán)利要求1所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括基于對(duì)一個(gè)或多個(gè)內(nèi)容區(qū)域的編輯來(lái)更新所述數(shù)據(jù)存儲(chǔ)中的相關(guān)聯(lián)的數(shù)據(jù)。
7.如權(quán)利要求1所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括當(dāng)數(shù)據(jù)綁定引用所述數(shù)據(jù)存儲(chǔ)中不存在的位置時(shí),創(chuàng)建懸掛引用。
8.如權(quán)利要求1所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括向所述文字處理應(yīng)用程序展示編程接口,且使用所述編程接口來(lái)開(kāi)發(fā)用于引起所述數(shù)據(jù)存儲(chǔ)中或所述呈現(xiàn)表面的一個(gè)或多個(gè)內(nèi)容區(qū)域中的改變/對(duì)該改變作出反應(yīng)的代碼。
9.如權(quán)利要求1所述的文字處理軟件應(yīng)用程序,其特征在于,所述方法還包括基于與數(shù)據(jù)存儲(chǔ)中的至少一個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的修改來(lái)更新多個(gè)內(nèi)容區(qū)域中的內(nèi)容。
10.一種用于提供文字處理軟件文檔的文字處理應(yīng)用程序,包括用于創(chuàng)建存儲(chǔ)的裝置,所述存儲(chǔ)用于存儲(chǔ)數(shù)據(jù),用于將XML數(shù)據(jù)添加至所述存儲(chǔ)的裝置,用于將模式文件與所述存儲(chǔ)內(nèi)的XML數(shù)據(jù)相關(guān)聯(lián)的裝置,其中,所述模式文件定義了所述數(shù)據(jù)的結(jié)構(gòu),以及用于創(chuàng)建將所述存儲(chǔ)中的一個(gè)或多個(gè)節(jié)點(diǎn)與所述文檔的內(nèi)容區(qū)域相關(guān)聯(lián)的一個(gè)或多個(gè)數(shù)據(jù)綁定。
11.如權(quán)利要求10所述的文字處理應(yīng)用程序,其特征在于,還包括用于開(kāi)發(fā)監(jiān)視一個(gè)或多個(gè)鏈接的代碼的編程裝置。
12.如權(quán)利要求10所述的文字處理應(yīng)用程序,其特征在于,所述文字處理應(yīng)用程序可用于編輯所述文檔中的多個(gè)所鏈接的區(qū)域,從而引起所述存儲(chǔ)中的相關(guān)聯(lián)的改變。
13.如權(quán)利要求10所述的文字處理應(yīng)用程序,其特征在于,所述文字處理應(yīng)用程序可用于編輯所述存儲(chǔ)中的節(jié)點(diǎn),從而引起所述文檔的一個(gè)或多個(gè)內(nèi)容區(qū)域中的相關(guān)聯(lián)的編輯。
14.如權(quán)利要求10所述的文字處理應(yīng)用程序,其特征在于,所述用于創(chuàng)建鏈接的裝置還可用于創(chuàng)建懸掛或綁定鏈接。
15.一種含有計(jì)算機(jī)可執(zhí)行組件的計(jì)算機(jī)可讀介質(zhì),包括用于呈現(xiàn)文字處理軟件文檔內(nèi)容的文字處理軟件呈現(xiàn)表面,用于存儲(chǔ)第一數(shù)據(jù)的第一存儲(chǔ),以及用于將所述第一存儲(chǔ)中的第一數(shù)據(jù)綁定至所述文檔的區(qū)域的綁定。
16.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于存儲(chǔ)第二數(shù)據(jù)的第二存儲(chǔ)。
17.如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括與所述第一存儲(chǔ)相關(guān)聯(lián)的第一模式,以及與所述第二存儲(chǔ)相關(guān)聯(lián)的第二模式。
18.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于開(kāi)發(fā)監(jiān)視所述第一存儲(chǔ)的代碼的編程接口。
19.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述文字處理應(yīng)用程序還可用于在鏈接引用所述存儲(chǔ)中的未知位置時(shí)創(chuàng)建懸掛引用。
20.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述文字處理應(yīng)用程序還可用于創(chuàng)建懸掛或綁定的鏈接。
全文摘要
提供了用于創(chuàng)建文字處理軟件文檔的文字處理軟件應(yīng)用程序,其中數(shù)據(jù)和呈現(xiàn)可以被分開(kāi)。數(shù)據(jù)可以被存儲(chǔ)在與文字處理軟件文檔的呈現(xiàn)表面分開(kāi)的位置中。文字處理軟件應(yīng)用程序的用戶(hù)可以建立數(shù)據(jù)內(nèi)容和呈現(xiàn)表面之間的鏈接(或綁定)。用戶(hù)可以通過(guò)直接改變所鏈接的XML數(shù)據(jù)來(lái)修改文字處理軟件文檔的內(nèi)容,而不必處理可能不斷改變的呈現(xiàn)格式的復(fù)雜性。用戶(hù)可以通過(guò)編輯數(shù)據(jù)存儲(chǔ)來(lái)修改文字處理軟件文檔的內(nèi)容,而無(wú)需對(duì)呈現(xiàn)表面的當(dāng)前布局的了解。用戶(hù)可以通過(guò)簡(jiǎn)單的文檔編輯來(lái)修改復(fù)雜的后臺(tái)數(shù)據(jù),而不受數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性的影響。
文檔編號(hào)G06F17/30GK1811765SQ20051012889
公開(kāi)日2006年8月2日 申請(qǐng)日期2005年12月6日 優(yōu)先權(quán)日2005年1月6日
發(fā)明者T·A·戴維斯, M·薩維斯基, B·M·瓊斯, R·A·利特爾, M·森德蘭德 申請(qǐng)人:微軟公司