自定义文档分析程序

上次修改时间: 2010年11月1日

适用范围: SharePoint Foundation 2010

本文内容
分析程序要求
分析程序关联
分析程序部署

管理与文档相关联的元数据是在 Microsoft SharePoint Foundation 2010 中存储企业内容的最强大优点之一。但是,在文档库级与文档本身之间保持信息同步却是困难的事情。SharePoint Foundation 提供了文档分析程序的基础结构,使您可以创建并安装自定义文档分析程序,以分析自己的自定义文件类型,并针对文档库级的更改更新文档(以及相反操作)。为自定义文件类型使用文档分析程序有助于确保文档元数据始终最新并在文档库和文档本身之间同步。

文档分析程序是一个自定义 COM 对象,在由 SharePoint Foundation 调用时,通过实现 ISPDocumentParser 接口执行以下操作:

  • 从一定文件类型的文档提取文档属性值,并将这些属性值传递给 SharePoint Foundation,以提升到文档库属性列。

  • 接收文档属性,然后将这些属性值降级到文档本身。

  • 此外,更新内容类型信息、执行链接发现和修复,以及提取缩略图。

利用此功能,用户可以编辑文档本身的文档属性,并自动更新文档库上的属性值以反映其更改。同样,用户可以在文档库级别更新属性值,并自动将这些更改写回到文档。

有关 SharePoint Foundation 如何调用文档分析程序,以及这些分析程序如何对文档元数据进行升级和降级的详细信息,请参阅文档属性升级和降级

分析程序要求

若要 SharePoint Foundation 使用自定义文档分析程序,文档分析程序必须满足以下条件:

  • 文档分析程序必须是实现了 ISPDocumentParser 接口的 COM 组件。

    有关详细信息,请参阅文档分析程序接口概述

  • 必须在 SharePoint Foundation 安装中的每台 Web 服务器上安装和注册 COM 组件。

  • 必须通过将文档分析程序添加到由 SPWebService 类的 PluggableParsers 属性返回的集合将它注册到 SharePoint Foundation。(因此,自定义分析程序有时称为"可插入"分析程序。)

分析程序关联

SharePoint Foundation 基于要分析文档的文件类型选择要调用的文档分析程序。任何给定文件类型只能与一个文档分析程序相关联。然而,同一文档分析程序可以与多个不同的文件类型相关联。

可以通过查看由 SPWebService 类的 PluggableParsers 属性返回的集合来发现与特定文件类型相关联的分析程序。例如,以下控制台应用程序枚举注册到本地服务器上的内容服务的可插入分析程序,并输出每个文件扩展名和相应的程序 ID。

using System;
using System.Collections.Generic;
using Microsoft.SharePoint.Administration;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            SPWebService service = SPWebService.ContentService;

            Dictionary<string, SPDocumentParser> parsers = service.PluggableParsers;
            Dictionary<string, SPDocumentParser>.KeyCollection keys = parsers.Keys;

            Console.WriteLine("Ext       ProgID");
            Console.WriteLine("---       ------");
            foreach (string key in keys)
            {
                Console.WriteLine("{0, -7}   {1}", parsers[key].FileExtension,  parsers[key].ProgId );
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }
    }
}

若要将自定义文档分析程序与文件类型相关联,请将分析程序添加到由 SPWebService 类的 PluggableParsers 属性返回的集合。例如,以下控制台应用程序创建自定义文档分析程序并通过以下方式将分析程序与具有"txt"扩展名的文件相关联:将分析程序添加到本地服务器上内容服务的可插入分析程序集合。

using System;
using System.Collections.Generic;
using Microsoft.SharePoint.Administration;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            SPWebService service = SPWebService.ContentService;
            Dictionary<string, SPDocumentParser> parsers = service.PluggableParsers;

            // Create a custom parser.
            string extension = "txt";
            string progID = parsers["docx"].ProgId;
            SPDocumentParser customParser = new SPDocumentParser(progID, extension);

            // Remove any existing parser for the file type.
            if (parsers.ContainsKey(extension))
            {
                parsers.Remove(extension);
                service.Update();
            }

            // Add the new parser for the file type.
            service.PluggableParsers.Add(extension, customParser);
            service.Update();
        }
    }
}
警告注释警告

SharePoint Foundation 2010 包含若干个内置文档分析程序。可以使用自定义分析程序替换内置文档分析程序,但是这样做之前应该慎重考虑,特别是在考虑替换基于 HTML 的文件类型的分析程序时。内置分析程序有时可比可插入分析程序接口执行更多的操作。

分析程序部署

若要确保 SharePoint Foundation 能够在必要时调用给定分析程序,您必须在 SharePoint Foundation 安装中的每个前端 Web 服务器上安装每个分析程序的 COM 组件。因此,对于 SharePoint Foundation 安装中的给定文件类型,只能指定一个分析程序。

文档分析程序基础结构无法将自定义文档分析程序作为 SharePoint Foundation 功能的一部分进行打包和部署。

请参阅

引用

SPDocumentParser

概念

文档属性升级和降级

文档分析和内容类型

文档分析程序接口概述