專利名稱:向程序提交消息的系統和方法
背景技術:
軟件應用逐漸變得越來越復雜和強大。曾經是簡單的文本編輯器的應用現在可能變成了有數不清豐富特性的復雜的字處理器,例如創建網頁或編輯XML標記的能力。隨著技術發展,每個軟件應用提供越來越多的功能來增強用戶的體驗。另外,現在很多軟件應用都通過編程接口向后加應用顯露它們的本地功能。例如,面向對象編程使一些軟件應用和它們的文檔能夠被當作對象來處理。這些對象以可調用的方法的形式或者可讀取或可設置的屬性的形式來處理該應用或文檔,顯露應用的功能。這些進步使得程序員能夠開發第三方附加應用來把應用交互時以前由手工執行的任務和功能自動化。很多這樣的附加應用是用簡單的編程語言開發的,例如Visual Basic forApplication(VBA)語言。這些附加功能可以通過調用該應用的方法和屬性進行工作以達到各種目標,并針對定制環境定制該應用的核心功能。
除了能夠進行從附加應用定制的代碼到核心應用的調用,還需要以這樣一種方式寫定制的代碼使它實際上在一些動作發生在應用自身中的時候,響應(和“發起”相對)來自應用的調用。例如,一個人可能想為一個字處理器寫定制代碼,以某種特殊的方式對從該應用接收到的用戶的按鍵作出反應,并且在用戶正在編輯一個其中只允許某些類型的字母的區域時可能阻止其中的某些按鍵。在這種情況下,程序員需要一種方法讓應用知道當一種特定類型的事件發生時,該應用應當運行特殊的定制代碼。一旦定制的代碼被注冊于該應用,該代碼可以通過有用的方式對發生在核心應用中的特定的事件作出“反應”,從而擴充該應用的核心功能。
發明概要本發明針對的是一種從一段代碼到另一段代碼(可以不是程序原始的代碼的一部分而是由一個第三方解決方案廠商加入以擴充原始程序的功能)提交一個事件通知消息的機制。通知消息屬于一種特殊類型,即指示實際上發生了哪種可能的事件。例如,通知消息可以由程序進入的某種特殊狀態觸發。在這樣的情況下,事件通知消息可以包括描述原來的狀態是什么,新的狀態是什么,及描述使得程序進入這種狀態的原因的參數。更確切地,在一個配置為編輯可擴充標記語言XML創建的文檔的應用中,作為用戶發起的動作的結果,出現一個XML相關的狀態變化就會引發事件通知消息的提交。
由事件所報告的XML相關狀態改變可以是在字處理應用中用戶的插入點在基于XML的上下文中位置的改變。例如,這可以通過用戶插入點移動出一個XML元素進入另一個元素觸發。或者當用戶在選定范圍附近插入一個新的XML元素時觸發。或者當用戶刪除當前包圍用戶插入點的XML元素時觸發。通過這種方法,當編輯一個XML文檔時,無論是三種不同的用戶動作中的哪一種導致了狀態改變,單個事件通知消息都可以被用來指示這種類型的狀態改變。對附加應用程序員來說,能夠寫響應這種類型的事件的代碼,例如,為了根據用戶正在XML結構的何處編輯內容提供用戶上下文敏感的反饋,是有用的。例如,當用戶開始編輯一個<city>XML元素的內容時,定制的附加應用可以自動地向用戶提供一個經常用到的城市的列表。在一個方面,本發明是針對一種數據結構,該數據結構用來通知一個程序在另一個程序(或同一程序的其他部分)中發生了一個XML相關的動作。該數據結構包括一個指示發生了一個XML相關的狀態改變的標識符。該數據結構還包括多個參數。一個參數被用來表示由狀態改變影響的第一個XML節點,及另一個參數被用來標識由狀態改變影響的第二個XML節點(如果狀態改變包括不止一個XML節點)。第三個參數被用來標識多種原因中的哪一種引起了狀態改變。作為本發明主題的狀態改變類型是在用戶插入點的XML上下文中的一個改變。為什么狀態改變發生的可能原因是XML相關的移動動作、XML相關的插入動作,或XML相關的刪除動作。另一個參數被用來標識一個特定的被XML相關的狀態改變所影響的內容的選擇。
在另一方面,本發明涉及一對可執行程序(運行在同一個進程或兩個獨立的進程中),其中第一程序被設計成可以編輯包括XML標記的文檔。第一程序還被設計為提交單個事件通知以響應發生在編輯該文檔時作為影響用戶選擇XML上下文的一個用戶動作的結果的狀態改變。影響XML上下文的事件的原因是多種類型XML相關的動作中的一種,如XML相關的移動動作,XML相關的插入動作,或XML相關的刪除動作。第二程序被設計成接收該單個事件通知并用事件處理程序處該理該單個事件通知。事件處理程序包括以某種合適的方式響應各種類型的動作的計算機可執行指令。
在另一方面,本發明涉及或提交事件通知消息或接收事件通知消息的程序,其中事件通知消息包括參數。事件通知消息本身指示發生了一個XML相關的狀態改變。事件通知消息的第一參數標識與XML相關的狀態改變關聯的第一XML節點,事件通知消息的第二參數標識與XML相關的狀態改變關聯的第二XML節點,事件通知消息的第三參數標識多種原因中的哪一種引起了該狀態改變,事件通知消息的第四參數標識XML文檔受影響的選擇。
圖1為一個計算環境的功能框圖,本發明在其中可以實現。
圖2為根據本發明的一個實例,顯露并使用一個公用接口的軟件應用的功能框圖概觀。
圖3為于本發明實例中事件通知消息的一種實現的邏輯表示。
圖4所示為根據本發明的一個實例,一個能夠編輯XML文檔的軟件應用顯示屏看上去的樣子。
圖5所示為根據本發明的一個實例,一個能夠編輯XML文檔的軟件應用的另一顯示屏上去的樣子。
圖6所示是根據本發明的一個實例,一個能夠編輯XML文檔的軟件應用再一顯示屏看上去的樣子。
本發明說明性的計算環境圖1展示了一個可以以各種形式被包括在實現本發明的系統中的示范性的計算機設備。在很基本的配置中,計算設備100通常包括至少一個處理單元102和系統存儲器104。處理單元102包括現有的有形處理器、那些在設計中的處理器、共用的多個處理器、虛擬處理器,及任何能夠編譯二進制可執行指令的其他設備或軟件程序。取決于計算設備的確切配置和類型,系統存儲器104可以是易失的(如RAM)、非易失的(如ROM、閃存等等)或兩者的某種組合。系統存儲器104通常有一個操作系統105、一個或多個程序模塊106,可能包括程序數據107。這個基本的配置在圖1中由包在虛線108內的組件展示。
計算設備100還可以有附加的特性或功能。例如,計算設備100還可以包含附加的數據存儲設備(可移動的和/或不可移動的),例如,磁盤、光盤或磁帶。這樣的附加存儲在圖1中以可移動存儲109和不可移動存儲110展示。計算機存儲媒體可以包括用任何方法或技術實現信息存儲的易失的、非易失的、可移動的和不可移動的媒體,所述信息的形式有計算機可讀指令、數據結構、程序模塊或其他數據。系統存儲器104、可移動存儲109及不可移動存儲110都是計算機存儲媒體的例子。計算機存儲媒體包括,但不限于,RAM、ROM、EEPROM、閃存或其他存儲技術、CD-ROM、數字多用盤(DVD)或其他光學存儲、盒式磁帶、磁帶、磁盤存儲或其他磁存儲設備,或可以被用來存儲所需信息并可以由計算設備100訪問的任何其他媒體。任何這樣的計算機存儲媒體都可以為設備100的一部分。計算設備100還可以有輸入設備112,如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備等等。還可以包括輸出設備114,如顯示器、揚聲器、打印機等等。所有這些設備在相關技術中都是大家熟知的,在此不再贅述。
計算設備100還可以包括使該設備與其他計算設備118,如通過網絡進行通訊的通訊連接116。通訊連接116是通訊媒體的一個例子。通訊媒體一般包括計算機可讀指令、數據結構、程序模塊或其他以調制過的數據信號表達的數據,如載波或其他傳輸機制,也包括其他任何信息傳輸媒體。術語“調制過的數據信號”是指一種信號,它的一個或多個特性被設置或改變用以在信號中對信息進行編碼。作為例子,而非限制,通訊媒體包括有線媒體,如一個有線網絡或直接有線連接,及無線媒體如聲音、射頻RF、紅外線或其他無線媒體。這里所用的術語“計算機可讀媒體”包括存儲媒體和通訊媒體。
發明實例詳細說明本發明使軟件應用,如字處理器,能夠提交一種類型的消息,包括改進該消息的參數,來通知另一個應用出現了狀態改變,即使該狀態改變可能由不同的用戶動作引起。更確切地,一個能夠編輯可擴充標記語言(XML)文檔的軟件應用向其他軟件應用顯露特定功能。這個功能可以和特定標記標簽或內容的編輯相關。該軟件應用附加應用的開發者可以依指望得到特定標記編輯動作的通知。為此,軟件應用顯露這些動作的通知。根據本發明,軟件應用被配置為通過提交單個“事件”消息,即使不止一個動作。在一個實現中,所述單個事件消息可以用來指示由三種獨立的動作中的一種所造成的狀態改變。首先,所述單個事件可以在當前選擇在其中的一個元素被刪除時作為響應被提交。其次,單個事件的提交可以是對一個元素在當前選擇周圍插入時響應。第三,單個事件可以作為對當前選擇從一個地方換到另一個地方時的響應被提交。無論是什么導致了狀態改變,觸發的事件是相同的,但在其參數中包含有狀態改變的原因。
圖2是實現本發明的一個實例的功能框圖,一個軟件應用提交單個事件消息到另一個軟件應用或程序以對多種動作之一的發生做出響應。XML文檔編輯器201是一個使用戶能夠在自由格式編輯環境中創建和編輯XML文檔,如XML文檔202的軟件應用。XML文檔編輯器201可以是專門編程以便進行XML文件創建和編輯的字處理器。雖然這里是在字處理器中說明,但應理解,本發明并不局限于字處理器,而是實際上同等適用于任何能夠處理XML(或類似的)文檔的應用,如電子表格應用、表單編輯器、桌面印刷包、電子郵件編輯器、代碼編輯工具,或其他任何在其中用戶和該應用的交互會導致(即使用戶不知情)XML文檔發生改變的工具,上述只是略舉幾例。
XML文檔202是一個包含XML元素和內容的文件。XML文檔202可以包含由XML文檔編輯器201插入、與格式化等屬性相關的的元素。另外,XML文檔202可以包含由用戶手工插入的元素,并表示用戶選擇和設計的指定(arbitrary)元素。在任何一種情況下,XML文檔編輯器201允許用戶編輯XML文檔202,包括插入、更改,及刪除元素及其內容。
與XML文檔編輯器201關聯的事件發生器250被編程為監聽某些特定動作所引起的文檔狀態改變的發生,并在確有變化發生時提交狀態改變的通知。通知采取公共接口251的形式顯露XML文檔編輯器201的特定功能。
暫時撇開公共接口251,另一程序,例如一個自動化組件209,也被包括進來并將其編程,給XML文檔編輯器201增加一些附加的或自動化的功能。換句話說,自動化組件209是一個可以被開發以向XML文檔編輯器201的用戶提供一些對XML文檔編輯器201中已經有的任務進行自動化的軟件應用。一個普通例子是“宏”應用將完成某項活動的幾個手工步驟,如根據公司標準對一個文檔進行格式化,簡化到一個按鈕的單擊或類似動作。作為選擇,自動化組件209可以向XML文檔編輯器201增加其它補充功能,如使用戶能夠調用某些外部的進程來發布該文檔到Web,或類似功能。在任何情況下,自動化組件209包括代碼,例如事件處理程序275,響應在XML文檔編輯環境中發生的一些活動。特別地,自動化組件209的編程使之對XML相關的編輯動作實現自動化或者增加附加的功能。更確切地,根據本發明,事件處理程序275的編程使之能對直接編輯XML文檔202相關的特定動作的發生做出響應。
現在回到由XML文檔編輯器201顯露的接口,發明人確定有三個種類的動作會導致在XML環境中對XML相關的附加軟件應用,如自動化組件209有用的狀態改變。這些種類包括(1)刪除包圍當前選擇點的XML元素,(2)在一個選擇點附近插入新的XML元素,及(3)把選擇點從一個地方移動到另一個地方。另外,從一個地方移動選擇點到另一個地方的情況包括三種不同的XML相關的場合(1)把選擇點從某個XML元素內移動到另一個XML元素內,(2)把選擇點從某個XML元素內移動到不落在XML元素內部的內容上,及(3)把選擇點從不落在XML元素內部的內容上移動到某個XML元素內部。
從前,這些種類的動作中的每一種都需要一個單獨的通知,要求自動化組件209的開發者學習和處理三種不同的事件。然而,發明人確定這三種類型的動作一般都是為了實現類似的目的由類似的代碼來處理的。因此,開發了單個事件以向附加軟件應用通知這三種動作的每一種所導致的文檔狀態改變。通過這種方法,一個單獨的事件處理程序,如事件處理程序275,可以被實現來利用由XML文檔編輯器201顯露的功能。應注意,在這種情況下,術語“功能”是指涉及編輯XML相關的內容或元素的體驗的功能。
對一個單獨的事件,自動化組件209可以包含編程為對三類動作的每一種所導致的XML環境狀態改變做出響應的單個事件處理程序275。這種設計簡化了開發自動化組件209的工作,而不犧牲處理不同事件的靈活性。在一種特定的實現中,由公共接口251顯露的事件基本上可以采取圖3所示的形式,并在這里重現XMLChange(Sel As Selection,OldXMLNode As XMLNode,NewXMLNode As XMLNode,Reason As WdXMLChangeReason)其中指令的每一項有如下意義。“XMLChange”項指被顯露的事件的名字,“Sel”參數301對應于一個對象,該對象表示正在被編輯的XML文檔中的當前選擇點或選擇的內容,“OldXMLNode”參數302對應于一個表示XML元素的對象,該元素中在完成即將進行的動作之前存在某個選擇,“NewXMLNode”參數303對應于一個表示在完成即將進行的動作之后選擇將存在于其中的一個XML元素的對象,“Reason”參數304對應于一個動作種類的標識,該動作是導致該XML環境狀態改變的即將進行的特定動作。Reason參數被用來標識上述三種動作類型之一。相應地,當這個消息由XML文檔編輯器201提交時,被傳遞的Reason參數是定義三種類型的動作哪一種發生了的三者之一。
為了利用由XML文檔編輯器201顯露的事件,事件處理程序275包括一個使事件處理程序275知曉該事件的聲明,及被執行用來響應三種類型的動作的每一種的代碼。下面是可以用在一個特定實現中用來處理上述事件的偽碼Public WithEvents oWordProc AsWordProc.ApplicationPrivate Sub oWordProc_XMLChange(Sel AsSelection,OldXMLNode As XMLNode,NewXMLNode AsXMLNode,Reason As WdXMLChangeReason)Select Case ReasonCase wdXMLChangeReasonInsert被執行用來響應XML插入的代碼熟悉相關技術的人應理解,上面的偽碼首先創建一個類型為“WordProc.Application”的“oWordProc”對象,其中WordProc.Application類型的對象基本上是名為“WordProc”的軟件應用所實現的功能的實例。在本例中,WordProc應用對應于XML文檔編輯器201,從而oWordProc對象對應于XML文檔編輯器201的一個實例。因為包括“WithEvents”語句,使得oWordProc對象知曉由XML文檔編輯器201產生的事件。為此,名為“oWordProc_XMLChange”的子程序包含用來處理上述XMLChange事件的代碼。處理程序代碼和消息的參數是一樣的。
在這個特定的例子中,Select/Case結構被用來處理可能引發事件的三種原因的每一種。例如,語句“Case wdXMLChangeReasonInsert”可以被用來處理由于XML元素在某個選擇周圍被插入而觸發的事件。語句“CasewdXMLChangeReasonDelete”可以被用來處理由于在某個選擇周圍的一個XML元素被刪除而觸發的一個事件。語句“Case wdXMLChangeReasonMove”可以被用來處理由于選擇點以某種XML相關的方式移動而觸發的一個事件。現在,參照圖4到圖6,對這三種情況的每一種進行說明。
圖4是一個允許編輯XML文檔202的XML文檔編輯器201的顯示屏410。如圖所示,XML文檔202可以是為一個簡歷文檔,有幾個部分由XML元素包繞。例如,名字“John Doe”包含在一個<name>元素405中,而<name>元素405中又包含在一個<resume>元素407中。一個插入點被顯示在初始位置415,對應于<p>元素430中的內容。
當編輯的時候,用戶可以對XML文檔202執行很多動作,包括移動插入點。例如,在編輯時,插入點可能被從初始位置415移動到一個在文本流“Professor Smith”中的新位置425。注意,這個文本流,如圖所示,并不包含在任何當前的XML元素中。因此,基于這個動作和它的周圍情況,一個事件將被提出,標示插入點從某個XML元素移動到了不在任何XML元素內的內容中。在這種情況下,可以用下,面即將定義的參數提交一個代表上述事件的消息。
Sel參數可以包括一個包含當前選擇的對象。在上述例子中,當前選擇與插入點的初始位置415相關。換句話說,可以在Selection對象中傳遞<p>元素的整個內容或該內容的某個子集,如果不是所有內容都被選中的話。由于插入點從XML元素<p>內部移出,OldXMLNode對應于初始位置415存在于其中的特定的<p>元素430。類似地,NewXMLNode對應于插入點移入其中的XML元素,在這種情況下為NULL,因為沒有XML元素包圍著新位置425。最后,Reason參數包括一個標示發生了XML相關的移動動作的標識。
應注意,插入點可以從另外一個方向移動(例如,從新位置425到初始位置415)。在那種情況下,XML環境改變事件仍然被觸發,雖然OldXMLNode將為NULL,同時NewXMLNode將為<p>元素430。其他參數和剛才說明的相同。
熟悉相關技術的人應理解,字處理應用的創建者可以自由地定義哪種類型的XML元素觸發該事件。例如,應用創建者可以決定涉及在他們選擇的某個特殊的命名空間的元素的移動、插入、或刪除動作不觸發該事件,但如果元素來自另一個命名空間,觸發該事件。更確切地,應用創建者可以決定來自代表字處理應用的本地XML大綱命名空間、引起事件被觸發的元素對狀態改變探測器是完全不可見的,并且只有來自非本地命名空間的元素才被事件發生器250“監視”。
圖5是XML文檔202在進行了進一步的編輯之后的另一個顯示。首先,用戶可以在文本“Professor Smith”周圍插入一個新的XML元素,從而移動它到<resume>元素407中。基于這些情況,XML相關的插入事件被XML文檔編輯器201提出。因此,事件的Sel參數包括一Selection對象,代表新的XML元素510的內容,文本“Professor Smith”。由于該文本在插入動作之前未包括在某個XML元素之內,OldXMLNode為NULL。NewXMLNode標識新的元素<references>元素510。最后,Reason參數包括一個對應于插入事件的標識符。
在這個例子中,在用戶插入<references>元素510之后,插入點被從<references>元素510移動到<objective>元素512,從而導致另一個移動事件被觸發。然而,與上述移動事件不同,當前的移動事件對應于從一個XML元素(<references>元素510)移動插入點到另一個XML元素(<objective>元素512)。在這種情況下,事件的Sel參數對應于<references>元素510的內容,文本“Professor Smith”。OldXMLNode參數標識<objective>元素512。最后,Reason參數標識事件的類型為一個XML相關的移動事件。
圖6是XML文檔202在進行了更進一步的編輯之后的另一個顯示。在這種情況下,用戶從文本“Reward employment”周圍刪除了<objective>元素,導致一個XML相關的刪除事件被觸發。以類似于上述事件的方式,刪除事件包括標識文本“Rewarding employment”610為當前選擇的Sel參數,<objective>元素512(圖5)作為OldXMLNode,<resume>元素407作為NewXMLNode。最后Reason參數包括標示進行了一個XML相關的刪除動作的標志。
總之,本發明使得能夠重載單個事件通知來指示由XML編輯環境中的多種XML相關動作所導致的狀態改變的發生。單個事件通知用于多種動作簡化了開發附加軟件應用來利用由XML編輯環境顯露的功能的工作。上面的詳細說明,例子和數據提供了對制造和使用本發明的組成的完整說明。因為可以做出本發明的很多實施例而不偏離本發明的精神和范圍,本發明存于所附的權利要求中。
權利要求
1.一種計算機可讀媒體,由用于從第一程序向第二程序提交一消息的數據結構編碼,其特征在于,所述數據結構包括一標識符字段,標示所述數據結構代表著與對XML文檔進行的動作相關的事件的發生;第一參數字段,標識與事件相關的第一XML節點;第二參數字段,標識與事件相關的第二XML節點;第三參數字段,標識所發生的事件的類型,該事件的類型是從多種事件的類型中選出的一種。
2.如權利要求1所述的計算機可讀媒體,其特征在于,所述數據結構進一步包括第四參數字段,標識在XML文檔內的當前選擇。
3.如權利要求2所述的計算機可讀媒體,其特征在于,所述第一XML節點對應于當動作開始執行時當前選擇存在于其中的一個節點。
4.如權利要求2所述的計算機可讀媒體,其特征在于,所述第二XML節點對應于在動作執行后當前選擇將存在于其中的一個節點。
5.如權利要求2所述的計算機可讀媒體,其特征在于,所述第一XML節點對應于當動作開始執行時當前選擇存在于其中的一個節點,所述第二XML節點對應于在動作執行后當前選擇將存在于其中的一個節點。
6.如權利要求1所述的計算機可讀媒體,其特征在于,所述多種事件的類型包括XML相關的移動動作、XML相關的插入動作,及XML相關的刪除動作。
7.如權利要求6所述的計算機可讀媒體,其特征在于,所述XML相關的移動動作包括把當前選擇從第一XML節點移動到第二XML節點。
8.如權利要求6所述的計算機可讀媒體,其特征在于,所述XML相關的移動動作包括把當前選擇從沒有相關XML節點的內容上移動到第二XML節點。
9.如權利要求6所述的計算機可讀媒體,其特征在于,所述XML相關的移動動作包括把當前選擇從第一XML節點移動到沒有相關XML節點的內容。
10.如權利要求6所述的計算機可讀媒體,其特征在于,所述XML相關的插入動作包括使當前選擇落入所述第二XML節點之內。
11.如權利要求6所述的計算機可讀媒體,其特征在于,所述XML相關的刪除動作包括刪除第一XML節點從而使得原先在第一XML節點內的當前選擇變到第二XML節點內。
12.如權利要求1所述的計算機可讀媒體,其特征在于,所述數據結構被配置為當動作開始執行時由所述第一程序傳遞到所述第二程序。
13.一種帶計算機可執行組件的計算機可讀媒體,其特征在于,所述媒體包括第一程序,用于編輯包含XML節點的文檔至少多個XML節點包含內容,所述第一程序被配置為提交單個通知以響應由所述第一程序執行的動作,該動作是從多種類型的動作中標識出的一個;及第二程序,被配置為接收單個事件通知并用事件處理程序處理所述單個事件通知,該事件處理程序包括用來對多種類型的動作中的至少一種做出響應的計算機可執行指令。
14.如權利要求13所述的計算機可讀媒體,其特征在于,所述事件處理程序包括計算機可讀指令,用來響應多種類型的動作中的每一種。
15.如權利要求13所述的計算機可讀媒體,其特征在于,所述多種類型的動作包括XML相關的移動動作,該移動動作對應于把當前選擇從不和XML節點相關的內容移動到XML節點內。
16.如權利要求13所述的計算機可讀媒體,其特征在于,所述多種類型的動作包括XML相關的移動動作,對應于從一XML節點內移動當前選擇到不和XML節點相關的內容。
17.如權利要求13所述的計算機可讀媒體,其特征在于,所述多種類型的動作包括XML相關的移動動作,對應于從一XML節點內移動當前選擇到另一XML節點內。
18.如權利要求13所述的計算機可讀媒體,其特征在于,所述多種類型的動作包括XML相關的插入動作,對應于在文檔的內容周圍插入XML節點。
19.如權利要求13所述的計算機可讀媒體,其特征在于,所述多種類型的動作包括XML相關的刪除動作,對應于從文檔中刪除XML節點。
20.如權利要求13所述的計算機可讀媒體,其特征在于,所述多種類型的動作包括一個XML相關的移動動作、一個XML相關的插入動作,及一個XML相關的刪除動作。
21.一種帶計算機可執行組件的計算機可讀媒體,其特征在于,所述媒體包括一種消息裝置,用來標示在XML文檔編輯器中有事件的發生,所述消息裝制包括多個參數,第一參數標識第一XML節點,第二參數標識第二XML節點,第三參數標識所發生的事件的類型,所述事件的類型是從多種事件的類型中選出的一種。
22.如權利要求21所述的計算機可讀媒體,其特征在于,所述多種事件的類型包括XML相關的移動事件,XML相關的插入事件,及XML相關的刪除事件。
23.如權利要求22所述的計算機可讀媒體,其特征在于,所述XML相關的移動事件包括把選擇從第一標識XML節點移動到第二標識XML節點。
24.如權利要求23所述的計算機可讀媒體,其特征在于,所述第一標識XML節點或第二標識XML節點中的任意一個包括一NULL節點。
25.一種計算機可讀媒體,它有用于從第一程序向第二個程序提交消息的計算機可執行指令,其特征在于,所述媒體包括從第一個程序向第二個程序提交一事件通知,該通知包括多個參數,事件通知指示出相關于第一程序有XML相關的動作發生,第一參數標識和XML相關的動作相關聯的第一XML節點,第二參數標識和XML相關的動作相關聯的第二XML節點,及第三參數標識對應于該XML相關的動作的多種類型的動作中的一種。
26.一種計算機可讀媒體,包含用于從第一程序向第二程序提交消息的計算機可執行指令,其特征在于,所述媒體包括由第二程序從第一程序接收一事件通知,該通知包括多個參數,事件通知指示出相關于第一程序有一XML相關的動作發生,第一參數標識和XML相關的動作相關聯的第一XML節點,第二參數標識和XML相關的動作相關聯的第二XML節點,及第三個參數標識對應于該XML相關的動作的多種類型的動作中的一種。
全文摘要
本發明涉及一種機制,從第一程序向第二程序提交事件通知消息以標示在第一程序中有動作發生,其中事件通知消息包括參數,標示該動作是一組可能的動作中的一個。更確切地,在配置為編輯用可擴充標記語言XML創建的文檔的應用中,一個XML相關的動作的發生引發事件通知消息的提交。XML相關的動作可以是XML相關的移動動作、XML相關的插入動作、或XML相關的刪除動作。通過這種方式,當編輯XML文檔時,單個事件通知消息可以被用來標示三種不同類型動作的發生。
文檔編號G06F17/21GK1474271SQ0314524
公開日2004年2月11日 申請日期2003年6月25日 優先權日2002年6月25日
發明者M·薩維茨基, B·M·瓊斯, J·C·雷納, E·W·撒普, M 薩維茨基, 撒普, 瓊斯, 雷納 申請人:微軟公司