質問:
OOTB ブログ リストのスキーマはどこで定義されていますか? (つまり、投稿、カテゴリ、およびコメント リストの場合)
リスト テンプレートとインスタンスは、 14/TEMPLATE/Blogにある OOTB ブログ サイト テンプレートのonet.xmlに埋め込まれていますが、リストのコンテンツ タイプ、フィールド、またはビューについては言及されていません。
バックグラウンド:
カスタム サイト定義(OOTB ブログ サイト テンプレートのコピーに基づく) を作成して、ブランディングやその他のカスタマイズをブログに適用できるようにしました。
これらのカスタマイズの一部は、サイト定義の一部としてアクティブ化されるフィーチャー レシーバーによって実行されます。残念ながら、SharePoint がonet.xmlからアイテムをプロビジョニングする順序は次のとおりです。
- サイトがプロビジョニングされました
- 機能がアクティブ化されました
- フィーチャー レシーバーが有効化されている
- サイト定義の onet.xml で定義されているその他の要素 (リストなど) がプロビジョニングされます。
ご覧のとおり、フィーチャー レシーバー (私の場合は、コメント リストとカテゴリ リストのアクセス許可を更新しようとしています) は、リストが作成される前にアクティブ化されます。これに対する解決策は非常に簡単です。通常どおり、機能の一部としてリストを作成するだけです。
これを行うには、Visual Studio でリスト定義を作成する必要がありますが、これらの OOTB リストの schema.xml ファイルが見つかりません。