Share via


XML マニフェストと Microsoft 365 の統合マニフェストを比較する

この記事は、XML マニフェストに精通している読者が、2 つを比較して統合マニフェストを理解するのに役立ちます。 また、 Microsoft 365 用の統合マニフェストを含む Office アドインも表示されます。

注:

統合マニフェストは現在、Outlook アドインのみをサポートしており、Office では Microsoft 365 サブスクリプションにリンクされ、Windows、モバイル デバイス、またはOutlook on the webにインストールされています。 Excel、PowerPoint、Word、Outlook on Mac、および永続的なバージョンの Office へのサポートの拡張に取り組んでいます。

スキーマと一般的なポイント

統合マニフェストには、合計 7 つのスキーマを持つ現在の XML マニフェストとは対照的に、スキーマは 1 つだけです

統合 XML マニフェストと現在の XML マニフェストの概念マッピング

このセクションでは、現在の XML マニフェストに精通しているリーダー向けの統合マニフェストについて説明します。 留意すべき点:

  • 統合マニフェストは JSON 形式です。

  • JSON では、XML と同様に属性と要素の値が区別されません。 通常、XML 要素にマップされる JSON は、要素値と各属性の両方を子プロパティにします。 次の例では、いくつかの XML マークアップとその同等の JSON を示します。

    <MyThing color="blue">Some text</MyThing>
    
    "myThing" : {
        "color": "blue",
        "text": "Some text"
    }
    
  • 現在の XML マニフェストには、複数の名前を持つ要素に、同じ名前の単数形バージョンの子が含まれている場所が多数あります。 たとえば、カスタム メニューを構成するマークアップには、複数<の Item>>要素の子を<持つ Items 要素が含まれています。 これらの複数の要素に相当する JSON は、その値として配列を持つプロパティです。 配列のメンバーは 匿名 オブジェクトであり、"item" または "item1"、"item2" などの名前のプロパティではありません。次に例を示します。

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

最上位レベルの構造

現在の XML マニフェストの OfficeApp> 要素にほぼ対応する<統合マニフェストのルート レベルは匿名オブジェクトです。

OfficeApp> の<子は、一般的に 2 つの概念カテゴリに分類されます。 <VersionOverrides> 要素は 1 つのカテゴリです。 もう 1 つの子は、OfficeApp> の他のすべての子<で構成されます。これらは、総称して基本マニフェストと呼ばれます。 そのため、統合マニフェストにも同様の除算があります。 最上位レベルの "extensions" プロパティがあり、その目的と子プロパティが VersionOverrides> 要素に<ほぼ対応しています。 統合マニフェストには、XML マニフェストの基本マニフェストと同じ目的でまとめて機能する他の 10 を超える最上位のプロパティもあります。 これらの他のプロパティは、統合マニフェストの基本マニフェストとしてまとめて考えることができます。

基本マニフェスト

基本マニフェスト プロパティは、どんな種類の Microsoft 365 拡張機能も持つことが想定されるアドインの特性を指定します。 これには、Office アドインだけでなく、Teams タブとメッセージ拡張機能も含まれます。これらの特性には、パブリック名と一意の ID が含まれます。 次の表は、統合マニフェスト内のいくつかの重要な最上位のプロパティを現在のマニフェストの XML 要素にマッピングする方法を示しています。ここで、マッピングの原則はマークアップの 目的 です。

JSON プロパティ 用途 XML 要素 コメント
"$schema" マニフェスト スキーマを識別します。 OfficeApp> と VersionOverrides の<>属性< なし。
"id" アドインの GUID。 <Id> なし。
"version" アドインのバージョンです。 <バージョン> なし。
"manifestVersion" マニフェスト スキーマのバージョンです。 OfficeApp> の<属性 なし。
"name" アドインのパブリック名。 <DisplayName> なし。
"description" アドインの公開用の説明。 <説明> なし。
"accentColor" なし。 なし。 このプロパティは、現在の XML マニフェストでは同等ではなく、統合マニフェストでは使用されません。 ただし、存在する必要があります。
"developer" アドインの開発者を識別します。 <ProviderName> なし。
"localizationInfo" 既定のロケールとその他のサポートされているロケールを構成します。 <DefaultLocale><Override> なし。
"webApplicationInfo" Azure Active Directory で既知のアドインの Web アプリを識別します。 <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 など) は、Office アプリケーション リボンのカスタマイズと同様に、"extensions" プロパティ内で指定されます。 "extensions" プロパティの構成目的は、現在の XML マニフェストの <VersionOverrides> 要素と密接に一致します。

注:

現在の <XML マニフェストの VersionOverrides> セクションには、多くの文字列リソースに対する "二重ジャンプ" システムがあります。 URL を含む文字列が指定され、VersionOverrides> の Resources 子<に ID が割り当てられます。<> 文字列を必要とする要素には、residResources> 要素の文字列の ID と一致する属性があります<。 統合マニフェストの "extensions" プロパティは、文字列をプロパティ値として直接定義することで、作業を簡略化します。 統合マニフェストには、Resources> 要素と<同等のものはありません。

次の表は、統合マニフェストの "extensions" プロパティのいくつかの高レベルの子プロパティと、現在のマニフェストの XML 要素のマッピングを示しています。 ドット表記は、子プロパティを参照するために使用されます。

JSON プロパティ 用途 XML 要素 コメント
"requirements.capabilities" アドインをインストール可能にする必要がある 要件セット を識別します。 アドインをインストール可能にする必要があることを示します。 <要件><セット> なし。
"requirements.scopes" アドインをインストールできる Office アプリケーションを識別します。 <Hosts> なし。
"ribbons" アドインがカスタマイズするリボン。 <ホスト>ExtensionPoints、およびさまざまな *FormFactor 要素 "ribbons" プロパティは、これら 3 つの要素の目的をマージする匿名オブジェクトの配列です。 「リボン」の表を参照してください。
"alternatives" 同等の COM アドイン、XLL、またはその両方との下位互換性を指定します。 <EquivalentAddins> 背景情報については、「EquivalentAddins - 参照」を参照してください。
"runtimes" カスタム関数専用アドインや関数コマンドなど、UI がほとんどまたはまったくないさまざまな種類のアドインなど、アドインで使用される埋め込みランタイムを構成します。 <>ランタイム<FunctionFile><ExtensionPoint> (CustomFunctions 型) なし。
"autoRunEvents" 指定したイベントのイベント ハンドラーを構成します。 <ExtensionPoint> (LaunchEvent 型) なし。

"ribbons" テーブル

次の表は、"ribbons" 配列内の匿名子オブジェクトの子プロパティを、現在のマニフェストの XML 要素にマップします。

JSON プロパティ 用途 XML 要素 コメント
"contexts" アドインがカスタマイズするコマンド サーフェスを指定します。 PrimaryCommandSurfaceMessageReadCommandSurface など、さまざまな *CommandSurface 要素 なし。
"tabs" カスタム リボン タブを構成します。 <CustomTab> "タブ" の子孫プロパティの名前と階層は、CustomTab の子孫 <と密接に一致します>

完全なサンプル統合マニフェストについては、「サンプル統合 マニフェスト」を参照してください。

次の手順