InfoPath 2003 オブジェクト モデルを使用してフォーム データにアクセスするHow to: Access Form Data Using the InfoPath 2003 Object Model

InfoPath フォームの機能を拡張しようと思うと、多くの場合、フォームの基になる XML ドキュメントに関する情報へのアクセス、XML ドキュメントに記述されているデータへのアクセス、XML ドキュメントに対する何らかの操作の実行などの処理をプログラムで行う必要が出てきます。InfoPath オブジェクト モデルでは、XDocument インターフェイスと XDocumentsCollection インターフェイスを関連させて使用することにより、フォームの基になる XML ドキュメントにアクセスしたり、その XML ドキュメントを操作したりすることができます。When you want to extend the functionality of an InfoPath form, it is often necessary to programmatically access information about the form's underlying XML document, access the data that the XML document contains, or perform some action on the XML document. The InfoPath object model supports accessing and manipulating a form's underlying XML document through the use of the XDocument interface in association with the XDocumentsCollection interface.

XDocument インターフェイスには、実にさまざまなプロパティ、メソッド、およびイベントが用意されており、フォームの基になる XML ドキュメントを扱えるだけではなく、InfoPath のユーザー インターフェイスで行える多数の操作を実行することもできるため、このインターフェイスは InfoPath オブジェクト モデルの中では最も便利な型の 1 つと言えます。InfoPath 2003 互換オブジェクト モデルを使用して作成されたマネージ コード プロジェクトでは、プロジェクトのフォーム コード内にイベント ハンドラーを含む **** という名前の thisXDocument 型の変数が、クラスの _StartUp メソッドの中で自動的に定義されます。フォームのコード内で thisXDocument 変数を使用すると、 XDocument インターフェイスとそのメンバーにアクセスできます。The XDocument interface is one of the most useful types within the InfoPath object model because it provides a variety of properties, methods, and events that not only interact with a form's underlying XML document, but also perform many of the actions that are available in the InfoPath user interface. In a managed-code project created using the InfoPath 2003-compatible object model, a variable of type XDocument that is named thisXDocument is automatically defined in the _StartUp method of the class that contains event handlers in your project's form code. You can use the thisXDocument variable in your form's code to access the XDocument interface and its members.

XDocumentsCollection インターフェイスの概要Overview of the XDocumentsCollection Interface

XDocumentsCollection インターフェイスには、次のメソッドおよびプロパティがあります。フォームの開発者は、これらを使用することにより、コレクションに含まれている XDocument オブジェクトを管理できます。The XDocumentsCollection interface provides the following methods and properties that form developers can use to manage the XDocument objects that the collection contains.

名前Name 説明Description
Close メソッドClose method
指定したフォームを閉じます。Closes the specified form.
New メソッドNew method
既存のフォームに基づいて新しいフォームを作成します。Creates a new form based on an existing form.
NewFromSolution メソッドNewFromSolution method
既存のフォーム テンプレートに基づいて新しいフォームを作成します。Creates a new form based on an existing form template.
NewFromSolutionWithData メソッドNewFromSolutionWithData method
指定した XML データとフォーム テンプレートを使用して、新しい InfoPath フォームを作成します。Creates a new InfoPath form using the specified XML data and form template.
Open メソッドOpen method
指定したフォームを開きます。Opens the specified form.
Count プロパティCount property
コレクションに含まれている XDocument オブジェクトの数を返します。Returns a count of the number of XDocument objects contained in the collection.
Item プロパティItem property
指定した XDocument オブジェクトへの参照を返します。Returns a reference to the specified XDocument object.

XDocument インターフェイスの概要Overview of the XDocument Interface

XDocument インターフェイスには、次のメソッドとプロパティがあります。フォームの開発者は、これらを使用することにより、フォームの基になる XML ドキュメントと相互作用したり、その XML ドキュメントに対して操作を実行したりできます。The XDocument interface provides the following methods and properties, which form developers can use to interact with and perform actions on a form's underlying XML document.

名前Name 説明Description
GetDataVariable メソッドGetDataVariable method
指定したデータ変数の文字列値を返します。Returns the string value of a specified data variable.
GetDOM メソッドGetDOM method
指定した DataObject オブジェクトに関連付けられている XML ドキュメント オブジェクト モデル (DOM) への参照を返します。Returns a reference to the XML Document Object Model (DOM) associated with the specified DataObject object.
ImportFile メソッドImportFile method
指定したフォームを現在開いているフォームにインポート (マージ) します。Imports (or merges) the specified form with the currently open form.
PrintOut メソッドPrintOut method
フォームの現在のビューを印刷します。Prints the current view of a form.
Query メソッドQuery method
フォームに関連付けられているデータ アダプターからデータを取得します。Retrieves data from a form's associated data adapter.
Save メソッドSave method
現在開いているフォームを保存します。Saves the currently open form.
SaveAs メソッドSaveAs method
現在開いているフォームを指定された名前で保存します。Saves the currently open form with the specified name.
SetDataVariable メソッドSetDataVariable method
指定したデータ変数の値を設定します。Sets the value of a specified data variable.
Submit メソッドSubmit method
デザイン モードで確立された送信操作に従ってフォームを送信します。Submits a form according to the submit operation established in design mode.
DataObjects プロパティDataObjects property
DataObjects コレクションへの参照を返します。Returns a reference to the DataObjects collection.
DOM プロパティDOM property
フォームのソース XML データが格納されている XML DOM への参照を返します。Returns a reference to the XML DOM that is populated with the source XML data of a form.
Errors プロパティErrors property
Errors コレクションへの参照を返します。Returns a reference to the Errors collection.
Extension プロパティExtension property
フォーム コード ファイルに含まれているすべての関数と変数を表すオブジェクトへの参照を返します。Returns a reference to an object representing all of the functions and variables contained in a form code file.
IsDirty プロパティIsDirty property
フォーム内のデータが変更されているかどうかを示す Boolean 値を返します。Returns a Boolean value indicating whether the data in the form has been changed.
IsDOMReadOnly プロパティIsDOMReadOnly property
XML DOM が読み取り専用に設定されているかどうかを示す Boolean 値を返します。Returns a Boolean value indicating whether the XML DOM is set as read-only.
IsNew プロパティIsNew property
変更された後にフォームが保存されたかどうかを示す Boolean 値を返します。Returns a Boolean value indicating whether the form was saved after it was created.
IsReadOnly プロパティIsReadOnly property
フォームが読み取り専用モードかどうかを示す Boolean 値を返します。Returns a Boolean value indicating whether the form is in read-only mode.
IsSigned プロパティIsSigned property
フォームがデジタル署名されているかどうかを示す Boolean 値を返します。Returns a Boolean value indicating whether the form is digitally signed.
Language プロパティLanguage property
フォームに使用される言語の文字列値を指定または取得します。Specifies or returns the string value of the language used for the form.
QueryAdapter プロパティQueryAdapter property
データ アダプター オブジェクトへの参照を返します。Returns a reference to the data adapter object.
Solution プロパティSolution property
Solution オブジェクトへの参照を返します。Returns a reference to the Solution object.
UI プロパティUI property
UI オブジェクトへの参照を返します。Returns a reference to the UI object.
URI プロパティURI property
フォームの URI (Uniform Resource Identifier) が格納された文字列値を返します。Returns a string value containing the Uniform Resource Identifier (URI) of the form.
View プロパティView property
View オブジェクトへの参照を返します。Returns a reference to the View object.
ViewInfos プロパティViewInfos property
ViewInfos コレクションへの参照を返します。Returns a reference to the ViewInfos collection.

XDocuments コレクションと XDocument インターフェイスを使用するUsing the XDocuments Collection and the XDocument Interfaces

XDocumentsCollection インターフェイスには、 Application インターフェイスの XDocuments プロパティを通じてアクセスできます。InfoPath 2003 互換オブジェクト モデルを使用して作成されたマネージ コード プロジェクトでは、プロジェクトのフォーム コードの **** メソッド内でインスタンス化される thisApplication 変数を使用して _StartUp インターフェイスにアクセスできます。次に示すコードは、現在のプロジェクトの XDocumentsCollection インターフェイスを参照する変数を作成します。The XDocumentsCollection interface is accessed through the XDocuments property of the Application interface. In a managed-code project created using the InfoPath 2003-compatible object model, you can access the XDocumentsCollection interface by using the thisApplication variable that is instantiated in the _StartUp method of your project's form code. The following lines of code create a variable that references the XDocumentsCollection interface of the current project.

XDocumentsCollection xdocs;
xdocs = thisApplication.XDocuments;
// Write code here to work with the XDocumentsCollection.
Dim xdocs As XDocumentsCollection
xdocs = thisApplication.XDocuments
' Write code here to work with the XDocumentsCollection.

InfoPath 2003 互換オブジェクト モデルを使用して作成されたマネージ コード プロジェクトでは、プロジェクトのフォーム コードの **** メソッド内でインスタンス化される thisXDocument 変数を使用して StartUp インターフェイスにアクセスできます。次に示すコードは、 thisXDocument 変数を使用して現在のプロジェクトの XDocument インターフェイスにアクセスし、現在開いているフォームの URI を通知メッセージで表示します。In a managed-code project created using the InfoPath 2003-compatible object model, you can access the XDocument interface by using the thisXDocument variable that is instantiated in the StartUp method of your project's form code. The following line of code uses the thisXDocument variable to access the XDocument interface of the current project to display the URI of the currently open form in an alert message.

thisXDocument.UI.Alert(thisXDocument.URI);
thisXDocument.UI.Alert(thisXDocument.URI)

注意

XDocument インターフェイスを使用してフォームの基になる XML ドキュメントにアクセスすると、現在開いているフォームに関連付けられている XML ドキュメントにアクセスできます。When you use the XDocument interface to access a form's underlying XML document, you are accessing the XML document that is associated with the currently open form.

XDocument インターフェイスのキー プロパティは DOM プロパティです。このプロパティは、フォームのソース XML データが格納された XML DOM への参照を返します。 DOM プロパティを使用すると、XML DOM でサポートされている任意のプロパティとメソッドを使用できます。たとえば、次に示すコードは、XML DOM の xml プロパティを使用して、フォームの基になる XML ドキュメントのすべての内容を取得し、表示しています。A key property of the XDocument interface is the DOM property. This property returns a reference to the XML DOM that is populated with the source XML data of a form. When using the DOM property, you can use any of the properties and methods that are supported by the XML DOM. For example, the following code uses the xml property of the XML DOM to return and display all of the contents of a form's underlying XML document.

string xmldoc;
xmldoc = thisXDocument.DOM.xml;
// Display xml.
thisXDocument.UI.Alert(xmldoc);
Dim xmldoc As String
xmldoc = thisXDocument.DOM.xml
' Display xml.
thisXDocument.UI.Alert(xmldoc)

注意

XML DOM と、XML DOM でサポートしているすべてのプロパティとメソッドについては、MSDN の MSXML SDK を参照してください。To learn more about the XML DOM and all of the properties and methods that it supports, see the MSXML SDK on MSDN.