次の方法で共有


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

ユーザーによるドキュメント ライブラリへの XML ドキュメントの初回アップロード時、組み込みの XML パーサーはコンテンツ タイプとドキュメント テンプレート プロパティを調べて、ドキュメントに割り当てるコンテンツ タイプを確認します。パーサーがドキュメント プロパティを昇格したり降格したりするためには、ドキュメント ライブラリに関連付けられたコンテンツ タイプのうち、どのタイプにドキュメントを割り当てるかを確認する必要があります。

ドキュメントのコンテンツ タイプをドキュメント ライブラリに関連付けられたコンテンツ タイプと照合するためにパーサーが実行するプロセスの詳細については、「XML 解析のためにドキュメント コンテンツ タイプを判別する」を参照してください。

コンテンツ タイプ ID によってコンテンツ タイプを指定する

パーサーは、ドキュメントのコンテンツ タイプを指定する処理命令をコンテンツ タイプ ID によって検索します。この処理命令の場所は、コンテンツ タイプ ID 列テンプレートの定義に含まれています。この処理命令は MicrosoftWindowsSharePointServices という名前であり、ドキュメントのコンテンツ タイプの ID を表す ContentTypeID という属性を含みます。

<FieldRef

ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}"

Name="Content Type ID"

PITarget="MicrosoftWindowsSharePointServices"

PIAttribute="ContentTypeID"/>

既定では、すべてのライブラリ リスト テンプレートにコンテンツ タイプ ID を表すカラムが含まれています。

この処理命令を XML ドキュメントに追加します。ContentTypeID 属性をドキュメントのコンテンツ タイプの ID に設定します。

以下に例を示します。

<?MicrosoftWindowsSharePointServices ContentTypeID=”0x010101003D7907A1908011d082BD08005AA74F5E00A557E10DA69DBF4C8BE1E21071B08163”/>

次のような場合、パーサーはコンテンツ タイプを確認できません。

  • MicrosoftWindowsSharePointServices 処理命令がドキュメント内に存在しない場合。

  • 処理命令がコンテンツ タイプを指定していない場合。

  • 指定されたコンテンツ タイプがドキュメント ライブラリに関連付けられていない場合。

  • 指定されたコンテンツ タイプの親または子がドキュメント ライブラリに関連付けられていない場合。

コンテンツ タイプ ID によってコンテンツ タイプを識別できない場合、パーサーは 2 番目のチェックを実行します。詳細については、次のセクションを参照してください。

注意

パーサーは、ユーザーがドキュメント ライブラリでコンテンツ タイプ ID カラムのフィールド定義に指定したドキュメントの場所を対象に、コンテンツ タイプ ID を検索します。コンテンツ タイプ ID カラムは、選択した任意の処理命令または XPath 式にマップできます。ただし、コンテンツ タイプ ID 列テンプレート定義に含まれる既定のマッピングに従うことをお勧めします。既定のマッピングに従うと、このドキュメント プロパティに対して、関連付けられたドキュメント ライブラリとは異なる場所を指定するコンテンツ タイプが使用される可能性を最小化できます。異なる場所を指定したコンテンツ タイプが使用された場合、XML パーサーは正しくないドキュメントの場所を対象にコンテンツ タイプ ID を検索することになります。

ドキュメント テンプレートによってコンテンツ タイプを指定する

ドキュメントの適切なコンテンツ タイプをコンテンツ タイプ ID に基づいて確認できない場合、パーサーは、ドキュメントの基になっているドキュメント テンプレートの URL を含む処理命令を検索します。この処理命令は mso-infoPathSolution という名前であり、ドキュメント テンプレートの URL を表す href という属性を含みます。

<FieldRef

ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}"

Name="DocumentTemplate"

PITarget="mso-infoPathSolution"

PIAttribute="href"/>

このカラムはフォーム コンテンツ タイプに含まれており、そのコンテンツ タイプがライブラリに追加されるたびにライブラリに追加されます。

そのため、コンテンツ タイプ ID を含める代わりに、この処理命令を XML ドキュメントに追加できます。href 属性をドキュメントの基になっているドキュメント テンプレートの URL に設定します。

以下に例を示します。

<?mso-infoPathSolution href=”http://www.adventureworks.com/templates/myTemplate.XML”?>

この処理命令を見つけた場合、パーサーはドキュメント ライブラリに関連付けられたコンテンツ タイプを調べて、コンテンツ タイプが同じドキュメント テンプレートを使用しているかどうかを確認します。同じドキュメント テンプレートが使用されている場合は、そのコンテンツ タイプをドキュメントに割り当てます。ドキュメント ライブラリに関連付けられた複数のコンテンツ タイプが同一の一致するドキュメント テンプレートを使用している場合、パーサーは単純に、一致する最初のコンテンツ タイプを割り当てます。

注意

パーサーは、ユーザーがドキュメント ライブラリでドキュメント テンプレート カラムのフィールド定義に指定したドキュメントの場所を対象に、ドキュメント テンプレートの URL を検索します。ドキュメント テンプレート カラムは、選択した任意の処理命令または XPath 式にマップできます。ただし、ドキュメント テンプレート列テンプレート定義に含まれる既定のマッピングに従うことをお勧めします。既定のマッピングに従うと、このドキュメント プロパティに対して、関連付けられたドキュメント ライブラリとは異なる場所を指定するコンテンツ タイプが使用される可能性を最小化できます。異なる場所を指定したコンテンツ タイプが使用された場合、XML パーサーは正しくないドキュメントの場所を対象にドキュメント テンプレートを検索することになります。

See Also

概念

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

XML パーサーの処理

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

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