亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于綁定數(shù)據(jù)的可編程性的制作方法

文檔序號(hào):6651262閱讀:105來源:國知局
專利名稱:用于綁定數(shù)據(jù)的可編程性的制作方法
相關(guān)申請的參照本申請是微軟公司所擁有的、于2005年1月6日向美國專利商標(biāo)局提交的,題為“Data Binding In A Word-Processing Application”(文字處理應(yīng)用程序中的數(shù)據(jù)綁定),代理人檔案號(hào)60001.0459US01/MS310225.1的專利申請的部分繼續(xù)申請,其全部內(nèi)容通過引用包含于本文中。
本申請涉及題為“METHOD AND APPARATUS FOR UTILIZING AN OBJECTMODEL FOR MANAGING CONTENT REGIONS IN AN ELECTRONICDOCUMENT”(利用對象模型管理電子文檔中的內(nèi)容區(qū)域的方法和裝置),代理人檔案號(hào)14917.0059USI1/MS310649.01,以及題為“MOTHOD AND APPARATUSFOR UTILIZING AN EXTENSIBLE MARKUP LANGUAGE SCHEMA FORMANAGING SPECIFIC TYPES OF CONTENT IN AN ELECTRONICDOCUMENT”(利用可擴(kuò)展標(biāo)記語言模式管理電子文檔中特定類型的內(nèi)容的方法和裝置),代理人檔案號(hào)14917.0060USI1/MS310650.01的專利申請,上述兩個(gè)專利申請均為微軟公司所擁有,并與本申請同時(shí)提交,且其全部內(nèi)容通過引用包含于此。
背景技術(shù)
近年來標(biāo)記語言大行其道。一種類型的標(biāo)記語言,即可擴(kuò)展標(biāo)記語言(XML),是一種提供標(biāo)識(shí)、交換和處理各種類型的數(shù)據(jù)的方法的通用語言。例如,XML被用來創(chuàng)建可由各種應(yīng)用程序使用的文檔。XML文件的元素通常具有相關(guān)聯(lián)的名字空間和模式。
名字空間是XML文檔中用來定義元素/屬性名字和類型的名字集合的唯一標(biāo)識(shí)。名字空間的名字通常被用來唯一地標(biāo)識(shí)每個(gè)XML文檔類。該唯一的名字空間區(qū)分來自不同的源但恰巧具有相同名字的標(biāo)記元素。
XML模式提供一種在XML環(huán)境中描述和驗(yàn)證數(shù)據(jù)的方法。模式陳述什么元素和屬性被用來描述XML文檔中的內(nèi)容,每個(gè)元素在哪些地方被允許,什么類型的內(nèi)容在其內(nèi)被允許,以及哪些元素可在哪些其它元素內(nèi)出現(xiàn)。模式的使用確保文檔以一致和可預(yù)測的方式被結(jié)構(gòu)化。模式可由用戶創(chuàng)建,并且一般受到諸如XML等相關(guān)聯(lián)的標(biāo)記語言的支持。通過使用XML編輯器,用戶可操縱XML文件,并生成符合該用戶所創(chuàng)建的模式的XML文檔。在先前的文字處理器應(yīng)用程序中,對自定義的XML模式的支持被添加到應(yīng)用程序中,以使用戶能夠用自定義的XML標(biāo)記(例如,<title>)來‘標(biāo)記’文檔的內(nèi)容,這本質(zhì)上給了先前未歸類的一連串文本語義意義。這意味著,先前只是具有格式編排、但沒有意義供其它應(yīng)用程序處理的文本如今可以是包含特定XML標(biāo)記片段的結(jié)構(gòu)化的XML文檔,這些XML標(biāo)記片段來自任何用戶定義的XML模式,且任何其它知道XML的應(yīng)用程序都可定位和理解該XML模式。
在一基本示例中,文檔頂部的文本可用來自用戶定義的XML模式的<title>XML元素‘標(biāo)記’為標(biāo)題,這意味著其它知道XML的應(yīng)用程序如今可容易地理解此范圍的文本包含一“標(biāo)題”并可正確地提取該標(biāo)題。這使得后端過程能夠用適當(dāng)?shù)恼Z義和上下文智能地提取文檔的部分(例如,此文本是<title>)。
但是,與先前的文字處理器應(yīng)用程序相關(guān)聯(lián)的缺點(diǎn)源自以下事實(shí),即自定義的XML標(biāo)記的添加和持久化依賴于文檔的呈現(xiàn)。即,在現(xiàn)有實(shí)現(xiàn)中,在文字處理器文檔的XML標(biāo)記(例如,以XML格式表達(dá)的顧客發(fā)票的細(xì)節(jié))和它在文檔表面上的呈現(xiàn)(例如,三頁明文接下來是4行5列的w/a特定表格樣式的表格)之間有不可避免的關(guān)聯(lián)。因此,先前的文字處理器應(yīng)用程序中所表示的XML數(shù)據(jù)(因?yàn)樗蕾囉诔尸F(xiàn))必需與文檔的內(nèi)容嚴(yán)格一致。例如,如果發(fā)票所用的XML模式陳述<date>出現(xiàn)在<address>之前,而<address>出現(xiàn)在<phoneNumber>之前,則這三個(gè)XML元素必需嚴(yán)格按照文檔中所呈現(xiàn)的次序出現(xiàn)。這意味著呈現(xiàn)格式的改變(例如,移動(dòng)包含<date>的表格行)還會(huì)引起該文檔中所包含的XML數(shù)據(jù)的結(jié)構(gòu)的改變,這要求解決方案開發(fā)者一方額外的步驟來確保此數(shù)據(jù)符合相關(guān)聯(lián)的XML模式的結(jié)構(gòu)。由此,文檔的終端用戶沒有只有操縱呈現(xiàn)的自由,因?yàn)檫@樣做可能總是改變數(shù)據(jù)的語義,從而潛在地違反該數(shù)據(jù)的XML模式。
此外,在先前的文字處理器應(yīng)用程序之上開發(fā)的解決方案在試圖為后端應(yīng)用程序讀/寫來自文檔的數(shù)據(jù)時(shí),需要更仔細(xì)地考慮呈現(xiàn)的蘊(yùn)含。因此,如果一段粗體文本被標(biāo)記為標(biāo)題,則先前的文字處理器應(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>
如上所示,自定義的XML標(biāo)記兩邊被非常專屬于先前的文字處理器應(yīng)用程序的XML標(biāo)記(在此例中為w:p、w:r等)所包圍。這意味著正在處理此數(shù)據(jù)的知道XML的解決方案不僅必須理解其自身的數(shù)據(jù)格式(包含<Title>元素),還必須理解先前的文字處理器應(yīng)用程序格式編排的確切細(xì)節(jié),從而當(dāng)它搜索自己的數(shù)據(jù)時(shí)知道遍歷并忽略該信息。由此,此類實(shí)現(xiàn)仍然對用戶強(qiáng)加一些要求,因?yàn)槲臋n中的文本的外觀的小小改變(例如,將<Title>元素的內(nèi)容拖到表格單元中,等等)可能導(dǎo)致該自定義XML標(biāo)簽的位置在周圍環(huán)境的文字處理器的本機(jī)標(biāo)簽內(nèi)部的顯著改變。因此,程序員/代碼開發(fā)者常常需要編寫附加代碼,以預(yù)期和理解先前的文字處理器應(yīng)用程序?qū)⒒诔尸F(xiàn)而把自定義的XML元素放在何處,以及處理所有這些各種變換。這意味著最終的解決方案可能仍需包含大量邏輯代碼以處理特定的先前的文字處理器應(yīng)用程序的需求。
處理現(xiàn)有的文字處理器應(yīng)用程序的程序員/代碼開發(fā)者在考慮讀和寫操作時(shí),還需考慮文檔布局格式的蘊(yùn)含。例如,用戶可能試圖攫取<StockSymbol>元素的值,并使用該值以將公司的全名放到同一文檔的<CompanyName>元素中,來作為用戶寫公司報(bào)告的簡單增強(qiáng)。為維護(hù)文檔的完整性,用戶在能夠?qū)懝δ艽a以執(zhí)行這些動(dòng)作以前,需要同時(shí)對來自文檔的期望數(shù)據(jù)的讀和寫兩方面考慮文檔的當(dāng)前布局格式。例如,用戶可能需要知道他們所寫的值是否在表格單元中、著重列表中、等等,來構(gòu)造現(xiàn)有文字處理器應(yīng)用程序的格式編排信息,從而當(dāng)這些信息被插入到文檔中時(shí)將產(chǎn)生期望的結(jié)果。這是進(jìn)行附加編碼以理解文字處理器應(yīng)用程序的呈現(xiàn)語義的另一個(gè)潛在的原因。
現(xiàn)有文字處理器應(yīng)用程序的又一個(gè)局限性是有時(shí)會(huì)發(fā)現(xiàn)XML元素的編輯行為是“脆弱的”。這部分地是因?yàn)?,如上所述,它們受到以下事?shí)的限制,即標(biāo)記在文檔表面上的定位基于用戶定義的模式來確定XML數(shù)據(jù)的結(jié)構(gòu)。由此,可能產(chǎn)生若干問題。首先,根據(jù)相關(guān)聯(lián)的XML模式,典型的用戶操作(例如,從一個(gè)部分復(fù)制/粘貼到另一個(gè)部分)可能會(huì)改變XML結(jié)構(gòu)并使文檔變?yōu)闊o效。第二,在此類文字處理器實(shí)現(xiàn)中,用戶定義的XML模式所要求的所有元素都需要以某種形式被包括到文檔表面上。這意味著開發(fā)者要?jiǎng)?chuàng)建相關(guān)聯(lián)的XML數(shù)據(jù)以作為攜帶關(guān)于文檔的附加信息(不在文檔的表面上顯示,而是用作元數(shù)據(jù))十分困難。第三,文檔表面上的語義上非必要的元素(例如,并不標(biāo)記混合內(nèi)容的非葉元素)也需要被包括到此類文字處理器實(shí)現(xiàn)中,這進(jìn)一步增加了普通用戶操作修改XML數(shù)據(jù)的能力。
在許多情形中,定義XML數(shù)據(jù)(例如,包括備忘錄文檔的數(shù)據(jù))的模式趨向于由單個(gè)標(biāo)準(zhǔn)體嚴(yán)格定義,以便于此數(shù)據(jù)在多個(gè)異類處理系統(tǒng)之間的通信。但是,在如此便于后端通信的同時(shí),文檔數(shù)據(jù)的人類可閱讀性和可編輯性往往被犧牲,這使得用戶難以理解此數(shù)據(jù)及對其進(jìn)行語法分析。例如,XML標(biāo)準(zhǔn)可定義日期的標(biāo)準(zhǔn)格式,諸如dd-mm-yyyyThh:mm:ss.ssss。所有日期都被要求以此格式表示以由知道XML的應(yīng)用程序進(jìn)行語法分析。顯然,用戶很難正確輸入此格式,并且它常常與用戶通常輸入日期的方式(例如,許多場合通常使用mm-dd-yyyy而不是dd-mm-yyyy,等等)沖突。
由此,需要有一種方法使開發(fā)者能夠在諸如文字處理器應(yīng)用程序等應(yīng)用程序中將XML數(shù)據(jù)與此類數(shù)據(jù)的呈現(xiàn)分開。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種包括模式的文字處理器應(yīng)用程序,用于創(chuàng)建文字處理器文檔,其中數(shù)據(jù)和呈現(xiàn)可被分開。更具體地,數(shù)據(jù)可被輸入到文字處理器文檔中,并可從其中被提取,且該文字處理器文檔與其呈現(xiàn)格式存儲(chǔ)在分開的位置。根據(jù)本發(fā)明的實(shí)施例,該文字處理器應(yīng)用程序的用戶可為文字處理器文檔數(shù)據(jù)創(chuàng)建單獨(dú)的存儲(chǔ)位置,并建立該數(shù)據(jù)的內(nèi)容與呈現(xiàn)表面之間的鏈接(或綁定)。
根據(jù)本發(fā)明的實(shí)施例,一種對象模型允許使用編程環(huán)境來開發(fā)代碼。該代碼可被用來操縱應(yīng)用程序中的一個(gè)或多個(gè)數(shù)據(jù)綁定。還可使用編程環(huán)境來開發(fā)代碼,以對XML數(shù)據(jù)中的內(nèi)容區(qū)域或節(jié)點(diǎn)任一方向的改變作出反應(yīng)。還可開發(fā)代碼以定義文件內(nèi)容和數(shù)據(jù)存儲(chǔ)內(nèi)的內(nèi)容之間的關(guān)系。此外,可開發(fā)對文件的綁定區(qū)域內(nèi)或數(shù)據(jù)存儲(chǔ)內(nèi)的改變作出反應(yīng)的代碼,以捕獲或截取諸如編輯、添加、刪除等事件。本發(fā)明的實(shí)施例使用戶能夠用相關(guān)聯(lián)的XML單次編寫代碼,且如今該代碼可移植到支持使用XML構(gòu)造的文件類型,而無需擔(dān)心目標(biāo)應(yīng)用程序的確切語義,由此大大簡化并提高了應(yīng)用程序的開發(fā)的效率。


圖1示出可在本發(fā)明的一個(gè)示例性實(shí)施例中使用的示例性計(jì)算設(shè)備;圖2是示出用于實(shí)施本發(fā)明的示例性環(huán)境的框圖;圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的流程圖;以及圖4是示出用于實(shí)施本發(fā)明的另一個(gè)示例性環(huán)境的框圖。
具體實(shí)施例方式
貫穿整個(gè)說明書和所附權(quán)利要求書,以下術(shù)語采取本文中明確相關(guān)聯(lián)的含義,除非上下文中明顯另有所指。
術(shù)語“數(shù)據(jù)”是指隨文字處理器文檔攜帶的、文字處理器文檔本身、或由其使用的任何補(bǔ)充信息。此信息通常很大,并且很可能并不是在文檔的呈現(xiàn)層上完整地展現(xiàn)。
術(shù)語“標(biāo)記語言”或“ML”是指文檔內(nèi)的特殊代碼的語言,它指定文檔的各個(gè)部分要如何由應(yīng)用程序來解釋。在文字處理器文件中,標(biāo)記語言指定文本要如何被格式化或布局。
術(shù)語“元素”是指XML文檔的基本單元。元素可包含XML文檔的屬性、其它元素、文本、以及其它內(nèi)容區(qū)域。
術(shù)語“呈現(xiàn)”是指文檔的可視化部分——即在文檔被打印的情況下將會(huì)顯示出來的文本和布局。
術(shù)語“標(biāo)記”是指被插入到文檔中的、在XML文檔內(nèi)界定元素的字符。每個(gè)元素僅可有不超過兩個(gè)的標(biāo)記開始標(biāo)記和結(jié)束標(biāo)記。有空元素(無內(nèi)容)是可能的,在此情形中允許僅有一個(gè)標(biāo)記。
標(biāo)記之間的XML內(nèi)容被視為該元素的“子元素”(或后代)。由此,嵌入到該元素的內(nèi)容中的其它元素被稱為該元素的“子元素”或“子節(jié)點(diǎn)”。直接嵌入到元素的內(nèi)容中的文本被稱為該元素的“子文本節(jié)點(diǎn)”。概括而言,元素內(nèi)的子元素和文本構(gòu)成該元素的“內(nèi)容”。
術(shù)語“屬性”是指設(shè)為特定值并與元素相關(guān)聯(lián)的附加屬性。元素可具有與其相關(guān)聯(lián)的任意個(gè)數(shù)的屬性設(shè)置,包括無屬性設(shè)置的情形。屬性被用來將附加信息與不包含附加元素、或被視為文本節(jié)點(diǎn)的元素相關(guān)聯(lián)。
術(shù)語“內(nèi)容區(qū)域”是指文檔被界定的和/或任選地被標(biāo)記的區(qū)域,它起到用戶所輸入的類型的內(nèi)容的容器的作用。詳見由本發(fā)明的受讓人于2004年9月30日提交的題為“Methods,System,and Computer-Readable Medium For Managing SpecificTypes of Content In An Electronic Document”(用于管理電子文檔中的特定類型的內(nèi)容的方法、系統(tǒng)和計(jì)算機(jī)可讀介質(zhì))的已轉(zhuǎn)讓的美國專利申請第10/955,612號(hào),其全部內(nèi)容通過引用包含于此。
“XPath”是一個(gè)算子,它使用模式表達(dá)式來標(biāo)識(shí)XML文檔中的節(jié)點(diǎn)。XPath模式是用斜杠分開的子元素名列表,它描述貫穿XML文檔的路徑。模式“選擇”匹配該路徑的元素。
術(shù)語“XML數(shù)據(jù)存儲(chǔ)”是指文字處理器文檔內(nèi)的一個(gè)容器,它提供訪問,以供在文件打開時(shí)存儲(chǔ)和修改存儲(chǔ)在文字處理器文檔中的數(shù)據(jù)(例如,XML格式)。
術(shù)語“數(shù)據(jù)綁定”是指內(nèi)容區(qū)域上的一個(gè)屬性,它確定文字處理器文檔內(nèi)的一個(gè)或多個(gè)XML數(shù)據(jù)片段中可存儲(chǔ)內(nèi)容區(qū)域的內(nèi)容的XPath位置。如本文中所使用“ref”-指引用由個(gè)體綁定所使用(在打開/保存文檔到文件時(shí)使用)的以下屬性集合的中央存儲(chǔ)的唯一整數(shù);“ID”-指指定XML數(shù)據(jù)存儲(chǔ)內(nèi)的特定XML數(shù)據(jù)的唯一ID;“selectionNamespaces”-指XML數(shù)據(jù)存儲(chǔ)中的相關(guān)聯(lián)XML文檔的前綴映射關(guān)系(它將名字空間與簡短的縮寫相關(guān)聯(lián));以及“rootURI”-指XML數(shù)據(jù)存儲(chǔ)中的相關(guān)聯(lián)的XML文檔的根名字空間。
示例性操作環(huán)境本發(fā)明的實(shí)施例提供一種用于創(chuàng)建文字處理器文檔的文字處理器應(yīng)用程序,其中XML數(shù)據(jù)的存儲(chǔ)和呈現(xiàn)可被分開。更具體地,可被輸入到文字處理器文檔中、并可從其中被提取的數(shù)據(jù)與該文字處理文檔的呈現(xiàn)格式存儲(chǔ)在分開的位置。由此,該文字處理器應(yīng)用程序的用戶可為文字處理器文檔內(nèi)所包含的XML數(shù)據(jù)創(chuàng)建單獨(dú)的存儲(chǔ)位置,并建立該數(shù)據(jù)的內(nèi)容和呈現(xiàn)表面之間的鏈接(或綁定),以使用戶能夠通過編輯該呈現(xiàn)的內(nèi)容來編輯相關(guān)聯(lián)的XML數(shù)據(jù),而以相同方式防止用戶改變相關(guān)聯(lián)的XML數(shù)據(jù)的結(jié)構(gòu)。例如,發(fā)票所用的數(shù)據(jù)可以文字處理器文件格式單獨(dú)存儲(chǔ)為XML,從而移動(dòng)鏈接在文檔中的位置不會(huì)改變該單獨(dú)的數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)。由此,令此結(jié)構(gòu)化數(shù)據(jù)的后端處理變得更加簡單,因?yàn)樵摂?shù)據(jù)如今有已知的結(jié)構(gòu),而該結(jié)構(gòu)不受用戶編輯文檔的方式所影響。用戶可在文字處理器文檔中編輯數(shù)據(jù)、格式化數(shù)據(jù)(包括富呈現(xiàn)的格式化)、等等,僅對文本內(nèi)容的改變被‘下推’回該文本背后所存儲(chǔ)的XML數(shù)據(jù)。但是,根據(jù)本發(fā)明,經(jīng)由用戶與文字處理器文檔的交互進(jìn)行更新的所有數(shù)據(jù)都在原始的本機(jī)XML流中可用。因此本發(fā)明還實(shí)現(xiàn)通過直接改變所鏈接的XML數(shù)據(jù)來修改文字處理器文檔的內(nèi)容,而無需處理該數(shù)據(jù)呈現(xiàn)格式(同樣可能不斷改變)的復(fù)雜問題。這樣做大大簡化了文字處理器文檔中的結(jié)構(gòu)化數(shù)據(jù)的添加、編輯和提取。
參考圖1,一種用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括諸如計(jì)算設(shè)備100等計(jì)算設(shè)備。在非?;镜呐渲弥?,計(jì)算設(shè)備100通常包括至少一個(gè)處理單元102和系統(tǒng)存儲(chǔ)器104。取決于計(jì)算設(shè)備的確切配置和類型,系統(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還可包括諸如磁盤、光盤、或磁帶等其它數(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ù)字多功能盤(DVD)或其它光存儲(chǔ),磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備,或可用來存儲(chǔ)所需信息并可由計(jì)算設(shè)備100訪問的任何其它介質(zhì)。任何此類計(jì)算機(jī)存儲(chǔ)介質(zhì)都可以是設(shè)備100的部件。計(jì)算設(shè)備100還可具有諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等輸入設(shè)備。還可包括諸如顯示器、揚(yáng)聲器、打印機(jī)等輸出。在本領(lǐng)域中,這些設(shè)備是公知的,因此無需在本文中詳細(xì)討論。
計(jì)算設(shè)備100還可包含通信連接116,它允許該設(shè)備諸如通過網(wǎng)絡(luò)等與其它計(jì)算設(shè)備118通信。通信連接116是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通??删唧w化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號(hào)”是指以在信號(hào)中將信息編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接連線連接等有線介質(zhì),以及諸如聲學(xué)、RF、紅外及其它無線介質(zhì)等無線介質(zhì)。如本文中所使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)既包括存儲(chǔ)介質(zhì)又包括通信介質(zhì)。
計(jì)算設(shè)備100的系統(tǒng)存儲(chǔ)器104中可存儲(chǔ)若干程序模塊和數(shù)據(jù)文件,包括適用于控制聯(lián)網(wǎng)的個(gè)人計(jì)算機(jī)的操作的操作系統(tǒng)105,諸如來自華盛頓州雷蒙德市微軟公司的WINDOWS XP操作系統(tǒng)等。系統(tǒng)存儲(chǔ)器104還可存儲(chǔ)諸如文字處理器應(yīng)用程序120以及下述的其它程序模塊等一個(gè)或多個(gè)程序模塊。文字處理器應(yīng)用程序120用于提供創(chuàng)建、編輯和處理電子文檔的功能。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,文字處理器應(yīng)用程序120包括來自微軟公司的WORD程序。但是,應(yīng)當(dāng)認(rèn)識(shí)到,可使用來自其它制造商的文字處理器應(yīng)用程序來具體化本發(fā)明的各個(gè)方面。還應(yīng)認(rèn)識(shí)到,本發(fā)明的各個(gè)方面不僅局限于文字處理器應(yīng)用程序,而是還可使用能夠處理各種形式的內(nèi)容(例如,文本、圖像、圖片、等等)其它應(yīng)用程序106,諸如數(shù)據(jù)表應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序、演示應(yīng)用程序、繪圖或計(jì)算機(jī)輔助應(yīng)用程序、等等。
本發(fā)明的實(shí)施例可以實(shí)現(xiàn)為計(jì)算機(jī)過程、計(jì)算系統(tǒng)、或?qū)崿F(xiàn)為諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)等制造品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀的、并且將用于執(zhí)行酒商過程得計(jì)指令的計(jì)算機(jī)程序編碼的計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)程序產(chǎn)品還可以是載波上所傳播的計(jì)算系統(tǒng)可讀的、并且將用于執(zhí)行計(jì)算機(jī)過程的指令的計(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,諸如數(shù)據(jù)表應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序、演示應(yīng)用程序、繪圖或計(jì)算機(jī)輔助應(yīng)用程序、等等。編程模塊206可為XML處理模塊212提供簡單的應(yīng)用程序編程接口(API),它允許開發(fā)修改文檔204或者XML數(shù)據(jù)存儲(chǔ)208的內(nèi)容的代碼??梢哉J(rèn)識(shí)到,并不試圖以本文中所描述的任何特定實(shí)施例或示例來限制本發(fā)明。例如,文字處理器環(huán)境可包括多個(gè)文字處理器文檔204、數(shù)據(jù)存儲(chǔ)208、和/或模式文件210。根據(jù)本發(fā)明的一個(gè)實(shí)施例,文字處理器應(yīng)用程序202使用XML處理模塊212以處理根據(jù)可擴(kuò)展標(biāo)記語言格式化的數(shù)據(jù)。一種合適的XML處理模塊212是華盛頓州雷蒙德市微軟公司所制造并銷售的MSXML。
文字處理器應(yīng)用程序202包括其自身的一個(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還包括如下所述的由用戶創(chuàng)建的內(nèi)容區(qū)域207。可包括一個(gè)以上的數(shù)據(jù)存儲(chǔ)208、相關(guān)聯(lián)的XML數(shù)據(jù)209和模式210,以作為文字處理器應(yīng)用程序202的部件。為了提供帶有管理可能被包括在給定XML數(shù)據(jù)209中的數(shù)據(jù)的類型和結(jié)構(gòu)的語法和數(shù)據(jù)類型規(guī)則的集合,可將一個(gè)或多個(gè)XML模式210與XML數(shù)據(jù)209相關(guān)聯(lián),以提供管理用戶可用來注釋給定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)可經(jīng)由隨文字處理器文檔存儲(chǔ)的單獨(dú)的數(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的用戶可為文字處理器文檔204的數(shù)據(jù)創(chuàng)建單獨(dú)的存儲(chǔ)位置,并在該數(shù)據(jù)的內(nèi)容與呈現(xiàn)表面203之間建立與一個(gè)或多個(gè)內(nèi)容區(qū)域207相關(guān)聯(lián)的鏈接(或綁定)205,這使得用戶能夠通過編輯呈現(xiàn)的內(nèi)容來編輯數(shù)據(jù),而以相同方式防止用戶改變數(shù)據(jù)209的結(jié)構(gòu)。在文檔204中移動(dòng)內(nèi)容區(qū)域207的位置不會(huì)改變單獨(dú)數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209的結(jié)構(gòu)。此外,對數(shù)據(jù)的呈現(xiàn)(如粗體、斜體、對齊等)所作的改變不影響數(shù)據(jù)結(jié)構(gòu)。由此,結(jié)構(gòu)化數(shù)據(jù)的后端處理被簡化,因?yàn)閄ML數(shù)據(jù)209對應(yīng)于不受用戶編輯文檔204的方式影響的已知結(jié)構(gòu)。
本發(fā)明的實(shí)施例通過直接改變所鏈接的數(shù)據(jù)來實(shí)現(xiàn)文字處理器文檔204的內(nèi)容的修改,而無需處理可能不斷改變的呈現(xiàn)格式的復(fù)雜問題。這樣做大大簡化了文字處理器文檔204中的結(jié)構(gòu)化數(shù)據(jù)的添加、編輯和提取。此外,綁定到結(jié)構(gòu)化XML數(shù)據(jù)209的數(shù)據(jù)綁定205可在文檔204中到處移動(dòng),而不會(huì)影響數(shù)據(jù)的結(jié)構(gòu)。較佳的是使用XPath表達(dá)式來實(shí)現(xiàn)內(nèi)容區(qū)域207上的數(shù)據(jù)綁定205,該表達(dá)式可經(jīng)由用戶接口或編程窗口206來定義。
用戶使用XPath表達(dá)式(一種用于標(biāo)識(shí)XML樹中的節(jié)點(diǎn)213的標(biāo)準(zhǔn)XML方法)唯一地標(biāo)識(shí)文檔內(nèi)容區(qū)域應(yīng)被綁定到的期望的XML節(jié)點(diǎn)213。文字處理器應(yīng)用程序202對XPath進(jìn)行自動(dòng)分析,并使用XPath來為數(shù)據(jù)綁定區(qū)域定位期望的目標(biāo)。這也意味著熟悉XPath標(biāo)準(zhǔn)的開發(fā)者可控制XML的這一用途來創(chuàng)建本質(zhì)上半動(dòng)態(tài)的數(shù)據(jù)綁定205。即,基于對數(shù)據(jù)209的其它改變或?qū)Τ尸F(xiàn)203的改變來標(biāo)識(shí)不同的目標(biāo)節(jié)點(diǎn)213。例如,假定用戶想要顯示在給定時(shí)間段里完成最高銷售額的雇員的名字。如果此信息在與文檔204相關(guān)聯(lián)的XML數(shù)據(jù)209中,則用戶可創(chuàng)建鏈接到具有最高的已完成單數(shù)的個(gè)人的名字的XPath表達(dá)式,并且當(dāng)數(shù)據(jù)改變時(shí),該鏈接自動(dòng)轉(zhuǎn)移到適當(dāng)?shù)奈恢?節(jié)點(diǎn)213)。還可通過使用代碼211、用戶界面、或編程環(huán)境206在節(jié)點(diǎn)213之間改變鏈接。
或者,用戶可創(chuàng)建唯一標(biāo)識(shí)數(shù)據(jù)209中文檔內(nèi)容區(qū)域207應(yīng)被綁定到的對象表示節(jié)點(diǎn)213的數(shù)據(jù)綁定。文字處理器應(yīng)用程序202自動(dòng)確定XPath,來為數(shù)據(jù)綁定區(qū)域定位期望的目標(biāo)。但是這意味著在此情形中,數(shù)據(jù)綁定205將自動(dòng)更新其XPath以確保數(shù)據(jù)綁定205指向同一對象,這與同一XPath表達(dá)式相反。
可開發(fā)如上文所簡述的編程代碼211以使用XML處理模塊212,以及對向任一方向(即,從文檔表面203上的內(nèi)容區(qū)域207到數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209中的節(jié)點(diǎn)213,反之亦然)移動(dòng)的改變作出反應(yīng)。用戶可開發(fā)定義文檔表面203和數(shù)據(jù)存儲(chǔ)208內(nèi)的特定內(nèi)容之間的關(guān)系的代碼211。此外,可開發(fā)對文檔204的綁定區(qū)域內(nèi)或數(shù)據(jù)存儲(chǔ)208內(nèi)的改變作出反應(yīng)的代碼,以捕獲或截取諸如編輯、添加、刪除等事件。例如,假定用戶想要確保至多只有一個(gè)文檔可使用某個(gè)特定的標(biāo)題。代碼211可基于輸入到標(biāo)題節(jié)點(diǎn)中的內(nèi)容檢查中央數(shù)據(jù)庫,以確定該標(biāo)題是否已被使用。如果該標(biāo)題已被取用,則代碼211可提示用戶輸入另一個(gè)標(biāo)題和/或警告用戶該標(biāo)題不可用。本發(fā)明的實(shí)施例使用戶能夠用相關(guān)聯(lián)的XML一次性編寫代碼211,而該代碼如今可被移植到支持XML構(gòu)造的使用的所有文檔類型,而無需擔(dān)心目標(biāo)應(yīng)用程序的確切語義,由此大大簡化并提高了應(yīng)用程序開發(fā)的效率。
根據(jù)本發(fā)明的實(shí)施例,可用表示特定文本區(qū)域(例如,標(biāo)題、正文、等等)的語義的內(nèi)容區(qū)域207,并通過添加數(shù)據(jù)綁定205來標(biāo)記文字處理器文檔204,如今該內(nèi)容區(qū)域207內(nèi)的相關(guān)聯(liá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ǔ)”),而無論數(shù)據(jù)綁定205將相關(guān)聯(lián)的內(nèi)容定位到文檔204的呈現(xiàn)203中的何處(即,用戶編輯特定文檔時(shí)與之交互的數(shù)字表示,例如描繪特定用戶文檔的WORD窗口等),或者如何呈現(xiàn)數(shù)據(jù)209。由此,用戶不必?fù)?dān)心數(shù)據(jù)在文檔204中被到處移動(dòng),因?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ù)向諸如解決方案開發(fā)者等用戶提供可能與文檔用戶無關(guān)的附加信息。
根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)的結(jié)構(gòu)被保存在單獨(dú)的位置(文檔的數(shù)據(jù)存儲(chǔ)208內(nèi)的一個(gè)或多個(gè)XML數(shù)據(jù)片段209)中,從而使用戶能夠?qū)㈡溄?例如,數(shù)據(jù)綁定205)在呈現(xiàn)203中到處移動(dòng),而不會(huì)影響數(shù)據(jù)結(jié)構(gòu)。由此,XML數(shù)據(jù)209的結(jié)構(gòu)不會(huì)改變,只是與文字處理器文檔204相關(guān)聯(lián)的XML數(shù)據(jù)209的呈現(xiàn)有所改變。因此,改變文檔204中的數(shù)據(jù)呈現(xiàn)的格式不影響數(shù)據(jù)存儲(chǔ)208的結(jié)構(gòu)。用戶操縱文檔表面203并不移動(dòng)實(shí)際數(shù)據(jù)209-因此用戶對呈現(xiàn)具有完全的控制,而無需考慮單獨(dú)在存儲(chǔ)208中維護(hù)的數(shù)據(jù)209的分支。由此,本發(fā)明的實(shí)施例允許用戶與呈現(xiàn)信息分開訪問自定義XML信息。
可使用一個(gè)或多個(gè)數(shù)據(jù)綁定205將數(shù)據(jù)源的內(nèi)容(數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209,本文中稱為XML數(shù)據(jù)209)綁定到文檔204中的位置。如本文中所使用,XML數(shù)據(jù)209包括諸如文本(明文或富格式化的文本)、圖像、特定類型(日期)的內(nè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連接/同步,或?qū)⒌狡涞逆溄映志没?。最佳的是,XML數(shù)據(jù)存儲(chǔ)208是文檔204的部件(即,存儲(chǔ)208是隨文字處理器文件保存,并隨特定文檔204移動(dòng)或與其相關(guān)聯(lián))。數(shù)據(jù)綁定205還可包含控制應(yīng)如何在呈現(xiàn)(例如,文字處理器的文檔表面203)和數(shù)據(jù)存儲(chǔ)208之間變換數(shù)據(jù)的信息。文字處理器應(yīng)用程序202的用戶可允許存儲(chǔ)在數(shù)據(jù)存儲(chǔ)208中的數(shù)據(jù)209(由后端應(yīng)用程序操縱的數(shù)據(jù))被以標(biāo)準(zhǔn)格式存儲(chǔ),但在文字處理器文檔204中以較友好的格式呈現(xiàn)相同的信息(例如,用戶看到1月29日2004年,但該數(shù)據(jù)是以29-01-004T12:00:00.0000的dateTime格式存儲(chǔ)的)。又如,數(shù)據(jù)綁定信息可包含圖像——對數(shù)據(jù)209而言此圖像被表示為看起來無意義的字符串,但上述的同一變換原理意味著用戶將在文字處理器文檔204的內(nèi)容區(qū)域207中看到一個(gè)圖像。用戶可添加/改變圖像,且XML編碼的表示將被持久化為XML數(shù)據(jù)209,以使任何后端過程可存儲(chǔ)/操縱該信息。
根據(jù)一個(gè)實(shí)施例,當(dāng)用戶向內(nèi)容區(qū)域207添加數(shù)據(jù)綁定信息205時(shí),用戶通過指定XPath表達(dá)式來提供關(guān)注的所鏈接的XML數(shù)據(jù)209(例如,標(biāo)識(shí)一個(gè)或多個(gè)節(jié)點(diǎn)213)。一經(jīng)綁定,此內(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”對應(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í)施例,可通過在編程環(huán)境206(例如)中指定單行代碼來建立鏈接Document.ContentRegion.Add().DataBinding.Add(“/contract(1)/header(1)/company(1)”)對應(yīng)的所鏈接的XML數(shù)據(jù)209看起來可能是(到節(jié)點(diǎn)213的鏈接以單引號(hào)示出)<contract>
<header>
‘<company>Microsoft Corporation</company>’<company>Contoso Corporation</company>
</header>
</contract>
假定現(xiàn)在用戶使用數(shù)據(jù)存儲(chǔ)208 API來添加新的<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)容可被即時(shí)更新以顯示該節(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反應(yīng)于對任一所鏈接的內(nèi)容源的改變。由此,如果文檔204的一個(gè)范圍是數(shù)據(jù)綁定的,則改變相關(guān)聯(lián)的XML數(shù)據(jù)209中的XML節(jié)點(diǎn)213的內(nèi)容將會(huì)導(dǎo)致內(nèi)容區(qū)域207的文本的自動(dòng)改變。由此,如果文檔204的一個(gè)范圍是數(shù)據(jù)綁定的,則改變文檔204中該綁定的內(nèi)容區(qū)域207會(huì)導(dǎo)致對應(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同步,后者將進(jìn)而在文檔204中存在具有到該節(jié)點(diǎn)213的數(shù)據(jù)綁定205的內(nèi)容區(qū)域207的任何地方反映該改變。
XML數(shù)據(jù)209中的XML節(jié)點(diǎn)213可與文檔204有一對多的關(guān)系,這意味著XML數(shù)據(jù)209中的同一XML節(jié)點(diǎn)213可被多個(gè)數(shù)據(jù)綁定205所引用。只要文檔204中數(shù)據(jù)綁定的內(nèi)容區(qū)域207一被更新,它即引起XML數(shù)據(jù)209中適當(dāng)?shù)腦ML節(jié)點(diǎn)213的改變,這進(jìn)而使文檔204中的其它內(nèi)容區(qū)域207中的所有其它相關(guān)聯(lián)的綁定205被以該新文本更新。例如,假定文檔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)容,即使它們具有不同的格式編排。如果用戶編輯文檔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,從而引起文檔204中也指定該XML節(jié)點(diǎn)213的、具有相關(guān)聯(lián)的綁定205的所有其它內(nèi)容區(qū)域207(例如,頁眉中,頁腳中,等等)的更新。本發(fā)明的實(shí)施例提供一種用于將文檔中的多個(gè)位置綁定到數(shù)據(jù)存儲(chǔ)208中的單個(gè)XML節(jié)點(diǎn)213的機(jī)制,正如本例中將所有這三個(gè)位置的內(nèi)容鏈接到單個(gè)數(shù)據(jù)源。由此,文檔204中被鏈接到XML數(shù)據(jù)209中的同一節(jié)點(diǎn)211的所有內(nèi)容區(qū)域207的內(nèi)容是完全相等的。
對此的一個(gè)示例性例子是典型的報(bào)告文檔,其中用戶通常使標(biāo)題在若干位置顯示在封面上(以大號(hào)粗體文本),在頁眉中(以較小的文本),以及在頁腳中(以較小的斜體文本)。通常,用戶將必須在每個(gè)位置打出標(biāo)題,還要確保如果這三個(gè)位置中的任何一個(gè)的標(biāo)題被改變,則他們要記得在其它兩個(gè)位置改變標(biāo)題(以保持內(nèi)容一致)。但是,往往很容易忘記要使所有這三個(gè)位置保持同步。根據(jù)本發(fā)明的實(shí)施例,一旦包含用戶想要在文檔204中顯示的XML數(shù)據(jù)209的數(shù)據(jù)存儲(chǔ)208就位,文檔中的多個(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。這意味著用戶通過改變這些區(qū)域中的任何一個(gè)(例如,封面)的內(nèi)容,將自動(dòng)使用戶的文本被下推到底層的XML數(shù)據(jù)209,然后進(jìn)而被下推到文檔204中具有帶對應(yīng)的數(shù)據(jù)綁定205的內(nèi)容區(qū)域207的其它位置(在此情形中為頁眉和頁腳)。這意味著如今用戶在他們與文檔的交互的范圍內(nèi)已鏈接或綁定了這三個(gè)內(nèi)容范圍以使它們完全相等。根據(jù)本發(fā)明的實(shí)施例,文檔的各個(gè)區(qū)域能以多種方式呈現(xiàn)(大號(hào)粗體、小號(hào)斜體、等等),但數(shù)據(jù)存儲(chǔ)208中的數(shù)據(jù)結(jié)構(gòu)保持不變。
懸掛引用根據(jù)本發(fā)明的一個(gè)實(shí)施例,用戶還可指定沒有目標(biāo)的XPath表達(dá)式——即數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209中不存在他們所指定的目標(biāo)XML節(jié)點(diǎn)213。數(shù)據(jù)綁定205不是‘忘記’了其期望的目標(biāo)節(jié)點(diǎn)213,而是進(jìn)入一種‘等待’狀態(tài),在‘等待’狀態(tài)中,它不被連接到任何特定XML數(shù)據(jù)209,而是等著看所期望的節(jié)點(diǎn)是否出現(xiàn)在213后臺(tái)XML數(shù)據(jù)存儲(chǔ)208中的XML數(shù)據(jù)209中。這對于文檔匯編情形特別有用,其中文檔204的每個(gè)部件(例如,標(biāo)準(zhǔn)封面、結(jié)束頁、以及被重復(fù)使用的從句)可包含數(shù)據(jù)綁定205,而它們僅應(yīng)在這些部件被匯編到單個(gè)最終文檔204中時(shí)被填充。在此情形中,文檔創(chuàng)建者指定每個(gè)文檔‘部件’中的內(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尚未被生成。
一類懸掛引用215在內(nèi)容區(qū)域207上的數(shù)據(jù)綁定205不能被成功鏈接到已鏈接的XML流中的節(jié)點(diǎn)213(即,綁定在內(nèi)容區(qū)域中的狀態(tài))時(shí)發(fā)生。當(dāng)節(jié)點(diǎn)213從已鏈接的XML流中被替換/移除時(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某個(gè)XML數(shù)據(jù)209的更新時(shí),文字處理器應(yīng)用程序202就檢查是否有任何懸掛引用215被最后的更新所解析(即,XPath如今指向XML樹中的有效節(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)容所取代。較佳的是使用通過一個(gè)或多個(gè)編程環(huán)境206可訪問的簡單API層來展示懸掛引用。
例如,假定文字處理器文檔204包括以下段落,其中Microsoft Corporation對應(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看起來可能是(到節(jié)點(diǎn)213的鏈接以單引號(hào)示出)<contract>
<header>
<company>Fabrikam Corporation</company>
<company>Contoso Corporation</company>
‘<company>Microsoft Corporation</company>’</header>
</contract>
如果諸如開發(fā)者等用戶使用數(shù)據(jù)存儲(chǔ)208的API來移除<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>
這導(dǎo)致文檔204中的內(nèi)容區(qū)域207上的數(shù)據(jù)綁定205維持到同一XPath的鏈接,因此數(shù)據(jù)綁定205變?yōu)榈饺缃癫淮嬖诘腬contract\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都與此XML數(shù)據(jù)209相關(guān)聯(lián),從而更新了數(shù)據(jù)鏈接205如今所連接的相關(guān)聯(lián)的內(nèi)容區(qū)域207。如果此XML數(shù)據(jù)209沒有導(dǎo)致任何懸掛引用215的有效數(shù)據(jù)綁定,則文字處理器應(yīng)用程序202對數(shù)據(jù)存儲(chǔ)208中的每個(gè)XML數(shù)據(jù)209等執(zhí)行類似的檢查。如果沒有一個(gè)XML數(shù)據(jù)209可被供懸掛引用215使用,則該綁定繼續(xù)保持為到原始XML數(shù)據(jù)209的懸掛引用215。
參考圖3中所示的流程圖,并繼續(xù)參考圖2,描述了本發(fā)明的一個(gè)實(shí)施例。當(dāng)用戶使用文字處理器應(yīng)用程序202打開文字處理器文檔204時(shí),圖3中所示的過程300在302開始。在304,文字處理器應(yīng)用程序創(chuàng)建數(shù)據(jù)存儲(chǔ)208,然后在310,用存儲(chǔ)在文字處理器文檔204中的、或通過使用用戶界面或編程窗口206請求的任何XML數(shù)據(jù)209填充該數(shù)據(jù)存儲(chǔ)208。較佳的是,數(shù)據(jù)存儲(chǔ)208作為文檔204的部件被包括,但在文檔編輯表面203上不可見??梢哉J(rèn)識(shí)到,可在創(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è)操作不必按照任何特定順序來執(zhí)行,并可根據(jù)特定用戶的偏好來實(shí)現(xiàn)。
在306,用戶創(chuàng)建一個(gè)或多個(gè)存在于文檔204的表面203上的內(nèi)容區(qū)域207。注意,還可從文檔204的現(xiàn)有內(nèi)容讀取這些內(nèi)容區(qū)域。在308,用戶可通過提供特定的已連接XML數(shù)據(jù)209和指定目標(biāo)節(jié)點(diǎn)213的XPath表達(dá)式來將數(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變?yōu)榻壎ǖ幕驊覓斓摹H缟纤?,每個(gè)節(jié)點(diǎn)213可被綁定到多個(gè)內(nèi)容區(qū)域207,后者中的每一個(gè)都指定到同一XML節(jié)點(diǎn)213的數(shù)據(jù)綁定205。此外,數(shù)據(jù)綁定205可被鏈接到多個(gè)數(shù)據(jù)存儲(chǔ)208。在309,用戶可在內(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或按照用戶所要求306加載內(nèi)容區(qū)域207,并且在314,文字處理器應(yīng)用程序202從文檔204或按照用戶所要求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確定對應(yīng)于所指定的XPath的相關(guān)聯(lián)的XML節(jié)點(diǎn)213是否存在。如果該XPath存在,則在322,文字處理器應(yīng)用程序202經(jīng)由數(shù)據(jù)綁定將各個(gè)文檔內(nèi)容,即內(nèi)容區(qū)域207以及任何其它所鏈接的內(nèi)容,連接到一個(gè)或多個(gè)相關(guān)聯(lián)的XML節(jié)點(diǎn)213。如果在320沒有定位到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在此檢查XML節(jié)點(diǎn)213是否存在于該數(shù)據(jù)內(nèi)。
如果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。
用于綁定數(shù)據(jù)的對象模型現(xiàn)在參考圖4,描述本發(fā)明的另一個(gè)實(shí)施例。在許多軟件應(yīng)用程序中可使用對象模型來提供一種用于通過諸如應(yīng)用程序400等應(yīng)用程序的用戶界面使用戶可能執(zhí)行的任務(wù)自動(dòng)化的代碼編寫方法。對象模型允許編寫執(zhí)行以下任務(wù)的代碼,例如·為用戶將重復(fù)性的任務(wù)自動(dòng)化,·對用戶的動(dòng)作作出反應(yīng)(以進(jìn)行驗(yàn)證,等等),和/或·當(dāng)文件410被打開/編輯/保存時(shí)執(zhí)行自動(dòng)的動(dòng)作。
例如,應(yīng)用程序(例如,WORD 2003)提供對象模型接口,它通過代碼給出到文字處理器的用戶界面的所有功能的訪問。它是通過提供對文字處理器應(yīng)用程序的所有范型/用戶界面的等效部分的代碼訪問來實(shí)現(xiàn)此功能的。這些結(jié)構(gòu)被組織為4個(gè)基本類別·對象對應(yīng)于應(yīng)用程序內(nèi)的可作用的對象——例如,段落可被表示為對象模型中對應(yīng)于文檔表面中用戶的段落的對象。
·方法可對對象執(zhí)行的動(dòng)作(例如,刪除)。
·屬性關(guān)于對象可設(shè)置的事物(例如,將段落加粗)。
·事件對應(yīng)于響應(yīng)于用戶(或其它代碼)與應(yīng)用程序的交互而運(yùn)行的子例程(例如,代碼可注冊以監(jiān)聽文件打開事件,只要應(yīng)用程序中有文件被打開,無論是被用戶還使其它代碼打開,應(yīng)用程序即可通知此代碼(以允許用戶執(zhí)行任何動(dòng)作)。
應(yīng)用程序的對象模型內(nèi)的任何對象都可展示允許代碼操縱該對象的方法、屬性、和/或事件。
描述包括根據(jù)本發(fā)明的一個(gè)實(shí)施例的編程環(huán)境402的應(yīng)用程序400。編程環(huán)境402經(jīng)由對象模型提供對諸如上述的文字處理器應(yīng)用程序202等應(yīng)用程序400中的對象的代碼訪問??梢哉J(rèn)識(shí)到,本發(fā)明的實(shí)施例是在文字處理應(yīng)用程序的上下文中描述的,但是如上所述,并不試圖將本發(fā)明限制于任何特定的應(yīng)用程序。編程環(huán)境402還可用于在利用穩(wěn)健的方法/屬性/事件集合來捕獲對內(nèi)容區(qū)域408的內(nèi)容的改變的同時(shí)提供對內(nèi)容區(qū)域408的行為的控制。此外,編程環(huán)境402使諸如程序員等用戶能夠程序地訪問提供一個(gè)或多個(gè)內(nèi)容區(qū)域408與數(shù)據(jù)存儲(chǔ)414的一個(gè)或多個(gè)節(jié)點(diǎn)416之間的鏈接的一個(gè)或多個(gè)數(shù)據(jù)綁定406。
如上所述,可使用編程環(huán)境402來開發(fā)響應(yīng)于任一方向的內(nèi)容區(qū)域408或XML數(shù)據(jù)412中的節(jié)點(diǎn)416的改變的代碼404。還可開發(fā)代碼404以定義文件內(nèi)容和數(shù)據(jù)存儲(chǔ)414內(nèi)的內(nèi)容之間的關(guān)系。此外,還可開發(fā)反應(yīng)于文件410的綁定區(qū)域內(nèi)或數(shù)據(jù)存儲(chǔ)414內(nèi)的改變的代碼,以捕獲或截取諸如編輯、添加、刪除等事件。本發(fā)明的實(shí)施例使用戶能夠用相關(guān)聯(lián)的XML一次性編寫代碼404,且該代碼如今可被移植到支持XML構(gòu)造的使用的所有文件類型,而無需擔(dān)心目標(biāo)應(yīng)用程序的確切語義,從而大大簡化并提高了應(yīng)用程序開發(fā)的效率。
諸如應(yīng)用程序編程接口(API)等編程環(huán)境402展示對象并提供使用代碼404來操縱應(yīng)用程序400內(nèi)的一個(gè)或多個(gè)數(shù)據(jù)綁定406的能力??蓪⒁粋€(gè)或多個(gè)數(shù)據(jù)綁定406與特定文件410的一個(gè)或多個(gè)內(nèi)容區(qū)域408相關(guān)聯(lián)。
較佳的是,內(nèi)容區(qū)域?qū)傩苑祷靥峁┯糜诓倏v數(shù)據(jù)綁定的行為的兩個(gè)事件的對象·.BeforeStoreUpdate(ContentRegion As ContentRegion,Content As String)每當(dāng)內(nèi)容區(qū)域的內(nèi)容被修改時(shí)、并且在文本被發(fā)送到XML數(shù)據(jù)412中的適當(dāng)節(jié)點(diǎn)416以前返回對象(串)的事件。這允許代碼404在串到達(dá)XML數(shù)據(jù)的節(jié)點(diǎn)以前操縱該串,而無需改變內(nèi)容區(qū)域408的內(nèi)容。
·.BeforeContentUpdate(ContentRegion As ContentRegion,Content AsString)每當(dāng)有對XML數(shù)據(jù)412中被鏈接到相關(guān)聯(lián)的內(nèi)容區(qū)域408的節(jié)點(diǎn)416的內(nèi)容的改變、并且在內(nèi)容區(qū)域408被更新以前引發(fā)一個(gè)事件。這允許代碼404在數(shù)據(jù)412被顯示在內(nèi)容區(qū)域408中以前操縱數(shù)據(jù)412,而無需改變節(jié)點(diǎn)的數(shù)據(jù)。較佳的是,內(nèi)容區(qū)域408包括屬性,這些屬性包括通過編程環(huán)境402可訪問的“DataBinding”(數(shù)據(jù)綁定)屬性。DataBinding屬性提供對內(nèi)容區(qū)域408和與文件410相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)414的數(shù)據(jù)412之間的關(guān)系的訪問。較佳的是,DataBinding返回DataBinding對象(屬性、方法和事件),以允許對數(shù)據(jù)綁定406以及與數(shù)據(jù)綁定406相關(guān)聯(lián)的其它數(shù)據(jù)的操作。代表性的方法和屬性包括,但不限于·.CustomDataStream As CustomDataStream返回表示與數(shù)據(jù)綁定406相關(guān)聯(lián)的XML數(shù)據(jù)412(用于進(jìn)一步的操縱)的對象的屬性。可開發(fā)代碼404以使用對象模型來直接操縱XML數(shù)據(jù)。如果是懸掛引用則不返回任何對象。
·.CustomDataXMLNode As CustomDataXMLNode
返回表示XML數(shù)據(jù)412中是數(shù)據(jù)綁定406的目標(biāo)的XML節(jié)點(diǎn)416的對象的屬性??砷_發(fā)代碼404以操縱特定數(shù)據(jù)綁定406的目標(biāo)節(jié)點(diǎn)416。如果是懸掛引用則不返回任何對象。例如,假定用戶想要移動(dòng)節(jié)點(diǎn)416以改變數(shù)據(jù)綁定406的目標(biāo)。又如,假定用戶想要?jiǎng)h除節(jié)點(diǎn)416,因?yàn)槲募?10將被放到某個(gè)公共服務(wù)器上。由此,代碼404可被用來使用此被返回的對象來尋找并刪除節(jié)點(diǎn)416,以防在文件410被放到公共服務(wù)器上時(shí)因疏忽而發(fā)送信息。
·.Delete As Void返回用于將數(shù)據(jù)綁定406從內(nèi)容區(qū)域408移除的對象的方法。例如,假定文件410包括具有被鏈接(或數(shù)據(jù)綁定)到XML數(shù)據(jù)412中的name元素的名字的內(nèi)容區(qū)域408。代碼404可被用來刪除綁定406(即,“dataBinding.Delete”),因?yàn)橛脩粝胍尫艛?shù)據(jù)412,從而操作以將該鏈接從內(nèi)容區(qū)域408移除。
·.IsBound As Boolean返回用于確定數(shù)據(jù)綁定406當(dāng)前是否為懸掛引用的對象的屬性。代碼404可被用來確定目標(biāo)節(jié)點(diǎn)416是否存在。在各種情況中,為成功進(jìn)行代碼實(shí)現(xiàn),較佳的是確定目標(biāo)節(jié)點(diǎn)是否存在,即,數(shù)據(jù)綁定406是懸掛的還是有效的。如果目標(biāo)節(jié)點(diǎn)存在,則該對象返回“.true”,如果是懸掛引用或不存在綁定,則返回“.false”。
·.SetBindingByNode(CustomDataXMLNode As CustomDataXMLNode)AsBoolean返回用于通過為特定鏈接提供目標(biāo)XML節(jié)點(diǎn)416來創(chuàng)建/改變當(dāng)前內(nèi)容區(qū)域408上的數(shù)據(jù)綁定406的對象(CustomDataXMLNode)的方法。如果綁定存在,則現(xiàn)有綁定被替換,且新的綁定節(jié)點(diǎn)(若有)的存儲(chǔ)內(nèi)容取代現(xiàn)有內(nèi)容。如果綁定是活節(jié)點(diǎn)則返回“.true”,如果不是綁定到活節(jié)點(diǎn)則返回“.false”。
·.SetBindingByXPath(CustomDataStream As Variant,XPath as String,[PrefixMapping As String]) As Boolean返回表示用于通過為鏈接提供XPath和XML數(shù)據(jù)412來創(chuàng)建內(nèi)容區(qū)域408上的數(shù)據(jù)綁定406的信息(諸如XPath、到節(jié)點(diǎn)的指針(ID),和/或與名字空間有關(guān)的前綴映射關(guān)系)的對象(CustomDataStream、XPath、和/或PrefixMapping)的方法。
·CustomDataStream指定應(yīng)被綁定到的存儲(chǔ)項(xiàng)的變量,可以是以下任何一項(xiàng)○表示期望的流的CustomDataStream對象
○表示期望的流的根名字空間的串——如果有一個(gè)以上具有該根名字空間的流,則攫取存儲(chǔ)中所找到的第一個(gè)項(xiàng)○表示期望的存儲(chǔ)項(xiàng)在存儲(chǔ)的集合中的索引的整數(shù)·XPath指定要綁定到的XPath的串。試圖確保其為有效XPath句法,如果不是則失敗并給出錯(cuò)誤消息。
·PrefixMapping表示在查詢所提供的XPath表達(dá)式時(shí)可使用的前綴映射關(guān)系的可任選的串。如果沒有給出,則使用存儲(chǔ)項(xiàng)本身所使用的前綴映射關(guān)系集合。
·.XPath As String返回用于定位數(shù)據(jù)綁定406所使用的XPath表達(dá)式以指向XML數(shù)據(jù)412內(nèi)的目標(biāo)XML節(jié)點(diǎn)416的對象的屬性。
可以認(rèn)識(shí)到,使用以上所列出的屬性、方法、以及事件的代碼開發(fā)可根據(jù)特定應(yīng)用程序來定制。
應(yīng)當(dāng)認(rèn)識(shí)到,本發(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)相互連接的及其邏輯電路或電路模塊。實(shí)現(xiàn)是根據(jù)實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)的性能要求進(jìn)行選擇的問題。由此,組成本文中所描述的本發(fā)明的實(shí)施例的邏輯操作被稱為操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊等不同的術(shù)語。本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到,這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作以及模塊可在軟件、固件、專用數(shù)字電路、及其任何組合中實(shí)現(xiàn),而不會(huì)偏離本發(fā)明的精神和范圍,如所附權(quán)利要求書中所闡述。
以上說明書、示例及數(shù)據(jù)提供了制造和使用本發(fā)明的組成的完整描述。因?yàn)榭勺鞒霰景l(fā)明的許多實(shí)施例而不會(huì)偏離本發(fā)明的精神和范圍,所以本發(fā)明駐留在所附權(quán)利要求書中。
權(quán)利要求
1.一種使用數(shù)據(jù)綁定的方法,所述數(shù)據(jù)綁定鏈接數(shù)據(jù)存儲(chǔ)和內(nèi)容區(qū)域,所述方法包括展示數(shù)據(jù)綁定接口,使用與所述數(shù)據(jù)綁定接口相關(guān)聯(lián)的方法、屬性或事件,其中,所述方法、屬性或事件返回允許對所述數(shù)據(jù)綁定、數(shù)據(jù)或與所述數(shù)據(jù)綁定相關(guān)聯(lián)的其它對象的操縱的對象。
2.如權(quán)利要求1所述的方法,其特征在于,還包括使用屬性來定位與特定數(shù)據(jù)綁定相關(guān)聯(lián)的XML數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,還包括使用代碼來操縱所述XML數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,還包括使用屬性來定位XML數(shù)據(jù)內(nèi)的目標(biāo)節(jié)點(diǎn)。
5.如權(quán)利要求4所述的方法,其特征在于,還包括使用代碼來操縱相關(guān)聯(lián)的數(shù)據(jù)綁定的目標(biāo)節(jié)點(diǎn)。
6.如權(quán)利要求1所述的方法,其特征在于,還包括使用返回用于移除特定數(shù)據(jù)綁定的對象的方法。
7.如權(quán)利要求1所述的方法,其特征在于,還包括使用屬性來確定特定數(shù)據(jù)綁定是否為懸掛引用。
8.如權(quán)利要求1所述的方法,其特征在于,還包括使用返回用于創(chuàng)建或改變內(nèi)容區(qū)域上的數(shù)據(jù)綁定的對象的方法。
9.如權(quán)利要求8所述的方法,其特征在于,還包括為特定鏈接提供目標(biāo)XML節(jié)點(diǎn)。
10.如權(quán)利要求1所述的方法,其特征在于,還包括使用返回表示用來創(chuàng)建內(nèi)容區(qū)域上的數(shù)據(jù)綁定的信息的對象的方法。
11.如權(quán)利要求10所述的方法,其特征在于,還包括為鏈接提供XPath和XML數(shù)據(jù)。
12.一種其上存儲(chǔ)了計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令時(shí),將使所述計(jì)算機(jī)展示數(shù)據(jù)綁定接口,所述數(shù)據(jù)綁定接口用于展示與所述數(shù)據(jù)綁定接口相關(guān)聯(lián)的方法、屬性或事件,其中,所述方法、屬性或事件返回允許對所述數(shù)據(jù)綁定、數(shù)據(jù)或與所述數(shù)據(jù)綁定相關(guān)聯(lián)的至少一個(gè)對象的操縱的對象。
13.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述數(shù)據(jù)綁定接口用于返回用于定位與特定數(shù)據(jù)綁定相關(guān)聯(lián)的XML數(shù)據(jù)的對象。
14.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述數(shù)據(jù)綁定接口用于返回用于定位XML數(shù)據(jù)內(nèi)的目標(biāo)節(jié)點(diǎn)的對象。
15.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述數(shù)據(jù)綁定接口用于返回用于確定特定數(shù)據(jù)綁定是否懸掛的對象。
16.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述數(shù)據(jù)綁定接口用于返回用于創(chuàng)建或改變內(nèi)容區(qū)域上的數(shù)據(jù)綁定的對象。
17.一種用于提供對數(shù)據(jù)存儲(chǔ)和內(nèi)容區(qū)域之間的鏈接的訪問的系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)綁定接口,用于展示與所述數(shù)據(jù)綁定接口相關(guān)聯(lián)的方法、屬性或事件,其中,所述方法、屬性或事件返回允許對所述數(shù)據(jù)綁定、數(shù)據(jù)、或與所述數(shù)據(jù)綁定相關(guān)聯(lián)的至少一個(gè)對象的操縱的對象。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述數(shù)據(jù)綁定接口用于返回用于定位XML數(shù)據(jù)內(nèi)的目標(biāo)節(jié)點(diǎn)的對象。
19.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述數(shù)據(jù)綁定接口用于返回用于創(chuàng)建或改變內(nèi)容區(qū)域上的數(shù)據(jù)綁定的對象。
20.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述系統(tǒng)還用于提供用于開發(fā)與相關(guān)聯(lián)的數(shù)據(jù)綁定聯(lián)合工作的代碼的接口。
全文摘要
一種對象模型允許使用編程環(huán)境來開發(fā)代碼以訪問例如文字處理應(yīng)用程序等應(yīng)用程序中的功能。該對象模型可被用來操縱應(yīng)用程序中的一個(gè)或多個(gè)數(shù)據(jù)綁定。還可使用編程環(huán)境來開發(fā)代碼,用于反應(yīng)于任一方向上的對與一個(gè)或多個(gè)數(shù)據(jù)綁定相關(guān)聯(lián)的內(nèi)容區(qū)域或XML數(shù)據(jù)中的節(jié)點(diǎn)的改變??砷_發(fā)代碼以定義文件內(nèi)容與數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù)內(nèi)的內(nèi)容之間的數(shù)據(jù)綁定。此外,可開發(fā)響應(yīng)于文件的綁定區(qū)域內(nèi)或數(shù)據(jù)存儲(chǔ)內(nèi)的改變的代碼,以捕獲或截取諸如編輯、添加、刪除等事件。
文檔編號(hào)G06F17/30GK1811766SQ20051012889
公開日2006年8月2日 申請日期2005年12月6日 優(yōu)先權(quán)日2005年1月6日
發(fā)明者T·A·戴維斯, B·M·瓊斯, A·塔勒吉哈尼, R·A·利特爾, M·薩維斯基, M·森德蘭德 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1