针对开发人员的智能标记
Bill Coan
Microsoft Word MVP
billcoan@wordsite.com
http://www.wordsite.com
适用于:
Microsoft Office 2003 Editions
摘要:Bill Coan 提供了对智能标记的简单介绍。它们是什么?所有这些不同的术语有什么含义?它们做什么?在本文中学习这方面的知识以及其他更多知识。

本页内容
![]() |
智能标记:业务中最难的工作标记 |
![]() |
智能标记究竟是什么? |
![]() |
使用识别器和操作使智能标记变得“智能” |
![]() |
开发人员问及的关于识别器和操作处理程序的十大问题 |
![]() |
创建您自己的识别器和操作处理程序 |
![]() |
关于术语的一些最终考量 |
![]() |
小结 |
![]() |
关于作者 |
智能标记:业务中最难的工作标记
随着智能标记的出现,Microsoft Office System 现在能够帮助我们解释我们文档中的信息,并将该信息与我们现有的知识集成,从而使我们能够做出更明智的决策。
这些是笼统的概述,下面让我们回过头来看一个示例。
我姐夫恰巧是一家大公司的一位成功的执行官,他非常繁忙,没有时间看华尔街日报。而是由他的助手替他阅读该日报,并在他感兴趣的内容(例如,客户和供应商姓名)下面用红笔作下划线。
我姐夫总是针对那些加了下划线的内容提出问题:该客户在股市中占有的份额有什么变化?上周涉及该供应商的案件发生在什么地方?等等。这些问题的答案帮助他将他所读到的内容与他已知的内容完全融合。
这个助理很胜任,她喜欢提前作准备。因此,在将报纸转交给我姐夫之前,她已经收集了我姐夫可能问到的每件事情。当问题提出时,她已经准备好了答案。这有助于我姐夫查看加下划线内容的上下文,将每一项内容与和其相关的内容相关联,并最大程度地从他所读取到的内容获取信息。
如果你我也有一个像我姐夫的助理那样的助理,那该有多好啊?当然,每个人的兴趣不同,因此您的助理需要熟悉您的特殊兴趣,而我的助理就需要熟悉我的特殊兴趣。按照这种方式,您的阅读资料中加下划线的内容将是适合您特殊兴趣的内容,而我的阅读资料中加下划线的内容将是适合我特殊兴趣的内容。如果我们两人中的任何一人对加下划线的内容有疑问,我们都会立刻得到问题的答案,这都要感谢我们助理所做的准备工作。
智能标记正是我们一直等待的助理。当您读一个文档、电子表格或电子邮件消息时,它们会在您特别感兴趣的内容下面加下划线。如果您对加下划线的内容有任何疑问或者想利用它做一些事情,智能标记提供了一种途径来帮助您获取与该内容相关的、特定于个人需要的更详细信息和更多活动。
和其他许多构建在 Microsoft Office System 中的功能一样,智能标记提供了一定数量的功能,但它们真正的功能在恰好满足您的需要时变得最为明显。在这种情况下,它们帮助您查看您所感兴趣的内容的上下文,并且帮助您将这些内容与和您(没错,就是您)相关的其他任何内容相关联。当以这种方式处理时,智能标记使您能够完全结合您所阅读的内容以及您所了解的内容,从而帮助您最大程度地从您所阅读的每项内容获取信息。
智能标记究竟是什么?
智能标记是在文档、电子表格或电子邮件消息中实现的隐藏指针。使用这些隐藏指针标记的文本以虚线下划线形式出现,以便您知道该文本是您特别感兴趣的。隐藏的指针不显示在屏幕上,但是如果它们显示在屏幕上,则会作为一对文本前后的 XML 标记表示出来,如下所示:
<st1:author>Bill Coan</st1:author>
注 在 Office 2003 Editions 中,如果您将您的工作作为一个带有嵌入智能标记的 XML 文档保存,然后用文本编辑器(例如,记事本)打开产生的文件,您会看到如前面所示的智能标记。为了理解本文的其余部分,您不必知道关于 XML 标记的所有内容,但是如果您感兴趣,您可以在文章 Getting into XML with the Microsoft Office System 中找到关于 XML 标记的介绍性讨论。
使用识别器和操作使智能标记变得“智能”
嵌入在文档、电子表格和电子邮件中的隐藏指针如何能变得“智能”?嗯,实际上,智能标记本身并不是智能的。智能的是将它们放入其中的软件,以及帮助您使用它们完成任务的软件。一共涉及到两种类型的软件:
• |
在 Microsoft Office 应用程序中,一个名为识别器 的软件自动将智能标记应用到文本。识别器识别您特别感兴趣的文本。例如,识别器可以识别电话号码、邮政编码,或客户和供应商的名字。在将智能标记应用到您的文本后,该识别器通知您的应用程序在标记的文本下显示虚线,这样您就会知道该文本是您特别感兴趣的。 |
• |
在 Microsoft Office 应用程序中,当您将指针移过一个智能标记时,该应用程序会立即在文本上显示一个按钮。如果您单击该按钮,该应用程序会调用一个名为操作处理程序 的软件。该操作处理程序显示了一个适用于标记文本的命令菜单。例如,如果您将指针移过标记为电话号码的某个文本,然后单击立即显示在电话号码上的按钮,则该应用程序调用一个电话号码操作处理程序。该处理程序显示一个用于使用该电话号码的命令菜单,例如,一个用于拨号的命令,以及一个针对该号码执行反向目录搜索的命令。如果您单击这些命令中的一个,该操作处理程序会执行该命令。 |
Microsoft Office System 附带针对日期和时间、股票行情自动收录器符号、个人姓名和地址的识别器。还包括一个识别器,它标识了在本地硬盘上存储的特殊文本文件中的术语。通过在文本文件中编辑术语,您可以添加或删除由 Office 应用程序识别的单词或短语。从 Office 2003 Editions 开始,文本文件可以储存正则表达式(类似于格式匹配表达式或通配符表达式),以及明晰的术语列表,甚至可以在定义您所感兴趣的文本时提供更多的灵活性。其他识别器可用于第三方开发人员,或者您也可以按照本文后面引用的过程开发它们。
Microsoft Office System 也附带了许多操作处理程序,包括一个使用日期和时间在 Microsoft Office Outlook 2003 中查找或安排事件的操作处理程序,一个用于处理股票行情自动收录器符号的操作处理程序,以及其他用于处理姓名和地址的操作处理程序。还包括一个操作处理程序,它使您能够访问本地硬盘上特殊文本文件中列出的 URL。(存储 URL 列表的文本文件与存储项和正则表达式的文本文件是相同的。)通过在文本文件中编辑 URL,您也可以添加或删除该操作处理程序将带您达到的位置。其他操作处理程序可用于第三方开发人员,或者您也可以按照本文后面引用的过程开发它们。
开发人员问及的关于识别器和操作处理程序的十大问题
既然您已经了解了有关智能标记的基本知识,您的脑海中肯定产生了很多问题,特别是关于识别器和操作处理程序的问题。在以下几个段落中,我会尽力回答这些问题。我会重新阐述前面已经讨论过的一些基本概念,补充其中的一部分概念,但是也想为您提供一个机会,从而可以在更大的背景中考虑这些概念。
1. |
识别器是什么? 正如前面所说的,识别器是一个软件,它可以计算 Office 应用程序中的文本,并将智能标记放在您特别感兴趣的任何单词和短语周围。然后识别器会通知应用程序在识别的文本下面显示虚线,这样您就会知道这是您特别感兴趣的文本。Microsoft Office System 附带许多识别器。其他识别器可以从 Microsoft 和第三方开发人员使用。 注 由识别器插入的标记在屏幕上是不可见的,但您可以将它们保存在文档和文本中;如果已选定该应用程序的 Embed Smart Tags 选项。 |
2. |
智能标记列表识别器 是什么?智能标记列表识别器是包含在 Microsoft Office System 中的识别器之一。(如果您很好奇,可以告诉您该识别器存储在一个名为 MOFL.dll 的文件中。)由该识别器识别的单词和短语列在特殊的 XML 文件中,这些文件可以通过任何文本编辑器(例如,记事本)编辑。这些特殊的 XML 文件称为智能标记列表文件,更简单地说就是智能标记列表,存储位置是 C:\Program Files\Common Files\Microsoft Shared\Smart Tag\Lists。 注 不要被“智能标记列表文件”这个术语所愚弄。这些文件不包含智能标记列表。它们包含由“智能标记列表识别器”识别的术语和正则表达式的列表。智能标记本身只包含在 Office 应用程序文档和一些 Web 页中。 重要事项 在编辑智能标记列表文件时,请在这些文件中仔细保留文本的结构。 有关编辑智能标记列表文件的更多信息和指导,请参阅 Developing Simple Smart Tags。 有关在智能标记列表文件中使用正则表达式(有时称为模式匹配,更简单地说就是通配符)的更多信息和指导,请参阅 Regular Expression Support in Microsoft Office System Smart Tags。 注 Office 2003 Editions 是使“智能标记列标识别器”能够在智能标记列表文件中解释正则表达式的第一个 Office 版本。 |
3. |
识别器如何使它们自身为 Office 应用程序所知?在 Office 应用程序使用识别器之前,识别器必须标识在系统注册表的以下键下: HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{GUID} 其中 {GUID} 是由识别器的开发人员分配的全局唯一标识符。例如,在我的系统上,Office 包含的智能标记列表识别器(存储在MOFL.dll 中)由以下键标识: HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5} 该 {GUID} 值帮助 Office 应用程序查找(在注册表中的其他位置)关于该识别器的重要信息,包括存储该识别器可执行代码的文件的名称和位置。该信息存在于该注册表的 HKEY_CLASSES_ROOT\CLSID\{GUID} 下。例如,关于系统上智能标记列表识别器的重要信息存在于系统注册表的以下位置: HKEY_CLASSES_ROOT\CLSID\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5} |
4. |
Office 应用程序能够一次向内存中加载多个识别器吗?当一个 Office 应用程序启动后,它会将所有可用的识别器加载到内存中。即该注册表中以下键下列出的所有识别器: HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers) 重要事项 如果某个其他的 Office 应用程序也在运行,则在第一个应用程序使用内存中已有的识别器之后,每个新的 Office 应用程序启动时都不加载任何新识别器。这意味着,当安装完一个新的识别器并在注册表中正确列出后,要退出所有 Office 应用程序,然后重启其中的一个,以便将新识别器加载到内存中。 |
5. |
Office 应用程序如何将其文本传递给识别器?将文本从应用程序传递给识别器的过程是在一个后台线程上完成的,在该应用程序不忙于其他活动时,该文本会传递给识别器。在多数情况下,该过程迅速完成,用户会认为该文本是在键入时立即识别的。 注 Office 应用程序将他们的文本传递给加载到内存中的所有识别器,但用户在应用程序的智能标记选项对话框中禁用的那些识别器除外。每个识别器在决定是否识别一个指定的单词或短语时,都使用它自己的逻辑。由一个识别器识别的单词没必要由另一个识别器识别,但是多个识别器将多个智能标记应用于同一个单词或短语是可能的。 |
6. |
操作处理程序是什么?正如前面所说的,操作处理程序是一个软件,在您将鼠标移过用一对智能标记进行了标记的文本,然后单击该文本上出现的按钮时,它能够显示一个命令菜单。如果您单击该菜单上的一个命令,该操作处理程序会执行该命令。 |
7. |
“智能标记列表操作处理程序”是什么?智能标记列表操作处理程序是 Microsoft Office System 中包含的操作处理程序之一。该处理程序存储在一个名为 MOFL.dll 的文件中,该文件也包含智能标记列表识别器。和任何其他操作处理程序一样,在您将鼠标移过使用一对智能标记进行了标记的文本,然后单击立刻在该文本上出现的按钮时,该智能标记列表操作处理程序也能够显示一个命令菜单。 由智能标记列表操作处理程序显示的命令菜单仅限于使您能够访问特殊文本文件中列出的 URL。您可以使用任何文本编辑器(例如,记事本)编辑这些文本文件。这些特殊的文件也称为智能标记列表文件,或者更简单称为智能标记列表,它们存储在以下路径中: C:\Program Files\Common Files\Microsoft Shared\Smart Tag\Lists 这些文本文件与存储了供智能标记列表识别器使用的术语和正则表达式列表的文本文件是相同的。 注 不要被“智能标记列表文件”这个术语所愚弄。这些文件不包含智能标记列表。它们包含由智能标记列表操作处理程序使用的 URL 列表,以及由智能标记列表识别器使用的术语和正则表达式的列表。智能标记只包含在 Office 应用程序文档和一些 Web 页中。 重要事项 在编辑智能标记列表文件时,请注意在这些文件中保留该文本的结构。 有关编辑智能标记列表文件的更多信息和指导,请参阅Developing Simple Smart Tags。 有关编辑智能标记列表文件的更多信息和其他指导,请参阅Regular Expression Support in Microsoft Office System Smart Tags。 |
8. |
操作处理程序如何使它们自身为 Office 应用程序所知?在 Office 应用程序使用操作处理程序之前,操作处理程序必须标识在系统注册表中的以下内容之下: HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Actions\{GUID} 其中 {GUID} 是由操作处理程序的开发人员分配的全局唯一标识符。例如,在我的系统中,Office 包含的智能标记列表操作处理程序(存储在MOFL.dll 中)由以下键标识: HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Actions\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5} 该 {GUID} 值帮助 Office 应用程序查找(在注册表中的其他地方)关于该操作处理程序的重要信息,包括存储该操作处理程序代码的文件的名称和位置。该信息存在于该注册表的 HKEY_CLASSES_ROOT\CLSID\{GUID} 下。例如,关于系统中智能标记列表操作处理程序的重要信息存在于系统注册表的以下位置: HKEY_CLASSES_ROOT\CLSID\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5} |
9. |
Office 应用程序能一次向内存中加载多个操作处理程序吗?当一个 Office 应用程序启动后,它会将所有可用的操作处理程序(注册表中列出的所有操作处理程序)加载到内存中的以下键下: HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Actions 重要事项 如果某个其他的 Office 应用程序也在运行,则在第一个应用程序使用内存中已有的操作处理程序之后,每个新的 Office 应用程序启动时都不加载任何新的操作处理程序。这意味着,当一个新的操作处理程序安装并正确列出在注册表中后,必须退出所有 Office 应用程序,然后任意应用程序才可以将新的操作处理程序加载到内存中。 |
10. |
当有多个操作处理程序时会发生什么情况?当您将鼠标移过使用一对智能标记进行了标记的文本,然后单击该文本上出现的按钮时,您的应用程序会显示一个命令菜单。菜单上显示的命令可以从单个操作处理程序或多个操作处理程序派生。例如,一些命令可以从 Office 中包含的一个操作处理程序派生,而其他命令可以从一个自定义第三方操作处理程序派生。 当您将鼠标移过使用一对智能标记进行了标记的文本,然后单击该文本上出现的按钮时,您的应用程序会查看当前加载到内存中的所有智能标记操作处理程序,以便看看哪些可以提供针对那些特定智能标记的命令。所显示菜单包含的命令来自具有所涉及智能标记的操作的所有操作处理程序。 |
创建您自己的识别器和操作处理程序
识别器和操作处理程序存储在 Microsoft ActiveX .dll 文件或 Microsoft .NET Framework 类库中,这些类库带有 COM 包装程序,从而使这些库可用于 Office 应用程序,就像是 ActiveX .dll 文件一样。
重要事项 单个 .dll 文件或 .NET 类既可以包含一个识别器,又可以包含一个操作,但这并不是必需的。存储在完全不同的 .dll 文件或 .NET Framework 类库中的操作处理程序可以由存储在 .dll 文件或 .NET Framework 类库中的识别器响应智能标记。操作处理程序不关注哪个识别器应用一对智能标记。操作处理程序只关心命名空间和元素名。
有关在 Microsoft Visual Basic 6.0 中创建识别器和操作的信息和指导,请参阅 Developing Smart Tag DLLs。
有关在 Microsoft Visual Studio .NET 中创建识别器和操作的信息和指导,请参阅 Building Smart Tags in Microsoft Visual Basic .NET。
关于术语的一些最终考量
为了帮助您记住本文讨论的一些概念,以及为您将在其他文章中发现的关于智能标记的术语做准备,下表定义了一些通用的智能标记术语。
表 1. 通用智能标记术语 | |
智能标记术语 | 定义 |
智能标记 |
在文档、电子表格或电子邮件消息中实现的隐藏指针。使用这些隐藏指针标记的文本是用虚线下划线显示的,这样您就会知道这是您特别感兴趣的文本。隐藏的指针不显示在屏幕上,但是如果它们显示在屏幕上,则会作为一对文本前后的 XML 标记表示出来,如下所示: <st1:author>Bill Coan</st1:author> |
智能标记文本 |
您特别感兴趣的单词或短语前后由智能标记标注。 |
智能标记按钮 |
当您将鼠标移过文本时显示在智能标记文本上的按钮。 |
智能标记菜单 |
当您单击一个智能标记按钮时出现的菜单。 |
智能标记命令 |
智能标记菜单上出现的命令。 |
智能标记识别器 |
一个软件,可以计算 Office 应用程序中的文本,并将智能标记放置在您特别感兴趣的任何单词和短语前后。Microsoft Office System 附带许多识别器。其他识别器可以从 Microsoft 和第三方开发人员使用。 |
智能标记列表识别器 |
包含在 Microsoft Office System 中的识别器之一。由该识别器识别的单词和短语列在您可以使用文本编辑器(例如,记事本)编辑的特殊文本文件中。这些特殊的文本文件称为智能标记列表文件,更简单地说就是智能标记列表。 |
智能标记操作 |
一个软件,能够在您将鼠标移过使用一对智能标记进行了标记的文本,然后单击该文本上出现的按钮时,显示一个命令菜单。如果您在菜单上单击这些命令中的一个,该操作处理程序会执行该命令。 |
智能标记列表操作 |
包含在 Microsoft Office System 中的操作处理程序之一。显示一个命令菜单,使您能够访问特殊文本文件中列出的 URL,您可以使用任何文本编辑器(例如,记事本)编辑这些文本文件。这些特殊的文件称为智能标记列表文件,更简单地说就是智能标记列表。(这些文本文件与存储了供智能标记列表识别器使用的术语和正则表达式列表的文本文件是相同的。 |
智能标记列表文件 |
请参见智能标记列表。 |
智能标记列表 |
您可以使用任何文本编辑器(例如,记事本)编辑的特殊 XML 文件。它们包含由智能标记列表操作处理程序使用的 URL 的列表,以及由智能标记列表识别器使用的术语和正则表达式的列表。智能标记列表存储在 C:\Program Files\Common Files\Microsoft Shared\Smart Tag\Lists。 |
术语列表 |
存储在智能标记列表中、由 Microsoft Office System 包含的智能标记列表识别器识别的单词或短语列表。 |
正则表达式 |
存储在智能标记列表中、由 Microsoft Office System 包含的智能标记列表识别器识别的模式匹配/通配符表达式。 |
智能标记 .dll |
包含智能标记识别器和/或智能标记操作的 COM 对象。 |
智能标记类库 |
可以包含一个智能标记识别器和/或一个智能标记操作的 Microsoft .NET 类库。 |
小结
在知识渊博的开发人员的手中,智能标记能够改造与 Microsoft Office 文档的交互。
直接的结果就是用户能够看到他们所感兴趣内容的全文。这帮助他们将他们阅读的内容和他们所知的内容相结合,从而帮助他们进行更好的决策。另一个结果是用户可以通过简单地单击智能标记命令进行快速的操作。
对开发人员而言,智能标记提供了一个可以对用户工作效率和用户体验产生深远影响的机会,这意味着智能标记为开发人员的成功提供了一个很好的机会。
关于作者
Bill Coan 是自定义 Microsoft Office 解决方案开发中的一位资深领导。他关于 Microsoft Office System 和其他软件技术的想法已经刊登在 eWeek、PC Magazine 和 PC PRO, Information Week, Microsoft Developer Network 上,以及其他二十种左右的印刷版或电子媒体版刊物上。有关其专业服务的更多信息,请参阅 http://www.wordsite.com/services/services.htm。