フォームを拡張する
最終更新日: 2010年2月8日
適用対象: SharePoint Foundation 2010
この記事の内容
起動コントロールを作成し、登録する
プロパティの昇格と降格
リンク管理
フォームの結合
ここでは、Microsoft SharePoint Foundation のフォーム コンテンツ タイプを拡張する方法についての概要を説明します。
サードパーティの開発者は、SharePoint Foundation と互換性のある XML エディターでフォーム コンテンツ タイプの XML ファイルを開くための起動コントロールを提供する DLL を作成できます。フォーム コンテンツ タイプは、ドキュメント コンテンツ タイプの拡張機能で、XML ファイル用に設計されています。
フォーム コンテンツ タイプは、XML ファイルで作業するための以下の機能を提供します。
プロパティの昇格と降格 XML ファイルに格納されているデータを SharePoint Foundation ライブラリ内の列として昇格し、これらのプロパティを通じてドキュメントに書き戻すことができるようにします。
リンク管理 XML ファイル内のリンクとフォームのテンプレートの関連付けを維持します。
結合フォーム 複数の XML ファイルをクライアント アプリケーションに送信して結合します。
起動コントロールを作成し、登録する
サードパーティの開発者は、XML エディターで XML ドキュメントを開くための起動コントロールを提供する DLL を作成できます。コントロールは、XML ファイルの作成、編集、結合、およびテンプレートのカスタマイズのために OpenXMLDocuments コントロール コントロールの説明にあるのと同じインターフェイスを提供する必要があります。コントロールは、SharePoint.OpenXMLDocuments などの ProgID を持ち、クライアント コンピューター上にインストールされてそこで登録される必要があります。
SharePoint Foundation 展開用の DocIcon.xml ファイルについて ファイルは、特定のドキュメントの種類の ProgID (たとえば、Word.Document) とファイル名拡張子を起動コントロールの ProgID およびフォーム ライブラリでドキュメントを表すアイコンにマッピングするようにカスタマイズできます。
プロパティの昇格と降格
SharePoint Foundation は、XML フォームのドキュメント プロパティの昇格と降格を両方とも提供します。
SharePoint Foundation には、XML ドキュメントに含まれているプロパティの昇格と降格に使用できる組み込みの XML ドキュメント パーサーが含まれています。フォームは XML ドキュメントなので、ドキュメント プロパティの昇格または降格が要求されたときには必ず、SharePoint Foundation が自動的に組み込みの XML パーサーを起動します。
注意
プロパティの昇格とは、フォームから値を抽出し、その値をフォームが格納されているライブラリの適切な列に書き込むことを言います。プロパティの降格は、フォームが格納されているライブラリから列の値を取り出して、その列の値をドキュメントに書き込むことを言います。
詳細については、「XML ドキュメント プロパティの昇格と降格」を参照してください。
リンク管理
リンク管理により、特定のフォーム コンテンツ タイプに割り当てられているフォームを、フォーム コンテンツ タイプ テンプレートと同期した状態に保つことが可能になります。リンク管理には次の機能があります。
自動リンク管理 フォームをテンプレートと同期化した後、どれかのサイト、サブサイト、またはライブラリが名前変更されても、リンクはフォーム コンテンツ タイプのテンプレート URL と同期が取られた状態が自動的に維持されます。
注意
リンク管理は、直ちに発生するわけではありません。フラグが設定され、ファイルのダウンロードが要求されたときに発生します。
手動の再リンク 最初の時点でフォームがフォーム コンテンツ タイプのテンプレート URL と同期できていなかった場合は、[カスタマイズ] ページの [このフォーム コンテンツ タイプへのフォームの再リンク] を選択することで、手動で再リンクできます。これは、アップロードされたドキュメントに、つまり 1 つのサーバーから別のサーバーへコピーされたフォームに使用されます。
どちらのメカニズムでも、XML フォーム内のフォーム テンプレートが指定されている場所が、フォーム コンテンツ タイプ内の TemplateUrl 列で指定されている必要があります。これにより、SharePoint Foundation がこのコンテンツ タイプに割り当てられている XML ドキュメントに正しいテンプレートの場所を降格することが可能になります。
この情報が XML フォーム内の処理命令 (PI) に格納されている場合は、次の例に示すように、TemplateUrl 列の PITarget 属性と PIAttribute 属性を使用してその場所を指定します。
<FieldRef
ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}"
Name="TemplateUrl"
PITarget="PI_Element"
PIAttribute="PI_Attribute"/>
さらに、命令を処理するときに SharePoint Foundation が PITarget 属性と PIAttribute 属性で指定されている場所を見る前に最初に見るプライマリ位置を指定できます。これを行うには、別の一対の属性、PrimaryPITarget と PrimaryPIAttribute を追加します。これらの属性が存在する場合、SharePoint Foundation はまずそれらで指定される位置にあるテンプレート URL を調べます。パーサーは、その場所に値があればその値を使用し、PITarget 属性と PIAttribute 属性は無視します。以下に例を示します。
<FieldRef
ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}"
Name="TemplateUrl"
PrimaryPITarget="primaryPI_Element"
PrimaryPIAttribute="primaryPI_Attribute"
PITarget="PI_Element"
PIAttribute="PI_Attribute"/>
この情報がフォームの XML コンテンツに格納されている場合は、TemplateUrl 列定義の Node 属性を使用してその場所を指定します。以下に例を示します。
<FieldRef
ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}"
Name="TemplateUrl"
Node="XPath"/>
SharePoint Foundation がこれらの属性を使用してテンプレート URL などのドキュメント プロパティを昇格させたり降格させたりする方法の詳細については、「コンテンツ タイプを使用して XML ドキュメントのプロパティを指定する」を参照してください。
フォームの結合
フォームの結合は、同じスキーマを持つ複数のフォームの結合ビューを提供するメカニズムを持つフォーム コンテンツ タイプを提供します。
そのコンテンツ タイプでの結合を可能にするには、"Combine" という内部名を持つ結合サイト列がコンテンツ タイプに含まれている必要があります。フォーム コンテンツ タイプには、適切な内部名を持つ結合サイト列が既定で含まれています。結合列は、ユーザーが結合するフォームを選択することを可能にします。