Сравнение XML-манифеста с унифицированным манифестом для Microsoft 365

Эта статья предназначена для того, чтобы помочь читателям, знакомым с XML-манифестом, понять унифицированный манифест путем сравнения этих двух. Читатели также должны увидеть надстройки Office с унифицированным манифестом для Microsoft 365 (предварительная версия).

Примечание.

Унифицированный манифест является предварительной версией функции надстроек Office и поддерживается только для Outlook в Windows.

Схемы и общие точки

Существует только одна схема для предварительного просмотра унифицированного манифеста, в отличие от текущего XML-манифеста, который содержит в общей сложности семь схем.

Концептуальное сопоставление унифицированных и текущих XML-манифестов предварительной версии

В этом разделе описывается предварительный просмотр унифицированного манифеста для читателей, знакомых с текущим XML-манифестом. Некоторые моменты, которые следует учитывать:

  • Унифицированный манифест имеет формат JSON.

  • JSON не различает атрибут и значение элемента, как xml. Обычно JSON, сопоставляемый с XML-элементом, превращает значение элемента и каждый атрибут в дочернее свойство. В следующем примере показана разметка XML и ее эквивалент JSON.

    <MyThing color="blue">Some text</MyThing>
    
    "myThing" : {
        "color": "blue",
        "text": "Some text"
    }
    
  • В текущем XML-манифесте существует множество мест, где элемент с именем во множественном числе содержит дочерние элементы с отдельной версией того же имени. Например, разметка для настройки настраиваемого меню включает <элемент Items> , который может иметь несколько дочерних <элементов Элемента> . Эквивалент JSON этих элементов во множественном числе — это свойство с массивом в качестве значения. Элементы массива являются анонимными объектами, а не свойствами с именами item или item1, item2 и т. д. Ниже приведен пример.

    "items": [
        {
            -- markup for a menu item is here --
        },
        {
            -- markup for another menu item is here --
        }
    ]
    

Структура верхнего уровня

Корневой уровень предварительного унифицированного манифеста, который примерно соответствует элементу <OfficeApp> в текущем XML-манифесте, является анонимным объектом.

Дочерние элементы <OfficeApp> обычно делятся на две категории. Элемент <VersionOverrides> является одной категорией. Второй состоит из всех остальных дочерних элементов <OfficeApp>, которые в совокупности называются базовым манифестом. Таким образом, предварительный просмотр унифицированного манифеста имеет аналогичное деление. Существует свойство верхнего уровня extensions, которое примерно соответствует по назначению и дочерним <свойствам элемента VersionOverrides> . Предварительный просмотр унифицированного манифеста также содержит более 10 других свойств верхнего уровня, которые в совокупности служат тем же целям, что и базовый манифест XML-манифеста. Эти другие свойства можно рассматривать в совокупности как базовый манифест единого манифеста.

Базовый манифест

Свойства базового манифеста указывают характеристики надстройки, которые должен содержать любой тип расширения Microsoft 365. Это относится ко вкладкам и расширениям для сообщений Teams, а не только к надстройкам Office. К этим характеристикам относятся общедоступное имя и уникальный идентификатор. В следующей таблице показано сопоставление некоторых критических свойств верхнего уровня в предварительном унифицированном манифесте с XML-элементами в текущем манифесте, где назначением разметки является принцип сопоставления.

Свойство JSON Назначение XML-элементы Комментарии
"$schema" Определяет схему манифеста. атрибуты <OfficeApp> и <VersionOverrides> Ни один.
"id" GUID надстройки. <Id> Ни один.
"version" Версия надстройки. <Версия> Ни один.
"manifestVersion" Версия схемы манифеста. атрибуты <OfficeApp> Ни один.
"name" Общедоступное имя надстройки. <DisplayName> Ни один.
"description" Общедоступное описание надстройки. <Описание> Ни один.
"accentColor" Ни один. Ни один. Это свойство не имеет эквивалента в текущем XML-манифесте и не используется в предварительной версии унифицированного манифеста. Но оно должно присутствовать.
"developer" Определяет разработчика надстройки. <ProviderName> Ни один.
"localizationInfo" Настраивает языковой стандарт по умолчанию и другие поддерживаемые языковые стандарты. <DefaultLocale> и <Переопределение> Ни один.
"webApplicationInfo" Определяет веб-приложение надстройки по его имени в Azure Active Directory. <WebApplicationInfo> В текущем XML-манифесте <элемент WebApplicationInfo> находится внутри <VersionOverrides>, а не в базовом манифесте.
"authorization" Определяет все разрешения Microsoft Graph, необходимые надстройке. <WebApplicationInfo> В текущем XML-манифесте <элемент WebApplicationInfo> находится внутри <VersionOverrides>, а не в базовом манифесте.

Элементы <Hosts>, <Requirements> и <ExtendedOverrides> являются частью базового манифеста в текущем XML-манифесте. Но понятия и цели, связанные с этими элементами, настраиваются в свойстве extensions унифицированного манифеста предварительной версии.

Свойство extensions

Свойство extensions в манифесте предварительной версии в основном представляет характеристики надстройки, которые не будут иметь отношения к другим типам расширений Microsoft 365. Например, приложения Office, которые расширяет надстройка (например, Excel, PowerPoint, Word и Outlook), указываются в свойстве extensions, как и настройки ленты приложения Office. Назначение конфигурации свойства extensions точно совпадает с целями <элемента VersionOverrides> в текущем XML-манифесте.

Примечание.

Раздел <VersionOverrides> текущего XML-манифеста имеет систему двойного перехода для многих строковых ресурсов. Строки, включая URL-адреса, задаются и назначаются идентификаторы в дочернем элементе< Resources>объекта VersionOverrides>.< Элементы, которым требуется строка, resid имеют атрибут, соответствующий идентификатору строки в элементе <Resources> . Свойство extensions унифицированного манифеста предварительного просмотра упрощает работу, определяя строки непосредственно в качестве значений свойств. В унифицированном манифесте нет ничего эквивалентного элементу <Resources> .

В следующей таблице показано сопоставление некоторых высокоуровневых дочерних свойств свойства extensions в предварительной версии унифицированного манифеста с XML-элементами в текущем манифесте. Точечная нотация используется для ссылки на дочерние свойства.

Свойство JSON Назначение XML-элементы Комментарии
"requirements.capabilities" Определяет наборы требований , которые необходимо установить надстройке. что надстройка должна быть установлена. <Требования> и <наборы> Ни один.
"requirements.scopes" Определяет приложения Office, в которых можно установить надстройку. <Hosts> Ни один.
"ribbons" Ленты, которые настраивает надстройка. <Hosts>, ExtensionPoints и различные элементы *FormFactor Свойство ribbons представляет собой массив анонимных объектов, каждый из которых объединяет назначение этих трех элементов. См. раздел Таблица "ribbons".
"alternatives" Указывает обратную совместимость с эквивалентной надстройкой COM, XLL или обоими вариантами. <EquivalentAddins> Базовые сведения см. в разделе EquivalentAddins — дополнительные сведения.
"runtimes" Настраивает внедренные среды выполнения , которые использует надстройка, в том числе различные типы надстроек, которые имеют практически или не имеют пользовательского интерфейса, например пользовательские надстройки только для функций и команды функций. <>Среды выполнения. <FunctionFile> и <ExtensionPoint> (типа CustomFunctions) Ни один.
"autoRunEvents" Настраивает обработчик для указанного события. <ExtensionPoint> (типа LaunchEvent) Ни один.

Таблица "ribbons"

В следующей таблице дочерние свойства анонимных дочерних объектов в массиве "ribbons" сопоставлены с XML-элементами текущего манифеста.

Свойство JSON Назначение XML-элементы Комментарии
"contexts" Указывает поверхности команд, которые настраивает надстройка. различные элементы *CommandSurface , такие как PrimaryCommandSurface и MessageReadCommandSurface Ни один.
"tabs" Настраивает пользовательские вкладки ленты. <CustomTab> Имена и иерархия свойств потомков вкладок точно соответствуют потомкам <CustomTab>.

Полный пример унифицированного манифеста см. в разделе Пример унифицированного манифеста предварительного просмотра.

Дальнейшие действия