コンテンツ タイプの更新

最終更新日: 2010年12月1日

適用対象: SharePoint Foundation 2010

この記事の内容
コンテンツ タイプの更新方法
コンテンツ タイプの更新内容の保存
シール済みコンテンツ タイプの更新

SharePoint Online で使用可能

Microsoft SharePoint Foundation では、サイトへの展開後、リストへの追加後、およびアイテムへの割り当て後であっても、コンテンツ タイプを変更できます。この変更は、サイト コンテンツ タイプの子コンテンツ タイプに反映させることもできます。

コンテンツ タイプの更新方法

コンテンツ タイプの更新には、2 種類の標準的な方法があります。コンテンツ タイプを更新する前に、どちらの方法が適しているか判断しておく必要があります。

  • 方法 1: 必要な変更をコンテンツ タイプに加え、加えた変更をすべての子コンテンツ タイプに反映させます。

    この方法は、使用中のコンテンツ タイプに対し、変更対象が明確で、個別の変更を加える場合に最適です。

    各コンテンツ タイプには、ベースとなっているサイト コンテンツ タイプへの参照が含まれます。このため、親コンテンツ タイプに加えた変更をその子サイト コンテンツ タイプや子リスト コンテンツ タイプに対して、SharePoint Foundation が伝達 ("プッシュ (下へ)") できます。サイト コンテンツ タイプに変更を加える場合、子コンテンツ タイプのすべてに変更をプッシュ (下へ) するかどうかを選択できます。

    たとえば、サイト コンテンツ タイプに列を追加する必要があるとします。サイト コンテンツ タイプに列を追加して、さらにプッシュ (下へ) 機能を使用して、追加した列がそのコンテンツ タイプのすべての子コンテンツ タイプにも追加されるようにできます。これは、コンテンツ タイプをベースにした他のサイト コンテンツ タイプや、サイト コンテンツ タイプとその子コンテンツ タイプをベースにしたリスト コンテンツ タイプでも同様です。

    子コンテンツ タイプに変更内容をプッシュ (下へ) する場合に検討する内容の詳細については、「子コンテンツ タイプを更新する」を参照してください。

  • 方法 2: 必要な変更が含まれている新規のコンテンツ タイプを作成し、そのコンテンツ タイプを元のコンテンツ タイプが存在する位置に展開し、元のコンテンツ タイプに _Hidden コンテンツ タイプ グループを追加します。

    この方法は、現在使用しているコンテンツ タイプを更新したコンテンツ タイプで置き換えたいが、既にコンテンツ タイプが割り当てられているアイテム用に現在のコンテンツ タイプを保持したい場合に最適です。

    たとえば、製品仕様を表す ProductSpec という名称のコンテンツ タイプがあり、社内でこのコンテンツ タイプが数年間使用されてきているとします。そして、製品仕様において追跡する要件が変更されました。要件の変更を具体化するコンテンツ タイプを作成する必要があり、これまでの経緯を考慮して、何年もの間アイテムに割り当てられてきた現行の ProductSpec コンテンツ タイプも保持しなければなりません。このような場合、現行の ProductSpec コンテンツ タイプをベースに ProductSpec2010 という新規のコンテンツ タイプを作成できます。ProductSpec2010 コンテンツ タイプをフィーチャーとしてパッケージ化した後は、サイト コレクションに対してそのコンテンツ タイプをインストールし、アクティブ化するコードを作成し、ProductSpec2010 コンテンツ タイプを、ProductSpec コンテンツ タイプが既に追加されているすべてのサイトとリストに追加できます。最後に、ProductSpecコンテンツ タイプHidden プロパティを true に設定するコードを作成できます。これで、製品仕様を作成するサイトにユーザーがアクセスすると、ProductSpec2010 を選択できるようになり、ProductSpec コンテンツ タイプは表示されなくなります。ただし、ProductSpec コンテンツ タイプは、追加されていたサイトとリストにはそのまま存在し、このコンテンツ タイプが割り当てられているアイテムは変更されないままです。

    非表示のコンテンツ タイプは、リスト ビューの [新規作成] メニューには表示されません。そのため、非表示のコンテンツ タイプのアイテムは、リストから作成することはできません。詳細については、「コンテンツ タイプのアクセス制御」を参照してください。

コンテンツ タイプの更新内容の保存

SharePoint Foundation は、コンテンツ タイプに加えられた変更を、コンテンツ タイプ定義ファイルに書き戻しません。代わりに、コンテンツ タイプの更新内容を SharePoint Foundation データベースのエントリとして保存します。

すべてのリスト コンテンツ タイプは SharePoint Foundation データベースのエントリとして格納されます。これは、サイト コンテンツ タイプをリストに追加するときに、SharePoint Foundation はサイト コンテンツ タイプをリスト コンテンツ タイプとしてローカルにリストへコピーするためです。詳細については、「サイトとリストのコンテンツ タイプ」を参照してください。

コンテンツ タイプ定義ファイルの詳細については、「コンテンツ タイプ定義」を参照してください。

重要重要

コンテンツ タイプをインストールして、そのコンテンツ タイプをアクティブ化した後は、どのような場合であっても、そのコンテンツ タイプのコンテンツ タイプ定義ファイルを更新しないでください。SharePoint Foundation は、コンテンツ タイプ定義ファイルに加えられた変更内容をすべて追跡しているわけではありません。そのため、サイト コンテンツ タイプに加えられた変更内容すべてを子コンテンツ タイプにプッシュ (下へ) する、信頼性の高い方法はありません。

シール済みコンテンツ タイプの更新

シール済みコンテンツ タイプは、ユーザー インターフェイスやオブジェクト モデルを経由して更新することはできません。シール済みコンテンツ タイプを更新する必要のある場合は、そのコンテンツ タイプの Sealed プロパティを false に設定してから、変更を加えなければなりません。コンテンツ タイプ定義ファイルは直接編集しないでください。

SPContentType オブジェクトの Sealed プロパティを設定するには、サイト コレクション管理者の権限が必要です。詳細については、「コンテンツ タイプの変更管理」を参照してください。

関連項目

概念

コンテンツ タイプについて

子コンテンツ タイプを更新する

コンテンツ タイプのアクセス制御

サイトとリストのコンテンツ タイプ

コンテンツ タイプの変更管理