专利名称:向程序提交消息的系统和方法
背景技术:
软件应用逐渐变得越来越复杂和强大。曾经是简单的文本编辑器的应用现在可能变成了有数不清丰富特性的复杂的字处理器,例如创建网页或编辑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 萨维茨基, 撒普, 琼斯, 雷纳 申请人:微软公司