Поделиться через


Настраиваемые анализаторы документов

Дата последнего изменения: 1 ноября 2010 г.

Применимо к: SharePoint Foundation 2010

В этой статье
Требования анализатора
Связывание анализаторов
Развертывание анализатора

Управление метаданными, связанными с документом, является одним из самых больших преимуществ хранения контента организации в Microsoft SharePoint Foundation 2010. Однако поддержание синхронизации этой информации между уровнем библиотеки документов и самими документами является серьезной проблемой. В SharePoint Foundation предоставляется инфраструктура синтаксического анализа документов, позволяющая создавать и устанавливать настраиваемые анализаторы документов, которые будут анализировать пользовательские типы файлов и обновлять документы на основе сделанных на уровне библиотек документов изменений, и наоборот. Использование синтаксических анализаторов документов для пользовательских типов файлов помогает обеспечивать постоянное обновление метаданных документа и их синхронизацию между библиотекой документов и самим документом.

Синтаксический анализатор документов является настраиваемым COM-объектом, который, реализуя Интерфейс ISPDocumentParser, выполняет следующие действия при вызове из SharePoint Foundation.

  • Извлекает значения свойств документа из документа определенного типа файлов и передает эти значения в SharePoint Foundation для передачи в столбцы свойств библиотеки документов.

  • Принимает свойства документа и возвращает их значения в сам документ.

  • Кроме того, обновляет сведения о типе контента, выполняет обнаружение и восстановление ссылок, а также извлекает изображение-эскиз.

Эти функциональные возможности позволяют пользователям изменять свойства документа в самом документе, при этом изменения значений свойств будут автоматически отражаться в библиотеке документов. Аналогично, пользователи могут обновлять значения свойств на уровне библиотеки документов, и эти изменения будут автоматически вноситься в сам документ.

Дополнительные сведения о вызове анализаторов документов в SharePoint Foundation и передаче и возврате метаданных документа при помощи этих анализаторов см. в разделе Повышение и понижение уровня свойства документа.

Требования анализатора

Чтобы в SharePoint Foundation можно было использовать настраиваемый анализатор документов, он должен отвечать следующим требованиям.

  • Синтаксический анализатор документов должен быть COM-компонентом, реализующим Интерфейс ISPDocumentParser.

    Дополнительные сведения см. в разделе Обзор интерфейса анализатора документов.

  • Необходимо установить и зарегистрировать этот COM-компонент на каждом интерфейсном веб-сервере в установленной версии SharePoint Foundation.

  • Необходимо зарегистрировать синтаксический анализатор документов в SharePoint Foundation путем добавления его в коллекцию, возвращаемую свойством PluggableParsers класса SPWebService. (По этой причине пользовательские средства анализа иногда называют "подключаемыми".)

Связывание анализаторов

SharePoint Foundation выбирает вызываемый синтаксический анализатор документов, основываясь на типе файла анализируемого документа. Любой заданный тип файла может быть связан только с одним анализатором. Но этот же анализатор документов может быть связан с различными типами файлов.

Выяснить, с каким конкретным типом файла связан синтаксический анализатор, можно, просмотрев коллекцию, возвращаемую свойством PluggableParsers класса SPWebService. Например, следующее консольное приложение выполняет перечисление подключаемых анализаторов, зарегистрированных в службе управления контентом на локальном сервере, и печатает каждое расширение имени файла и идентификатор соответствующей программы.

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();
        }
    }
}

Чтобы связать пользовательский синтаксический анализатор документов с типом файла, добавьте этот анализатор в коллекцию, возвращаемую свойством PluggableParsers класса SPWebService. Например, следующее консольное приложение создает пользовательский синтаксический анализатор документов и связывает его с файлами с расширением 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 всегда в случае необходимости сможет вызвать конкретный анализатор, следует установить COM-компонент для каждого синтаксического анализатора документов на каждом интерфейсном веб-сервере в установленной версии SharePoint Foundation. Поэтому для каждого типа файлов в установленной версии SharePoint Foundation можно указать только один анализатор.

Инфраструктура синтаксических анализаторов документов не поддерживает упаковку и развертывание пользовательского анализатора документов в качестве части компонента SharePoint Foundation.

См. также

Ссылка

SPDocumentParser

Концепции

Повышение и понижение уровня свойства документа

Синтаксический анализ документа и типы контента

Обзор интерфейса анализатора документов