ドキュメントの解析とコンテンツ タイプ
最終更新日: 2010年11月1日
適用対象: SharePoint Foundation 2010
Microsoft SharePoint Foundation がドキュメント プロパティのレベル上げのためにドキュメント パーサーを呼び出すと、パーサーは、すべてのドキュメント プロパティを IParserPropertyBag インターフェイス のインスタンスに書き込みます。その後、SharePoint Foundation は、ドキュメント ライブラリの列と一致するプロパティをプロパティ バッグの中から決定します。プロパティ バッグが、ドキュメントにコンテンツ タイプが割り当てられていることを示し、そのコンテンツ タイプがドキュメント ライブラリでサポートされている場合は、SharePoint Foundation は、コンテンツ タイプに含まれている列と一致するドキュメント プロパティのレベルを上げます。
詳細については、「ドキュメント プロパティの昇格と降格」を参照してください。
ドキュメントのコンテンツ タイプを解析する
ドキュメント パーサーのインターフェイスを使用して、ドキュメント パーサーはドキュメントに割り当てられているコンテンツ タイプにアクセスし、そのコンテンツ タイプをドキュメント自体に格納できます。また、ドキュメント パーサーは、リストまたはドキュメント ライブラリで使用されているコンテンツ タイプの定義のバージョンに一致させるために、ドキュメントに格納されているコンテンツ タイプの定義を更新できます。
SharePoint Foundation がパーサーを呼び出してドキュメントを解析するときに、パーサーがドキュメントのコンテンツ タイプをドキュメント プロパティとしてプロパティ バッグ オブジェクトに書き込む場合、SharePoint Foundation は、ドキュメントのコンテンツ タイプ ID と、ドキュメントがアップロードされているドキュメント ライブラリに関連付けられたコンテンツ タイプ ID を比較します。ドキュメントのコンテンツ タイプがドキュメント ライブラリに関連付けられたものと同じ場合、SharePoint Foundation は適切なドキュメント プロパティのレベルを上げて、ドキュメントを保存します。SharePoint Foundation は、プロパティ バッグ オブジェクトのコンテンツ タイプ スキーマを更新し、ドキュメントに埋め込まれているコンテンツ タイプ スキーマを更新するようにパーサーに要求します。
ただし、場合によっては、ドキュメントのコンテンツ タイプが、実際にはユーザーがドキュメントをアップロードするドキュメント ライブラリと関連付けられていないことがあります。たとえば、ユーザーがコンテンツ タイプを含むドキュメント テンプレートからドキュメントを作成した場合や、ユーザーがドキュメントを 1 つのドキュメント ライブラリから別のドキュメント ライブラリに移動した場合です。
ドキュメントのコンテンツ タイプがドキュメント ライブラリと関連付けられていない場合、SharePoint Foundation は次の処理を行います。
ドキュメントにコンテンツ タイプ用のドキュメント プロパティが含まれていても、そのドキュメント プロパティが空の場合、SharePoint Foundation はパーサーを呼び出して、ドキュメント ライブラリ用の既定のリスト コンテンツ タイプのレベルをドキュメントに下げます。その後、SharePoint Foundation は、既定のリスト コンテンツ タイプ内の列と一致するドキュメント プロパティのレベルを上げて、そのドキュメントを保存します。
これは、ドキュメントがコンテンツ タイプを割り当てられていない場合に行われます。
ドキュメントに、ドキュメント ライブラリと関連付けられていないコンテンツ タイプが割り当てられている場合、SharePoint Foundation は、そのドキュメント ライブラリがコンテンツ タイプを受け入れるかどうかを判断します。受け入れる場合、SharePoint Foundation はドキュメントのコンテンツ タイプを変更しません。SharePoint Foundation はドキュメントのコンテンツ タイプのレベル上げを行いませんが、ドキュメント ライブラリ列と一致するドキュメント プロパティがある場合はレベル上げを行います。
コンテンツ タイプを受け入れるように、リストを設定することができます。そのためには、リストに Unknown Document Type というコンテンツ タイプを追加します。それによって、コンテンツ タイプを変更しなくても、任意のコンテンツ タイプのドキュメントをリストにアップロードできるようになります。こうすると、コンテンツ タイプを変更した場合のようにドキュメントのメタデータを失うことなく、ドキュメントをリストに移行できます。
ドキュメントに、ドキュメント ライブラリに関連付けられていないコンテンツ タイプが割り当てられている場合、ドキュメント ライブラリがコンテンツ タイプを受け入れないときは、SharePoint Foundation がパーサーを呼び出して、ドキュメント ライブラリの既定のリスト コンテンツ タイプのレベルをドキュメントに下げます。その後、SharePoint Foundation は、既定のリスト コンテンツ タイプ内の列と一致するドキュメント プロパティのレベルを上げて、そのドキュメントを保存します。
http://mycasty.jp/louooshiba/ 以下の図は、パーサーがドキュメントを解析するときに、SharePoint Foundation に返されるプロパティ バッグにパーサーがドキュメントのコンテンツ タイプをドキュメント プロパティとして含める場合、SharePoint Foundation によって実行される処理について説明しています。
SharePoint Foundation がドキュメントのコンテンツ タイプをドキュメント ライブラリにレベル上げすることはありません。