次の方法で共有


XML 解析のためにドキュメント コンテンツ タイプを判別する

組み込み XML パーサーでドキュメントのコンテンツ タイプを判別し、コンテンツ タイプ定義にアクセスできるように、ドキュメント自体にコンテンツ タイプをドキュメント プロパティとして含める必要があります。パーサーは XML ドキュメント内の特別な処理命令を参照して、ドキュメントのコンテンツ タイプを識別します。コンテンツ タイプやドキュメント テンプレートごとに、ドキュメントのコンテンツ タイプを指定する処理命令を含めることができます。

パーサーがドキュメントのコンテンツ タイプを判別する方法

ユーザーが XML ドキュメントをドキュメント ライブラリにアップロードすると、Windows SharePoint Services によって組み込み XML パーサーが起動されます。パーサーがドキュメントのプロパティを昇格するには、ドキュメントのコンテンツ タイプ (存在する場合) を判別する必要があります。

パーサーは最初に、ドキュメント ライブラリのコンテンツ タイプ ID 列を表す、ドキュメント ライブラリ スキーマの Field 要素を参照します。Field 要素を参照することで、ドキュメント内でコンテンツ タイプ ID が保存される場所を調べます。次に、そのコンテンツ タイプ ID が実際にドキュメント内のその場所に保存されていることを確認します。その場所でコンテンツ タイプ ID が指定されていなければ、ドキュメントには既定のコンテンツ タイプが割り当てられます。その後、ドキュメントをアップロードし、ドキュメント プロパティを適切に昇格します。

ドキュメント内の指定された場所に実際にコンテンツ タイプ ID が含まれている場合、パーサーはその ID を持つコンテンツ タイプもドキュメント ライブラリに関連付けられているか調べます。関連付けられている場合、パーサーはドキュメントをアップロードし、ドキュメント プロパティを適切に昇格します。

一致するコンテンツ タイプが見つからない場合、パーサーはドキュメント ライブラリのコンテンツ タイプの ID を調べ、ドキュメント コンテンツ タイプの子に当たるものがあるか判断します。それがドキュメント コンテンツ タイプの子である場合、最も近い子コンテンツ タイプをドキュメントに割り当てます。その後、ドキュメントをアップロードし、ドキュメント プロパティを適切に昇格します。

注意

ほとんどの場合、ドキュメントにはサイト コンテンツ タイプが割り当てられており、一致するリスト コンテンツ タイプはサイト コンテンツ タイプの子なので、パーサーはドキュメント コンテンツ タイプの子であるコンテンツ タイプのリストを調べます。

一致するコンテンツ タイプがまったく見つからなければ、パーサーはドキュメント ライブラリのドキュメント テンプレート列を表すドキュメント ライブラリ スキーマの Field 要素を参照します (その列が存在する場合)。ドキュメント ライブラリにドキュメント テンプレート列が含まれている場合、この Field 要素を参照することで、ドキュメント テンプレートが保存されているドキュメント内の場所を調べます。次に、そのドキュメント テンプレートが実際にドキュメント内のその場所に保存されているかどうかを判別します。

実際にドキュメントにドキュメント テンプレートが含まれていれば、そのテンプレートをドキュメント ライブラリの各コンテンツ タイプに指定されているドキュメント テンプレートと比較します。ドキュメント テンプレートのコンテンツ タイプがドキュメントと同じであれば、ドキュメントにそのコンテンツ タイプを割り当てます。ドキュメント テンプレートとドキュメントに一致するコンテンツ タイプが複数存在する場合、単純に最初に一致したコンテンツ タイプを割り当てます。その後、ドキュメントをアップロードし、ドキュメント プロパティを適切に昇格します。

最終的に一致するコンテンツ タイプが見つからなかった場合、パーサーはドキュメントに既定のコンテンツ タイプを割り当てます。その後、ドキュメントをアップロードし、ドキュメント プロパティを適切に昇格します。

パーサーがドキュメントのコンテンツ タイプを判別するときに実行するチェックを次のフローチャートに示します。

パーサーが特定のドキュメント プロパティを昇格したり降格したりする方法の詳細については、「コンテンツ タイプを使用して XML ドキュメントのプロパティを指定する」を参照してください。

パーサー プロセスのロジック フロー

パーサー処理について

パーサーはドキュメント ライブラリのコンテンツ タイプとドキュメント テンプレート列を調べて、XML ファイル内で一致するドキュメント プロパティを参照する場所を調べます。そのため、昇格と降格が適切に機能するように、指定されたドキュメント ライブラリのすべてのコンテンツ タイプのコンテンツ タイプ定義とドキュメント テンプレート列定義で、それらのドキュメント プロパティにドキュメント ライブラリの列と同じ場所を指定する必要があります。同じ場所を指定しないと、パーサーはドキュメント内の間違った場所でそれらのプロパティを参照してしまいます。

コンテンツ タイプ ID またはドキュメント テンプレートによるコンテンツ タイプの指定の詳細については、「XML パーサーのドキュメント コンテンツ タイプを指定する」を参照してください。

See Also

概念

XML ドキュメント プロパティの昇格と降格

XML パーサーの処理

コンテンツ タイプを使用して XML ドキュメントのプロパティを指定する

XML パーサーのドキュメント コンテンツ タイプを指定する