提高计算机软件应用程序粘贴功能的方法和系统的制作方法

文档序号:6385012阅读:213来源:国知局
专利名称:提高计算机软件应用程序粘贴功能的方法和系统的制作方法
技术领域
本发明涉及提高计算机软件应用程序现有的粘贴功能的方法和系统,用于将数据粘贴到计算机生成的文档。
(2)背景技术计算机软件应用程序使用户能够创建各种文档,协助他们工作、学习和休闲。比如,字处理应用程序使用户能够创建信件、文章、书籍、备忘录、等等。电子表格应用程序使用户能够存储、操纵、打印、显示各种包括文字与数字的数据。这些应用程序有着许多众所周知的长处包括丰富的编辑、格式、打印和计算功能。
众多软件应用程序拥有的一个普通而且有用的功能是从一个给定的文档、电子表格、幻灯片或其他计算机生成的文档中剪切或拷贝数据随后进行一个粘贴操作,将剪切或拷贝的数据粘贴到文档中想要的位置的功能。通常,用户从第一个或称为供应用程序,如字处理应用程序,剪切或拷贝包括文本、图像或包括文字与数字的数据,然后使用第二或称为消费应用程序,如电子表格应用程序来粘贴这些剪切或拷贝的数据。比如,为了将一组数字粘贴到字处理应用程序,用户可能想要从电子表格应用程序文档中剪切或拷贝这些数字,而在所述字文档中,用户正在准备信件发给客户或同事。典型地,在剪切或拷贝时,数据缓存在某个存储位置中以备在粘贴操作过程中进行后续的粘贴。
当从供应应用程序剪切或拷贝下数据,然后通过第二消费应用程序粘贴到另一个不同的文档而供应应用程序和消费应用程序是两个不同的软件应用程序时,通常第一应用程序提供的许多特性,即使不是全部,包括格式特性在内,都因为第二或消费应用程序不包含提供包括格式在内的专门特性所需的功能而在粘贴过程中丢失了。比如,用户从电子表格应用程序文档拷贝了一组数据,然后粘贴到字处理文档中,粘贴到该字文档的数据可能就不带任何电子表格应用程序中存在的格式。即,如果电子表格应用程序中的数据显示成多行多列,那粘贴到字处理应用程序的数据可能只是简单的没有任何格式的数字序列。
为了满足对软件应用程序更高的功能要求,软件开发者已经开始使用标记语言,诸如可扩展标记语言,以使用户能够注释软件应用程序文档,给文档提供除了负责创建该文档或与之相关的可视格式的软件应用程序的常规功能之外的有用结构。比如,用户可能想通过自己的字处理应用程序创建一模板文档用来准备给出版商写稿。通过将结构应用到文档,收到文档的出版商可以通过处理文档来使用该文档结构所定义的数据。不幸的是,在从含有结构注释的文档剪切或拷贝数据时,这些结构注释通常都会在粘贴操作中丢失,特别是在由一个不同的消费应用程序进行该项粘贴操作的时候。即使消费应用程序被设计成能够理解和使用标记语言,定义标记语言结构注释的模式或规则,供应应用程序用的与消费应用程序用的可能也会有极大的不同。
本发明正是基于上述和其他方面的考虑而诞生的。
(3)发明内容发明概述本发明提供用于提高计算机软件应用程序粘贴功能的方法和系统,用于粘贴数据到计算机生成的文档。如通常所述,从第一应用程序选取数据用以粘贴到第二应用程序文档。选择的数据及其相关信息,诸如名字空间列表等一起被存储到一个存储位置。当选择的数据被粘贴到第二即消费应用程序文档时,消费应用程序检查与所选数据关联的可用名字空间列表,看数据的各种不同表示能否能为粘贴应用程序所理解。粘贴应用程序也可查看是否有像可扩展标记语言(XSL)转换文件这样的资源,用于将所选择的数据转换成更易被第二或消费应用程序使用的格式。寻找支持可用名字空间的资源的一种方法是由消费应用程序检查名字空间库寻找一可用的资源,用于转换数据给消费应用程序使用。如果找不到资源,名字空间不能被粘贴应用程序作本机理解,则根据默认的粘贴资源将数据粘贴到第二应用程序文档。粘贴应用程序也可以有不考虑名字空间而处理任何类型数据的默认方法。
更具体地,本发明提供一种提高计算机软件应用程序粘贴功能的方法。通过供应应用程序打开第一文档,根据诸如可扩展标记语言(XML)等标记语言将结构应用到该第一文档。也有可能第一应用程序只是用作以一种有意义的方式来显示现存的数据。从第一应用程序选择数据用于粘贴到第二应用程序。所选的数据被存储到一存储位置,与之相关的信息也被存储到该位置,用以向消费应用程序提供所选数据的信息。这些信息主要包括名字空间列表。这些名字空间标识拷贝应用程序用来表示数据的不同方法。一个例子就是带有金融数据的电子表格文档。提供的一个名字空间可能用于描述电子表格,另一个名字空间用于描述金融数据。
经消费应用程序打开第二文档,在消费应用程序中选择粘贴功能以将所选择的数据粘贴到该第二文档。消费应用程序读取与所选数据的相关信息。作为响应,消费应用程序确定是否有一个或多个标识相关数据类型的名字空间能被消费应用程序作本机理解。如果名字空间超过一个,应用程序或者让用户来选择使用哪一个名字空间及相关的资源,或者使用消费应用程序文档中已经存在的最适合该数据的名字空间及相关资源。呈现的选择可能是选择使用哪个名字空间,或对于给定的名字空间使用哪个资源。消费应用程序可能获取一个或多个资源文件,比如与名字空间相关的XSLT转换文件,用于在消费应用程序不能理解该名字空间时粘贴所选数据到第二文档。在消费应用程序选择了一个多多个名字空间中的一个用于粘贴所选的数据到第二文档之后,所选的数据就根据消费应用程序最想要的方法粘贴到第二文档。有时使用的其它资源可能是XSLT文件,用于将所选的数据转换成第二或消费应用程序可使用的数据类型或格式。
依照本发明的一个方面,在为一个或多个名字空间获得资源用于粘贴数据之前,先要确定可用的名字空间列表中是否包含消费应用程序可理解的一个或多个名字空间中想要的一个。如果可用的名字空间列表包含消费应用程序可理解的一个或多个名字空间中想要的一个,则选择该想要的名字空间,并将它提供给消费应用程序。如果该可用的名字空间列表不包含消费应用程序可理解的一个或多个名字空间中想要的一个,则需要确定一名字空间库中是否包含能够帮助消费应用程序理解供其使用的一个或多个名字空间的资源。如果名字空间库中包含一个能够帮助消费应用程序理解供其使用的一个或多个名字空间的资源,则从名字空间库中选择该想要的资源,并将它提供给消费应用程序帮助它使用该一个或多个名字空间。
与所选数据相关的信息被保存到一存储位置以提供给消费应用程序,它可包括一个指示,用来说明与所选数据相关的一个或多个名字空间。对于和所选数据相关的每一个名字空间,与所选数据相关的信息包括任何相关的名字空间的信息,包括该名字空间的版本标识符、用于定位名字空间的统一资源标识符和该名字空间的文件大小。
根据本发明的另一方面,提供一种方法用于从一拷贝应用程序粘贴数据到一个消费应用程序。第一可扩展标记语言(XML)元素被应用到第一文档的区域的开头。该区域被选择用于拷贝应用程序的拷贝和消费应用程序的粘贴。第二XML元素被应用到所选区域的末尾。信息在与选择区域相关的首部(header)中提供。该信息包括可用XML名字空间的身份标识和对应于每个可用名字空间的指向剪贴板格式标识的指针。在文件首部提供关于每个可用名字空间文件大小的信息。剪贴板上提供一个或多个可用的名字空间,使消费应用程序能够从中选择,用于粘贴从拷贝应用程序得到的数据。
这些和其它的特征和优点构成了本发明的特征,将在阅读、浏览下面的详细说明和相关图表后更加清楚。可以理解的是,上述的概要描述和接下来的详细描述对本发明只是示列和解释说明,而不是对权利要求书中的本发明的限制。
(4)


图1所示是提供本发明的示例操作环境的计算机、相关外设和网络设备的块图。
图2所示是一简化的块图,说明了供应应用程序和消费应用程序之间的交互,其中数据由供应应用程序进行剪切或拷贝,由消费应用程进行粘帖。
图3所示是一简化的块图,说明了依照本发明的示例实施例,向用户提供增强的粘帖功能的用户接口。
图4所示是软件应用程序粘帖和消费从供应应用程序剪切或拷贝得到的数据的屏幕显示。
图5和图6所示是依照本发明实施例用于提高消费应用程序粘帖功能的方法的流程图。
(5)具体实施方式
以下参照上述的附图们对本发明实施例进行描述,在所有的几幅图中类似的数字标示类似的部分或部件。本发明涉及提高计算机软件应用程序粘贴功能的方法和系统,用于粘贴数据到计算机生成的文档。用户从诸如电子表格的第一应用程序选择数据,粘贴到诸如字的第二处理应用程序。粘贴过程可能是以传统的剪切/拷贝和粘贴操作的形式进行,或以拖和放的形式将选择的数据从第一应用程序文档粘贴到第二应用程序文档。依据本发明的实施例,第一或供应应用程序以可扩展标记语言(XML)表示(representation)的形式将选择的数据写入到一存储位置,如剪贴板。数据写入到存储位置的格式包括所选择的数据和与之相关的一个或多个名字空间的信息。与所选数据相关的可用名字空间可标识出与所选数据相关的数据格式化的类型。例如,标识出的可用名字空间可包括超文本标记语言(HTML)、简历文档或字处理器XML。HTML名字空间标识可标识所述数据能被组织成HTML。简历文档名字空间可标识所述数据能够依照简历XML模式文件进行组织。字处理器XML名字空间可以标识所述数据能够依照XML的字处理器版本格式化。当然,这些名字空间只是可与所选数据相关联的众多类型名字空间的样例。
当通过选择第二程序的粘贴功能或通过“放”数据的方法将所选的数据粘贴到第二应用程序文档时,第二或消费应用程序从所选数据提供的信息中检测出格式化为XML的数据正在被粘贴。基于所选数据提供的信息,消费应用程序检查与将要粘贴的数据相关的所有可用名字空间。例如,上述的例子中,消费应用程序检测出所选数据已经关联了HTML、简历文档或字处理器XML的名字空间。相应地,消费应用程序查看可用名字空间列表寻找资源来帮助粘贴选择的数据。例如,如果供应应用程序是电子表格应用程序,消费应用程序查看可用名字空间列表寻找XSLT文件,用于将电子表格XML格式的数据转换成消费应用程序可用、可消费的格式。如果消费应用程序是字处理器,那么它将查找XSLT转换文件,将电子表格数据转换成字处理应用程序可消费的数据。例如,如果在电子表格应用程序中数据被组织成两行三列的形式,消费应用程序使用的XSLT转换文件会将这些数据转换成字处理应用程序可消费的数据以保持它两行三列的格式。如果没有本发明的功能,数据会依照消费应用程序默认的粘贴功能进行粘贴,因此可能失去了供应应用程序的格式信息。结果,依据本例,相对于两行三列的格式,该数据会被这样粘贴到字处理应用程序,即作为原始数据在工作区中从左到右地排列。
如果对于消费应用程序标识了多个可用名字空间,那么消费应用程序可从中选择最有可能向其提供想要的粘贴功能的名字空间。或者,向消费应用程序的用户提供用户接口,使用户能够在应用程序可理解的这些可用名字空间的可用转换文件中进行选择。如果消费应用程序在可用名字空间列表中没有找到资源,它将去查找名字空间库寻找可用资源,以帮助消费应用程序在粘帖之前进行数据的转换。如果名字空间库中存在多个资源,将提供用户以接口,使用户能够在可用的资源中进行选择。如果在可用名字空间列表或可用名字空间库中都没有找到可用的资源,那么消费应用程序会依照默认的功能来粘帖数据,如上所述。
操作环境图1和接下来的讨论试图对可能实现本发明的适合的计算环境做一个简单概要的描述。虽然本发明被描述成在通常的运行于个人电脑操作系统上的应用程序上下文环境中,但本领域的熟练技术人员都知道到本发明也可结合其它的程序模块一起来实现。通常,程序模块包括例程、程序、组件、数据结构等等,它们运行特殊的任务或实现特殊的抽象数据类型。而且,本领域内的熟练技术人员将理解,本发明可用其它计算机系统配置实施,包括手持装置、多处理器系统、基于微处理器或可编程的消费者电子器件、手机、小型机、大型机等。本发明也可用于分布式计算环境,在此环境下,依靠通过通信网络连接的远程处理装置来执行任务。在分布式计算环境中,在本地和远程的内存存储装置中都可放置程序模块。
参照图1,实现本发明的一个示例系统包括常规的个人电脑20,具有处理单元21,系统存储器22,连接系统存储器和处理单元21的系统总线23。系统存储器22包括ROM 24和RAM 25。基本输入/输出系统26(BIOS)存储在ROM 24中,所述基本输入/输出系统包括例如在启动时帮助在个人电脑的元件之间进行信息传递的基本例程。个人电脑20还包括如硬盘驱动器27和磁盘驱动器28来读写可移动硬盘29、光盘驱动器30来读取CD-ROM盘31或读写其它光盘介质。硬盘驱动器27、磁盘28和光盘驱动器30各自通过硬盘驱动接口32、磁盘驱动接口33、光盘驱动接口34连接到系统总线23。驱动器和相关的计算机可读介质为个人电脑20提供了非易失的存储。虽然上述的计算机可读介质指的是硬盘、可移动磁盘和CD-ROM盘,但本领域的熟练技术人员将可以理解其它类型的计算机可读介质,如盒式磁带、闪存卡、数字视频光盘、Brnoulli磁带(cartridges)等等,也可用在示例的操作环境中。
许多程序模块可存储在驱动器和RAM 25中,包括操作系统35、一个或多个应用程序200、220、程序数据,诸如可用名字空间列表225和其它程序模块(未示出)。
用户可通过键盘40和定点(pointer)装置,如鼠标输入命令或信息到个人电脑。其它输入装置(未示出)包括麦克风、操纵杆、游戏手柄、卫星电视天线、扫描仪等等。这些和其它的输入装置通常经连接到系统总线的串行端口46连接到处理单元21,但也可经其它接口进行连接,如游戏端口或通用串行总线。监视器47或其它类型的显示设备同样经接口连接到系统总线23,如视频适配器48。除了监视器,个人电脑通常包括其它外围输出装置(未示出),如扬声器或打印机。
个人电脑20可使用到一个或多个远程计算机如远程计算机49的逻辑连接而在网络化环境下进行操作。远程计算机49可以是服务器、路由器、对等设备或其它普通的网络节点,虽然图1中只示出了存储设备50,但通常它包括所述的个人电脑20的许多个或所有的元件。服务器49和存储器50保存应用程序,如应用程序20,和数据存储,如名字空间库230。图1描述的逻辑连接包括局域网51和广域网52。这样的网络环境在办公室、企业范围的计算机网络、内联网和因特网中都很常见。
在LAN网络环境中使用时,个人电脑20通过网络接口53连接到LAN 51。在WAN网络环境中使用时,个人电脑20通常包括调制解调器54或其它在WAN 52如因特网上建立通信的装置。调制解调器54可为内置或外置的,它通过串行端口接口46连接到系统总线23。在网络环境中,所述的关于个人电脑20的程序模块或其中的部分模块存储在远程存储装置中。可以理解的是,所示的网络连接是示例,也可能其它方法来建立通信连接。
操作图2所示是一简化的块图,说明了供应应用程序和消费应用程序之间的交互,其中数据通过供应应用程序进行剪切或拷贝,通过消费应用程进行粘贴。如图2所示,示出了供应应用程序200,剪切或拷贝的数据在其中保存以供消费应用程序使用。供应应用程序可以是包括字处理、电子表格、幻灯片展示等应用程序在内的任何能够在其中剪切或拷贝数据并用于后续的粘贴的软件应用程序。一旦用户使用供应应用程序200来选择数据,进行剪切或拷贝的操作205,该操作包括从供应应用程序剪切或拷贝所选的数据。一旦剪切或拷贝了选择的数据,那么该数据就被送到存储位置210,诸如图2所示的粘贴板。存储位置210保存剪切或拷贝的数据,用于根据用户的选择由原来的供应应用程序200或消费应用程序220进行后续的粘贴。
依照本发明的实施例,剪贴板210是一个视窗操作系统所维护的存储资源的示例。剪贴板存储剪切或拷贝的数据的副本,后续的粘贴操作从剪贴板210传递数据到消费程序。正如本领域熟练技术人员所熟道的,倘若第二或消费应用程序220能够读取供应应用程序200生成的数据,则如上所述,剪贴板210可使数据从一个应用程序传递到另一个应用程序。为了确保消费应用程序能够读取、理解和使用供应应用程序200剪切或拷贝的数据,通常这些剪切或拷贝的数据以一种通用的格式,如超文本标记语言的格式保存到剪贴板210,以便在这种格式下数据最有可能为大量的不同种类的消费应用程序220所消费。其它类型的格式包括丰富文本格式,或者数据被保存为非格式化的数据。在第一应用程序进行拷贝时,所有这些格式被告知(advertised)剪贴板。然后,由粘贴应用程序决定它将要求使用哪个可用的格式。
一旦启动消费应用程序220用于粘贴从供应应用程序200剪切或拷贝的数据,选择粘贴操作215以粘贴剪切或拷贝的数据到消费应用程序文档中想要的位置。必须理解,剪切/拷贝操作205和粘贴操作215可能以拖放操作的形式结合起来,从供应应用程序文档拖出所选的数据放到消费应用程序。如果剪切或拷贝的数据依照一定数量的通用格式类型经供应应用程序进行了格式化处理,如上所述,则消费应用程序如所料想能够粘贴剪切或拷贝的数据,但是供应应用程序提供给数据的许多特征,包括特殊的格式,经常会丢失。例如,如果用户在字处理供应应用程序200中剪切或拷贝表格形式的数据,之后将数据粘贴到电子表格消费应用程序220,原先表格形式的数据简单地插入到电子表格内的单个单元,致使电子表格消费应用程序220不能如用户所愿对该数据进行操作。
随着可扩展标记语言(XML)等标记语言的出现,通常供应应用程序200准备的文档已经使用标记语言的结构进行了注释,以便给文档有用的结构用于管理、呈现和操纵包含在文档中的数据。正如本领域熟练技术人员所熟知的,不同的软件应用程序包含有不同的“本机”程序用于读取、理解和使用诸如XML的标记语言。即,相对于消费应用程序220,供应应用程序200可能被设计成提供不同的或较多的XML结构和功能。因此,如果从一个供应应用程序200创建的XML格式的文档剪切或拷贝数据用于另一个不同的消费应用程序的消费,多数关联于该数据XML格式的结构和功能在消费应用程序粘贴数据到由消费应用程序所创建和操作的文档中时会丢失。
以下是一个可应用于由字处理供应应用程序200用户书写的文章上的XML结构的实例。
XML结构实例<article>
<title>EXTRA EXTRA</title>
<body>
<summary>Today in New York...</summary>
<main>Today in New York...</main>
</body>
***</article>
如XML结构实例所示,例举了许多XML元素来注释该“article”文档。例如,在文档的开始和末尾有<article>标签来定义该文档为“article”文档,其它多种元素如<title>和<body>包含在“article”结构内。在<body>元素内是它的两个子元素<summary>和<main>。该文档的XML注释使得用户能够定义文档的部分为特定类型的数据和数据结构。例如,用户可定义在<title>元素内文档的部为包含“title”类的数据并具有“title”指定许可的结构。
为了给文档提供一套语法和数据类型的规则以控制给定文档诸如上面例举的“article”文档所可能包含的数据类型和数据结构,XML模式被附加或关联到该文档用以提供控制每个XML元素和标签的规则,而使用这些元素和标签用户可以注释给定的文档。例如,“article”文档可有一个附加或关联的模式,诸如“article-schema.xsd”用于提供所容许的XML元素集,诸如<article>元素、<title>元素、<body>元素等等。该模式包括控制次序的规则,根据该次序将元素应用于文档,还包括与应用到该文档的个别元素相关的特殊规则。例如,附加或关联到“article”文档的模式可以规定与特定元素,如<date>元素(未示出)相关联的数据必须包括一个日元素,随后是一个月h元素,再后是一个年元素。另外,该模式可以要求<date>元素必须紧靠在<title>元素之前。
如本领域熟练技术人员所理解的,XML模式的开发者确定XML元素的名字和这些元素所容许的相关数据类型和数据结构。于是,所有根据给定的模式用XML结构来注释的文档的用户都可使用XML结构中包含的数据,而不需要考虑该文档的总体类型和结构。例如,如果上述的“article”文档被送到该文档的出版商,该出版商可能会开发出分析该文档的软件应用程序,以便在文档中来查找特定数据类型供出版商使用。例如,出版商可能只想发布文章的标题作为整篇文章将来出版的一则广告。标识XML的方法是通过名字空间。名字空间提供了一个标识(ID),从而XML的任何消费者将会知道他们消费的是何种类型的XML。通过查看名字空间,消费应用程序将会知道创建该XML文件使用了哪个模式。使用文档中指明的名字空间,出版商将知道与XML元素<title>相关的数据是依照控制文档的模式被准备的。因此,出版商可开发软件应用程序或XSLT转换文件用于定位<title>元素并提取相关的数据,用于插入到出版商自己的文档(包括用某种特殊的方法来格式化文档)作为整篇文章将来出版的一则广告。
接着这个例子,许多不同的出版商可订阅同样的名字空间,以记录与“article”文档相关的规则,以便每个出版商可从文档的作者接收到这个“article”文档,并且依照组织该数据的XML元素来使用包含在文档中的数据。即,第一出版社可能只对包含在<summary>元素中的数据感兴趣,而第二出版商只对抽取<title>元素中的数据感兴趣。依照XML结构,通过使用自己的软件应用程序或XSLT转换文件来定位想要的元素,则每个出版商可不考虑文档的其它方面或元素而抽取想要的数据。之所以能够做到这一点,是因为文档的每个用户遵循着添加到或关联到该文档的名字空间中指定的数据类型和数据结构的规则。
如果消费应用程序确实找到了可用于可用名字空间之一的XSLT转换文件,则所选的数据经过XSLT转换文件的转换,消费应用程序将该结果作为粘贴功能的一部分来接收。或许有这种情况,即消费应用程序注意到了转换文件,它消费可用名字空间,自己对该数据进行转换。例如,如上所述,如果供应应用程序是一电子表格应用程序,所选的数据是两行三列的格式,那么用于转换电子表格数据供字处理应用程序消费的XSLT转换文件能够,例如使该数据得以转换,以便字处理应用程序能粘贴成两列,每列三项,而不是没有格式的原数据或电子表格所使用的表格形式。应当理解,第一或供应应用程序文档可根据传统的XML模式进行标记。例如,数据可依照“股票价格模式”(“stock price schema”)进行标记。在这种情况下,如果从电子表格应用程序拷贝了选择的数据粘贴到字处理应用程序,例如,在将选择的数据写入内存用于粘贴到字处理应用程序时,“股票价格模式”相关的名字空间和电子表格可视布局相关的名字空间都将被关联到所选的数据。
在识别出“股票价格模式”后,消费应用程序参考可用资源列表,探知所选数据的每个单元格是公司股票的符号,对于每个公司有公司的相关描述。因此,消费应用程序将在可用名字空间列表或名字空间库中查找诸如XSLT转换文件的资源来指导消费应用程序怎样粘贴标记的数据。提供给消费应用程序用户的用户接口可提供选项“粘贴公司概况”。如果用户选择了“粘贴公司概况”,与粘贴功能相关的XSLT转换文件可使消费应用程序能够粘贴从供应应用程序选择得到的公司股票符号,同时粘贴经用户选择的粘贴功能从与所选数据关联的可用名字空间中引入公司概况。这种解决方法优于之前的替换方案,该方案是选择电子表格名字空间,采用与电子表格中相同的形式来粘贴数据。
如熟悉可扩展标记语言的人所了解,XML是通过将元素和属性名称关联到由统一资源标识符所标识的名字空间的方法来限定XML文档所使用的元素和属性名称。XML名字空间是名字集,由统一资源标识符参照标识,名字作为元素的类型和属性名称用于XML文档。单个XML文档可包含为多软件模块定义和使用的元素和属性。例如,依照本发明的实施例,单个XML文档,诸如字处理文档可包含为多软件模块定义和使用的元素和属性。例如,一个字处理文档可有为HTML处理模块、字处理应用程序XML处理模块定义和使用的元素和属性,或者该文档可包含为与其关联的一个或多个模式文件定义、使用或关联的元素和属性。例如,将元素和属性关联到字处理文档使其与一个模式文件相关联,所述模式文件与简历、法律文件等等文档关联。因此,单一文档,诸如典型的字处理文档可以有一个名字空间标识与每个不同软件模块关联的元素类型和属性名称,所述模块可消费或使用从文档得到的数据。接着上面列出的例子,字处理文档可包含一个与HTML处理模块关联的名字空间、一个与字处理XML处理模块关联的名字空间和一个与简历或法律文档模式文件关联的名字空间。
依照本发明的实施例,当选择了数据用于粘贴到第二个应用程序文档时,与之相关的标识名字空间的信息被提供给所选择的数据,用于通知第二或消费应用程序与数据相关的名字空间,以便第二或消费应用程序可根据其编程语言对数据关联的元素类型和/或属性进行操作。例如,如果第一应用程序是一个字处理应用程序,第二应用程序是一个电子表格应用程序,电子表格应用程序可使用由数据相关的名字空间标识的信息来确定通过使用与元素类型和属性关联的XSLT转换文件所选的数据将被最优地粘贴到第二应用程序文档,所述元素类型和属性与一个给定的名字空间相关。例如,如果一个给定的名字空间标识了与包含在所选数据中的操纵数据相关的元素类型和属性,而其它名字空间关联用于显示所选的数据,第二应用程序即本例中的电子表格应用程序将选择与操纵所选数据相关的名字空间,而不是与显示相关的名字空间。
在消费应用程序检查了从第一应用程序文档选择的XML数据相关的名字空间之后,依照本发明的实施例,为了得到最优消费,消费应用程序查看可用名字空间列表或名字空间库,寻找消费应用程序可用的资源用于转换所选的数据。例如,如果第二程序是一个试图粘贴从字处理应用程序选择的数据的电子表格应用程序,则该第二应用程序将查看可用名字空间列表或名字空间库以获取一个可被第二应用程序使用的XSLT转换文件,用于转换字处理器的XML数据到电子表格的XML数据以供电子表格应用程序作最优消费。如本领域熟练技术人员所了解,可扩展样式表语言(XSL)包括用于说明数据格式的XML词汇表。XML用XSL信息文件来指定XML文档的样式,描述文档是怎样从一个XML文档转换成另一个XML文档或其它类型的文档如HTML文档的。
仍旧参照图2,名字空间可被添加到供应应用程序准备的文档,或被维持在该文档可访问的另外一个位置,如名字空间库230中。为定位和/或标识该名字空间,文档可包含一个文件路径指针或唯一名字空间标识符(例如,统一资源标示符或统一资源名称)。有关名字空间库230的详细描述,可参见2002年6月27日申请的题为“System and method for providing namespace relatedinformation”的美国专利申请,序列号为10/184,190,在此将其全文作为参照引用。有关从名字空间库230下载一个名字空间供供应应用程序200和消费应用程序220使用的方法的详细描述,可参见2002年5月申请的题为“Mechanism doe Downloading Software Components from a Remote Applicationfor Use by a Local Software Application”的美国专利申请,序列号为10/164,260,在此将其全文作为参照引用。
一旦用户下载或通过其它方式得到一个名字空间及其相关的用户文档信息,该名字空间可被装载到一个包括该名字空间及其资源,以及其它已经装载的名字空间的名字空间列表中。该列表225,由用户计算机20维持或用户可通过分布式计算环境从远程位置,如服务器49进行访问。可用名字空间列表包括与供应应用程序中数据相关的名字空间,该名字空间包括使消费应用程序能够定位和得到资源诸如用于帮助消费应用程序转换数据供其消费的XSLT转换文件的信息。
考虑用户使用字处理供应应用程序200剪切或拷贝表格式数据的实例。在剪切或拷贝数据前,依照供应应用程序200的本机XML编程语言,用XML注释来组织数据。如果通过粘贴操作215,消费应用程序220要求粘贴从剪贴板210剪切或拷贝的数据,则消费应用程序220将访问可用名字空间列表225查看是否有可用的名字空间或对应于其中一个名字空间是否有合适的XSLT转换文件,用于增强消费应用程序220的本机XML的编程,以便消费应用程序220以与在供应应用程序200中所应用到数据上的同样的格式(如表格的形式)粘贴从字处理供应程序200中剪切或拷贝的数据。例如,在可用列表225中找到诸如“wordprocessor-to-spreadshheet-schema.xsl”这样的资源文件(该例中是XSLT转换文件)供消费应用程序将可用的字处理器名字空间转换到被其理解的电子表格名字空间。因此,当消费应用程序得到附加XSLT转换文件,消费应用程序的本机XML编程得到增强,使得消费应用程序(如,电子表格应用程序)现在能够依照从可用名字空间列表得到的名字空间转换来使用从供应应用程序得到的数据。即,为了处理从供应应用程序传来的数据,通过从可用名字空间列表得到XML名字空间,消费应用程序接收以与供应应用程序创建和处理该数据同样的方式处理从供应应用程序接收到的数据而所需要的语法和数据规则。
依照本发明的实施例,如果依照一个给定的XML名字空间使用供应应用程序来组织数据,用户经由消费应用程序依照一个选定的第三方XSLT转换文件可将剪切或拷贝的数据粘贴到该消费应用程序。例如,消费应用程序220的一个用户接收到从上述“article”文档剪切的数据,消费应用程序220的用户可在消费应用程序中查看可用名字空间列表的资源以确定是否有与多种出版商相关联的转换文件可用于依照一特定出版商的要求来组织该文档。然后,该消费应用程序220的用户在可用名字空间列表225的资源中查找能够使消费应用程序220依照想要的名字空间来使用该数据的转换文件。如果想要的资源不在可用名字空间列表225中,用户可查看本机或远程的名字空间库230来寻找所提供的名字空间的附加资源供消费应用程序使用以对从供应应用程序200得到的数据加以利用。
图3所示是一简化的块图,说明了依照本发明的示例实施例向用户提供增强的粘贴功能的用户接口。一旦消费应用程序220的用户选择了消费应用程序220的粘贴操作,可以向用户提供多种粘贴选项。例如,用户可选择简单粘贴操作将从供应应用程序剪切或拷贝的数据依照默认的格式,如HTML格式粘贴到消费应用程序正在使用的文档上。如果想要依照本发明实施例的增强的粘贴功能,用户可选择备用粘贴功能,如图3示出的特殊粘贴功能。
特殊粘贴用户接口310表明了用户可用的粘贴选项列表。例如,用户可选择以丰富文本格式(RTF)粘贴数据,或者用户可选择依照HTML格式320粘贴文档。如用户接口310所示,用户可选择依照XML格式325来粘贴数据而不使用本发明增强的粘贴功能。即,消费应用程序220依照其本机XML编程语言粘贴剪切或拷贝的数据。如果用户想要依照某个在此所述的增强功能来粘贴数据,用户可以选择用户接口310的“其它”按钮来启动一个可用模式用户接口350。通过可用模式用户接口350,用户可以选择可用列表355来查看在可用名字空间列表225上哪些名字空间及相关的XSLT文件可用,如以上参照图2所述。因此,特定转换文件的选择向用户正在使用的消费应用程序提供了所选XSLT文件增强的功能,用于对从供应应用程序剪切或拷贝的数据进行操作,如同该数据已被供应应用程序所使用或格式化一样。
如以上参照图3所述,如果可用名字空间列表中没有想要的可用名字空间或其它资源,为了提供从本机或远程名字空间库230可得到的更大的可用数据视图列表,应用程序也可启动名字空间特征370。如果用户通过用户接口370从名字空间库230中选择一个可用视图,则带有可用粘贴功能更新列表的特殊粘贴用户接口310就被提供给用户,包括由所选名字空间激活的粘贴功能。应当理解,某种情况下的视图可能是名字空间及其相关XSLT转换的任何组合。XSLT转换将把可用名字空间转换成一个消费应用程序可理解的本机名字空间。不同的名字空间通常代表了不同类型的数据,不同的XSLT代表对不同类型数据的不同的视图。如图3所示,从名字空间库用户接口370中得到的“出版商A”XSLT 380的选择使得特殊粘贴用户接口310增加(populated with)了对“出版商A”的粘贴功能390。因此,为了使用下载的“出版商A”的转换文件380使消费应用程序220能够依照出版商A提供的XSLT文件粘贴从供应应用程序200得到的数据,用户可选择“出版商A”的粘贴功能390。该转换被标识为与将出版商A名字空间转化成消费应用程序可理解的名字空间相关联。如本领域熟练技术人员所理解,参照图2和图3在此描述的具体的XSLT文件只是样例,任何转换或解释特定的名字空间的不同XSLT文件或其它方法都可提供给消费应用程序220,用以向供应应用程序200中剪切或拷贝的数据提供增强的粘贴功能。
图4所示是软件应用程序粘贴和消费从供应应用程序得到的数据的屏幕显示。屏幕照400显示了一个示例字处理应用程序,用户正在其中制作文档410。依照本发明的实施例,用户已经将数据粘贴到了一张从电子表格供应应用程序200拷贝过来的表内。在粘贴数据到文档410的操作中,呈现一对话框420向用户显示三种不同的数据格式,包括“八月历史”(Eight Month History)格式425,“项目财务总结”(Projected Financial Summary)格式430和“工业分析”(Industrial Breakdown)格式435。应当理解,对话框420是图3所示的对话框310的替换。根据图4中的数据实例,用户已经选择了“八月历史”格式425,该格式是可用名字空间列表225中的一个名字空间的视图,来将从供应应用程序(如电子表格应用程序)得到的数据在在文档410中依照记录了(dictating)“八月历史”的XML结构的XSLT文件进行格式化。应当理解,诸如“eightmonthhistory-shema.xsl”的转换资源可从能使消费应用程序支持XML结构来提供“表1”格式化的可用名字空间列表或名字空间库225得到,如图4所示。假如用户已经从供应应用程序选择了剪切和拷贝关于“工业分析”格式的信息,则用户可选择“工业分析”格式435以便将从供应应用程序剪切或拷贝的数据可依照由供应应用程序对数据进行组织的格式在消费应用程序中进行格式化。
依照本发明的实施例,当有数据以XML的格式剪切或拷贝并保存到剪贴板210用于后续消费应用程序220的粘贴时,可使用三个或更多的剪贴板格式来帮助消费应用程序确定怎样根据本发明的功能来处理剪切或拷贝的数据。这三种格式包括CF_XML_HEADER、CF_XML_VIEW和CF_XML_DATA。如上所述,包括供应应用程序200和消费应用程序220在内的许多应用程序支持由这些应用程序所创建的XML标记结构和文件。但是,如上所述,通常一个应用程序的XML支持和另一个应用程序的XML支持是不兼容的,结果是,在将数据从一个应用程序粘贴到消费应用程序文件时,格式和其它XML相关的特性丢失了。另外,如上所述,XML模式也作为由第三方提供的供多种应用程序使用的工具而存在,但它却不被应用程序的本机XML编程语言支持。
CF_XML_HEADER格式(“HEADER”)包含有关拷贝应用程序有哪个名字空间可用的信息。所有的粘贴应用程序可在CF_XML_HEADER中查看、决定是否有一个或多个名字空间可供其消费。HEADER还标识了可以在哪里找到不同的名字空间,以便在确定想要消费的一个或多个名字空间时,粘贴应用程序可以回来查找得到所要的数据。HEADER可以识别为包含想要的一个或多个名字空间之一处是CF_XML_DATA格式。这些信息对消费应用程序很有用,因为消费应用程序能够确定希望消费哪种格式。这有助于解决性能问题,因为在这些具体格式被要求之前,拷贝应用程序不需要用不同的格式来提供所有的数据。在余下部分的描述中,我们假定有两个格式可用。
第一个粘贴板格式是具有一个或多个名字空间的CF_XML_VIEW,它通常更多的是格式标记而不是数据标记(诸如“SpreadsheetML”;或documentML)。第二个粘贴板格式是含有一个或多个名字空间的CF_XML_DATA,它没有定义格式或视图,而是定义了其下置的数据。通过涉及电子表格程序的一个实例,很容易看出这两个格式的活动。如果该电子表格程序支持XML结构,那么可以想象定义金融数据的名字空间可被应用到该电子表格用以标识不同的单元格及它们同金融数据的相关程度。当电子表格应用程序进行一项拷贝操作时,它将有两种表示数据的方法。其第一种表示方式就如同它出现在电子表格中,这要使用电子表格标记语言。该电子表格标记语言定义在电子表格中看到的一般情况,如格式、布局等等。这些数据将被放置到CF_XML_VIEW剪贴板格式,因为它最好地定义了数据“看上去”怎样。如果粘贴数据的人更多地关心外观和布局,而不是潜在的数据意义,那么这对他们非常的有用。
第二种在剪贴板上表示数据的方法是使用金融数据的名字空间。该名字空间不含涉及数据外观或布局的信息,代之以描述数据本身的意义。该数据将放置到CF_XML_DATA剪贴板格式。因为布局信息的不可得,消费应用程序需要自己确定怎样最好地显示这些数据。例如,在粘贴数据到字处理应用程序的例子里这可能是更想要的格式。原因是金融数据在电子表格中的显示方式可能与字处理应用程序中的显示方式完全不同。字处理应用程序需要查看金融数据名字空间,找到一些视图信息,如XSLT转换,来帮助字处理应用程序以正确的方式来显示数据。
通过将不同的名字空间拆分成不同的剪贴板格式将更加高效,因为消费应用程序可能不需要或不同时需要供应应用程序的“VIEW”或“DATA”格式。即,如果基于用户选择的粘贴功能,消费应用程序确定不需要“VIEW”或“DATA”格式中包含的信息,那么消费应用程序不会从供它使用的这些格式装载数据。如果消费应用程序是和供应应用程序同样类型的程序(如,字处理应用程序),消费应用程序不需要另外的粘贴功能来进行用户选择的这个粘贴操作。CF_XML_HEADER格式包含有关“VIEW”和“DATA”格式的版本和名字空间的信息。HEADER格式也包括有关每个VIEW和DATA格式文件的文件大小的信息。下面是一个与用第三方“Get A Job.com”XML模式进行标记从字处理文件拷贝来的数据片段相关联的CF_XML_HEADER格式实例。
<pre listing-type="program-listing">  <cfhheader cfhVersion=”1.0”xmlnscfh=”urnschemas-micrsoft-  comofficeclipboardheader”>  <cfhdata cfhbytes=”00000001 343”>   <cfhItem cfhname=”D1”cfhbytes=”00000001343”>   <cfhURI cfhvalue=”urnschemas-getajob-comresume”cfhroot=”Yes”   />  </cfhItem>  </cfhdata>  <cfhview cfhbytes=”00000003612”>   <cfhItem cfhname=”V1”cfhbytes=”00000003612”>   <cfhURI cfhvalue=”urnschemas-microsoft-comoffice字.1.0”  cfhroot=”Yes”/>   <cfhURI cfhvalue=”urnschemas-microsoft-comschemaLibrary”/>   <cfhURI cfhvalue=”urnschemas-microsoft-comAML”/>   </cfhItem>  </cfhview>  </cfhheader></pre>CF_XML_VIEW数据格式(“VIEW”)向消费应用程序提供关于供应应用程序的本机XML编程语言的信息。通过读取包含在“VIEW”格式中的数据,消费应用程序依照自身的XML编程语言确定在粘贴操作的过程中,它是否能够完全使用供应应用程序的XML编程语言,而不需要获取额外XSLT转换文件。下面是一个可与从供应应用程序剪切或拷贝的数据相关联的CF_XML_VIEW_HEADER格式的实例。
&lt;cbview xmlnscb=”umschemas-microsoft-comofficeclipboardview”&gt;&lt;!--Root element for the ClipBoard--&gt;
&lt;cbitem cbname=”V0”cbURI=”The URI of the root schema”&gt;
注依照一实施例,这里可以有数据。因为该数据处于cbstart标签之前,消费应用程序知道该数据不是所拷贝的一部分,但它仍然可能提供有关整个来源的性质方面的有趣信息。
&lt;cbstart/&gt;&lt;!---A single tag to be placed inline signifying the start of thefragment--&gt;
注依照一实施例,这里可以有数据。因为该数据处于cbstart标签之后,消费应用程序知道该数据不是所拷贝的一部分。
&lt;cbend/&gt;&lt;!--A single tag to be placed inline signifying the end of thefragment--&gt;
注依照一实施例,这里可以有数据。因为该数据处于cbend标签之前,消费应用程序知道该数据不是所拷贝的一部分,但它仍然可能提供有关整个来源的性质方面的有趣信息。
&lt;/cbitem&gt;
&lt;!--It is possible to place more than one if the pasting app decides to--&gt;
&lt;cbitem cbname=”V1”cbURI=”The URI of th root schema”&gt;
&lt;cbstart/&gt;&lt;!--A single tag to be placed nline signifying the start of thefragment--&gt;
&lt;cbend/&gt;&lt;!--A single tag to be placed inline signifying the end of thefragment--&gt;
&lt;/cbitem&gt;
&lt;/cbview&gt;
CF_XML_DATA数据格式(“DATA”)向消费应用程序提供与供应应用程序中剪切或拷贝的数据相关联的XML名字空间的信息,这些XML名字空间不是供应应用程序本机XML编程语言的一部分。例如,“DATA”的HEADER向拷贝应用程序提供有关与供应应用程序用户创建的模式相关联的XML名字空间的信息,或是提供与第三方模式关联的XML名字空间的信息,如为了给用户消费或表示用于组织数据的出版商或股票市场公司模式,如上所述。下面是一个可由消费应用程序接收用以提供与供应应用程序剪切或拷贝的数据相关联的非本机XML名字空间的信息的CF_XML_DATA格式的实例。
&lt;cbdata xmlnscb=”urnschemas-microsoft-comofficeclipboarddata”&gt;&lt;!--Root element for the ClipBoard--&gt;
&lt;cbitem cbname=”D0”cbURI=”The URI of the root schema”&gt;
注这里可以有数据。因为该数据处于cbstart标签之前,消费应用程序知道该数据不是所拷贝的一部分,但它仍然可能提供有关整个来源的性质方面的有趣信息。
&lt;cbstart/&gt;&lt;!-A single tag to be placed inline signifying the start of thefragment--&gt;
注这里可以有数据。因为该数据处于cbstart标签之后,消费应用程序知道该数据不是所拷贝的一部分。&lt;cbend/&gt;&lt;!-A single tag to be placedinline signifying the end of the fragment--&gt;
注这里可以有数据。因为该数据处于cbend标签之后,消费应用程序知道该数据不是所拷贝的一部分,但它仍然可能提供有关整个来源的性质方面的有趣信息。
&lt;/cbitem&gt;
&lt;!--It is possible to place more than one if the pasting app decides to--&gt;
&lt;cbitem cbname=”D1”cbURI=”The URI of th root schema”&gt;
&lt;cbstart/&gt;&lt;!--A single tag to be placed nline signifying the start of thefragment--&gt;
&lt;cbend/&gt;&lt;!--A single tag to be placed inline signifying the end of thefragment--&gt;
&lt;/cbitem&gt;
&lt;/cbdata&gt;
图5和图6是依照本发明实施例的流程图,说明了用于提高消费应用程序粘贴功能的方法。该方法500从开始步骤505起始,然后转到步骤510,供应应用程序中的数据被剪切或拷贝并保存到剪贴板210用于消费应用程序220的后续粘贴。在步骤515处,为了将剪切或拷贝的数据粘贴到正在使用的消费应用程序220内的一个文档,用户从消费应用程序选择粘贴操作。在步骤520处,消费应用程序确定是否有CF_XML_HEADER格式与剪切或拷贝的数据相关联。如果没有可用的CF_XML_HEADER格式,该方法前进到图6的步骤575,数据被粘贴而不使用任何增强的粘贴功能。应当理解,如上所述,如果消费应用程序有附加的XML模式和/或数据结构可用,则该信息就会通过CF_XML_HEADER格式被提供给消费应用程序。
如果在520步提供“HEADER”格式,则该方法前进到步骤525,确定该数据是否包括CF_XML_VIEW格式。如果是,那么该方法前进到步骤530,消费应用程序创建首部HEADER中规定的可用名字空间列表作为可用名字空间用于粘贴剪切或拷贝数据。例如,如果供应应用程序是一个电子表格应用程序,消费应用程序可能需要查询名字空间库以寻找可用的转换文件或其它资源用于支持消费应用程序(例如,字处理器)依照供应应用程序的XML功能粘贴剪切或拷贝的数据。查找名字空间库的原因是消费应用程序并不理解这个可用的名字空间,需要找到关于怎么处理它的附加信息。如果XML名字空间库不在可用名字空间列表中,该方法前进到步骤550,消费应用程序检查名字空间库230寻找附加资源用于支持粘贴从供应应用程序剪切或粘贴的数据。
如果在步骤535提供CF_XML_DATA格式,该方法前进到步骤540,消费应用程序查询可用名字空间列表获取与供应应用程序创建的或从供应应用程序外部的第三方资源接收的名字空间相关联的转换文件和/或其它的资源,如上所述。应当理解,参照步骤530和540描述的查询可用名字空间列表的操作可以通过提供用户接口来完成,如以上参照图3所述。
在图6的步骤545处,确定消费应程序是否理解为从供应应用程序剪切或拷贝的数据作标识的名字空间和关联的转换文件。例如,如果消费应用程序是一个字处理应用程序,消费应用程序可能不需要转换文件形式的附加资源来提供与剪切或拷贝的数据关联的XML格式。如果是这样,该方法前进到步骤575,消费应用程序粘贴剪切或拷贝的数据而不使用粘贴功能的增强。
如果消费应用程序不理解与所选数据关联的名字空间及相关的资源,或者如果名字空间或资源对消费应用程序都不可用,那么该方法前进到步骤550,用户可用名字空间库230来选择与包含在从供应应用程序得到的CF_XML_DATA格式中的数据关联的附加名字空间及资源。如果从供应应用程序得到的CF_XML_DATA格式标示与剪切或拷贝的数据相关联的第三方名字空间,诸如一个给定出版商的XSLT文件,那么消费应用程序依照这个标示的名字空间粘贴数据所需要的XSLT文件可从名字空间库230中得到并用于消费应用程序。在步骤555,确定用户是否选择了任何可用的转换文件供消费应用程序使用。如果不是,该方法前进到步骤560,用户接口310的粘贴功能由默认的功能填入,如图3所述。
如果资源,诸如XSLT转换文件,位于可用名字空间列表或名字空间库,那么该方法前进到步骤565,粘贴用户接口310填入由用户选择的附加功能,如以上参照图3所述。在步骤570,确定是否有用户选择默认的通用粘贴功能或是否有用户选择了特殊粘贴功能。如果用户想要使用一个特殊粘贴功能,该方法前进到步骤580,用户选择这个特殊粘贴功能。该方法前进到步骤575,在此依照用户选择的粘贴功能粘贴数据。如果在步骤570用户不想选择特殊粘贴功能,该方法前进到步骤575,如用户所选,数据被粘贴而使用任何增强的粘贴功能。该方法在步骤595终止。
如此所述,提供了提高计算机软件应用程序粘贴功能的方法和系统,用于粘贴数据到计算机生成的文档。对于本领域内的熟练技术人员而言,在本发明中可以做各种修改或变化而不脱离本发明的精神实质和范围。研读在此揭示的本发明的说明书和对本发明加以实践,本发明的其它实施例对本领域内的熟练技术人员是显而易见的。
权利要求
1.一种提高计算机软件应用程序粘贴功能的方法,其特征在于,该方法包括由供应应用程序打开第一文档;从第一文档选择数据,用于由消费应用程序粘贴到第二文档;保存所选择的数据到一存储位置;保存与所选择的数据相关联的数据到所述存储位置,用于向消费应用程序提供关于所选数据的信息;如果与所选择的数据相关联的数据标识与数据相关的第一名字空间,标识与所选择的数据关联的一个或多个数据类型,这向消费应用程序提供所述第一名字空间。选择一个或多个数据类型中的一个用于粘贴所选的数据到所述第二文档;以及获取与所选的数据类型相关联的一个资源,用于准备数据以由消费应用程序粘贴到第二文档。
2.如权利要求1所述的方法,其特征在于,在获取与选择的数据类型相关联的一个资源用于准备数据以由消费应用程序粘贴到第二文档的步骤之前,解析与选择的数据相关联的资源的可用名字空间列表;以及如果所述可用名字空间列表标识与选择的数据相关联的资源,则将所述资源提供给消费应用程序。
3.如权利要求2所述的方法,其特征在于,如果所述可用名字空间列表不标识与所选数据相关联的资源,那么解析与所选数据相关联的资源的名字空间库;以及如果该名字空间库标识与所选数据相关联的资源,那么将所述资源提供给供应应用程序。
4.如权利要求3所述的方法,其特征在于,如果多个名字空间由与所选数据相关联的数据标识,则获取与所述多个名字空间中的一个相关联的第二资源,用于准备数据由消费应用程序粘贴到第二文档。
5.如权利要求4所述的方法,其特征在于,所述方法还包括在依照第一资源粘贴选择的数据到第二文档和依照第二资源粘贴选择的数据到第二文档之间,提供用户可选的选择。
6.如权利要求4所述的方法,其特征在于,所述方法进一步包括依照从多个可用名字空间中的一个选择的一个或多个资源中的一个,向用户提供可选的选择,用于粘贴选择的数据到第二文档,所述的每个可用名字空间都与一个或多个资源相关联。
7.如权利要求5所述的方法,其特征在于,所述保存选择的数据到一存储位置包括以可扩展标记语言(XML)格式保存选取的数据。
8.如权利要求7所述的方法,其特征在于,所述第一和第二资源包括可扩展格式页语言转换(XSLT),用于将选取的数据从与第一文档相关联的第一数据类型转化为第二数据类型,用以粘帖所选数据到第二文档。
9.如权利要求8所述的方法,其特征在于,所述如果没有资源与所选的数据类型相关联用以准备数据以由消费应用程序粘贴到第二文档,则将选择的数据粘贴到第二文档而不用提高的粘贴功能。
10.如权利要求9所述的方法,其特征在于,所述保存与所选的数据相关联的数据到所述存储位置包括以CF_XML_HEADER格式保存数据到所述存储位置。
11.如权利要求10所述的方法,其特征在于,如果所述第一名字空间标识为与所述第一文档相关联,则向与所选数据关联的数据提供信息,使消费应用程序能够在可用名字空间列表或名字空间库中定位第一名字空间。
12.如权利要求11所述的方法,其特征在于,所述向与所选数据相关联的数据提供信息使消费应用程序能够在可用名字空间列表或名字空间库中定位第一名字空间的步骤包括为第一名字空间提供版本标识符,提供统一资源标识符及为第一名字空间提供文件大小。
13.权利要求12所述的方法,其特征在于,如果所述多个名字空间被标识为与第一文档相关联,则向与所选数据相关联的数据提供信息使消费应用程序能够在可用名字空间列表或名字空间库中定位所述多个名字空间。
14.如权利要求13所述的方法,其特征在于,所述向与所选数据相关联的数据提供信息使消费应用程序能够在可用名字空间列表或名字空间库中定位所述多个名字空间的步骤包括为所述多个名字空间的每一个提供版本标识符,提供统一资源标识符以及为所述多个名字空间的每一个提供文件大小。
15.如权利要求10所述的方法,其特征在于,如果所述第一名字空间被标识为与第一文档关联,则依照所述第一名字空间向消费应用程序提供与所述第一文档关联的任何数据类型。
16.如权利要求15所述的方法,其特征在于,依照所述第一名字空间与所述第一文档关联的数据类型以CF_XML_VIEW格式被提供给消费应用程序。
17.如权利要求13所述的方法,其特征在于,如果所述多个名字空间被标识为与第一档关联,则依照所述多个字空间向消费应用程序提供一个或多个与第一文档相关联的数据类型。
18.如权利要求17所述的方法,其特征在于,依照所述多个名字空间与所述第一文档相关联的一个或多个数据类型以CF_XML_DATA格式被提供给消费应用程序。
19.如权利要求1所述的方法,其特征在于,所述供应应用程序是字处理应用程序。
20.如权利要求1所述的方法,其特征在于,所述供应应用程序是电子表格应用程序。
21.如权利要求1所述的方法,其特征在于,所述供应应用程序是幻灯片展示应用程序。
22.如权利要求1所述的方法,其特征在于,所述消费应用程序是字处理应用程序。
23.如权利要求1所述的方法,其特征在于,所述消费应用程序是电子表格应用程序。
24.如权利要求1所述的方法,其特征在于,所述消费应用程序是幻灯片展示应用程序。
25.如权利要求1所述的方法,其特征在于,所述保存所选的数据到一存储位置包括保存所选的数据到剪贴板。
26.一种提高计算机软件应用程序粘贴功能的方法,其特征在于,该方法包括由供应应用程序打开第一文档;依照标记语言将结构应用到的所述第一文档;从所述第一文档选择数据,用于粘贴到第二文档;保存选择的数据到一存储位置;保存与所选择的数据相关联的数据到所述存储位置,用于向消费应用程序提供关于所选数据的信息;由消费应用程序打开第二文档,选择消费应用程序的粘帖功能以将所选的数据粘贴到所述第二文档;由消费应用程序读取与所选数据相关联的数据;响应于消费应用程序读取与所选数据相关联的数据,确定是否有一个或多个名字空间与所选的数据相关联,定义对于应用到所选数据上的结构所许可的数据内容、数据类型和数据结构;由消费应用程序获取与一个或多个名字空间中的一个相关联的资源,用于粘贴所选取的数据到第二文档;以及根据所述资源粘帖所选取的数据到第二文档。
27.如权利要求26所述的方法,其特征在于,在由消费应用程序获取与一个或多个名字空间中的一个相关联的资源用于粘贴所选的数据之前,确定在可用名字空间列表的一个或多个名字空间中是否包含消费应用程序使用的一个或多个名字空间中想要的一个;如果可用名字空间列表包含消费应用程序使用的一个或多个名字空间中想要的一个,则选择所述想要的名字空间;以及向消费应用程序提供所述选择的名字空间。
28.如权利要求27所述的方法,其特征在于,如果所述可用名字空间列表不含有供消费应用程序使用的一个或多个名字空间中想要的一个,则确定名字空间库是否含有一个或多个资源用于可供消费应用程序使用的一个或多个名字空间中的一个;如果所述名字空间库含有用于一个或多个名字空间的一个或多个想要的资源由供消费应用程序使用,则从名字空间库中选择所述想要的资源;以及向消费应用程序提供选择的名字空间和资源。
29.如权利要求28所述的方法,其特征在于,所述方法进一步包括提供用户可选的选择,用于依照所选择的名字空间粘贴所述选择的数据到第二文档。
30.如权利要求29所述的方法,其特征在于,所述标记语言是可扩展标记语言(XML)。
31.如权利要求30所述的方法,其特征在于,所述资源是XSLT文件,用于将所述选择的数据从与所述第一文档关联的第一数据类型转换成第二数据类型,以便将所述选取的数据粘贴到第二文档。
32.如权利要求29所述的方法,其特征在于,所述保存与选取的数据相关联的数据到所述存储位置用于向消费应用程序提供所选数据的信息的步骤包括识别所述一个或多个名字空间中的任何一个是否与第一文档相关联。
33.如权利要求32所述的方法,其特征在于,所述识别所述一个或多个名字空间中的任何一个是否与第一文档相关联的步骤包括向消费应用程序提供信息用于在可用名字空间列表或名字空间库中定位所述一个或多个名字空间的任何一个。
34.一种计算机可读介质,其上已存储有计算机可执行指令,当计算机运行所述指令时,执行以下步骤由供应应用程序打开第一文档;依照标记语言将结构应用到的所述第一文档;从所述第一文档选择数据,用于粘贴到第二文档;保存选择的数据到一存储位置;保存与选择的数据相关联的数据到所述存储位置,用于向消费应用程序提供关于所选数据的信息;由消费应用程序打开第二文档,选择消费应用程序的粘帖功能以将数据粘贴到第二文档;由消费应用程序读取与所选数据相关联的数据;响应于消费应用程序读取与所选数据相关联的数据,确定是否有一个或多个名字空间与所选的数据相关联,定义出用于应用到所选数据上的结构的许可的数据内容、数据类型和数据结构;由消费应用程序获取与所述一个或多个名字空间中的一个相关联的资源,用于粘贴选取的数据到第二文档;以及根据所述资源粘帖选取的数据到第二文档。
35.如权利要求34所述的计算机可读介质,在由消费应用程序获取所述与一个或多个名字空间相关联的资源用于粘贴选择的数据之前,确定可用名字空间列表是否包含的一个或多个名字空间中想要的名字空间供消费应用程序使用;如果可用名字空间列表包含一个或多个名字空间中想要的名字空间由供消费应用程序使用,则么选择所述想要的名字空间;以及向消费应用程序提供所选择的名字空间。
36.如权利要求35所述的计算机可读介质,其特征在于,如果所述可用名字空间列表不包含一个或多个名字空间中想要的名字空间由消费应用程序使用,则确定是否一名字空间库包含一个或多个名字空间中想要的名字空间给消费应用程序使用;如果所述名字空间库包含用于一个或多个名字空间的一个或多个想要的资源由消费应用程序使用,则从名字空间库中选择所想要的资源;以及向消费应用程序提供所选择的名字空间和资源。
37.如权利要求36所述的计算机可读介质,其特征在于,所述方法还包括向用户提供可选的选择用以依照选择的名字空间将所选择的数据粘贴到第二文档。
38.如权利要求37所述的计算机可读介质,其特征在于,所述标记语言是可扩展标记语言(XML)。
39.如权利要求38所述的计算机可读介质,其特征在于,所述保存与所选取的数据相关联的数据到所述存储位置以向消费应用程序提供有关所选数据的信息的步骤包括识别所述一个或多个名字空间中的任何一个是否和第一文档相关联。
40.如权利要求39所述的计算机可读介质,其特征在于,所述识别一个或多个名字空间中的任何一个是否和第一文档关联的步骤包括向消费应用程序提供信息,用于在可用名字空间列表或名字空间库中定位所述一个或多个名字空间中的任何名字空间。
41.一种从拷贝应用程序粘帖数据到消费应用程序的方法,其特征在于,所述方法包括应用第一可扩展标记语言(XML)元素到第一文档的一区域的开头,该区域被选择用于从拷贝应用程序进行拷贝,并用于粘贴到消费应用程序;应用第二XML元素到所述选择区域的末尾;在与所选区域相关的首部中提供信息,所述信息包括可用XML名字空间的标识符和对应于每个可用的名字空间的剪贴板格式标识符的指针;在首部中提供关于每个可用名字空间文件大小的信息;以及提供一个或多个剪贴板上可用的名字空间以使消费应用程序能够从一个或多个名字空间中进行选择,用于粘贴从拷贝程序得到数据。
全文摘要
提供了提高计算机软件应用程序可用的粘贴功能的方法和系统,用于粘贴数据到计算机生成的文档。从一个文档选择数据用以粘帖到另一个文档。选取的数据保存到一个存储位置,如剪贴板。随着选择的数据,与之相关的信息或数据也被保存,用于向消费或粘帖软件应用程序提供与所选数据相关的数据类型的信息。相应的,为了保持粘帖数据中数据的结构和格式与粘帖之前应用到该数据的结构和格式一致,消费应用程序可获取一个名字空间和相关的资源,如XSLT转换文件,用来将选择的数据从与第一文档关联的一种数据类型转换成第二种数据类型,以便粘帖选择的数据到第二文档。
文档编号G06F17/24GK1530833SQ20041000824
公开日2004年9月22日 申请日期2004年3月1日 优先权日2003年2月28日
发明者B·M·琼斯, M·萨维奇, R·A·利特尔, M·穆雷, R·科里, M·塔科, B M 琼斯, 利特尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1