XmlForm クラス

フォームの基になる XML ドキュメントを表します。

継承階層

System.Object
  Microsoft.Office.InfoPath.XmlForm

名前空間:  Microsoft.Office.InfoPath
アセンブリ:  Microsoft.Office.InfoPath (Microsoft.Office.InfoPath.dll)

構文

'宣言
Public MustInherit Class XmlForm
'使用
Dim instance As XmlForm
public abstract class XmlForm

解説

XmlForm クラスは InfoPath マネージ コード オブジェクト モデルの主要オブジェクトであり、フォームの基になる XML ドキュメント内の XML データをプログラムによって対話処理および操作するために使用できるプロパティ、メソッド、およびイベントを提供します。

XmlForm オブジェクトは、XmlFormCollection クラスから Application クラスの XmlForms プロパティを使用してアクセスできますが、ほとんどの場合、フォーム テンプレート ビジネス ロジックを使用するときは、XmlForm クラスとそのメンバーに this (C# の場合) または Me (Visual Basic の場合) キーワードを使用してアクセスし、コレクションを列挙しません。

たとえば、次に示すコードの例は Loading イベントのイベント ハンドラーであり、this または Me キーワードを使用して XmlForm クラスの MainDataSource および NamespaceManager プロパティにアクセスします。これらのプロパティを使用して System.Xml.XPath.XPathNavigator クラスのインスタンスを操作し、employee フィールドに移動 (NamespaceManager プロパティを使用して名前空間のプレフィックスを解決) して、フィールドを現在のユーザーのユーザー名に設定します。

public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
   // Create XPathNavigator positioned at the root of the main data 
   // source.
   XPathNavigator myNav = this.MainDataSource.CreateNavigator()

   // Select employee field and set value to username.
   myNav.SelectSingleNode("//my:employee",this.NamespaceManager).
      SetValue(System.Environment.UserName);
}
Public Sub FormEvents_Loading(ByVal sender As Object, ByVal e As LoadingEventArgs)
   ' Create XPathNavigator positioned at the root of the main data 
   ' source.
   Dim myNav As XPathNavigator = Me.MainDataSource.CreateNavigator()

   ' Select employee field and set value to username.
   myNav.SelectSingleNode("//my:employee", Me.NamespaceManager). _
      SetValue(System.Environment.UserName)
End Sub

注意

フォームのコードでは、this または Me キーワードを明示的に参照することなく、XmlForm クラスのメンバーにアクセスできます。たとえば、この前の C# および Visual Basic の例では、MainDataSource プロパティにアクセスするコード行を次のように記述できます。

XPathNavigator myNav = MainDataSource.CreateNavigator()
Dim myNav As XPathNavigator = MainDataSource.CreateNavigator()

ただし、コードを書くときに this または Me キーワードを使用すると、IntelliSense ステートメントの完了が容易になり、フォーム テンプレートの FormCode モジュールでビジネス ロジックのコードを書くときに XmlForm クラスのメンバーが一覧表示されます。

マネージ コードを使用する場合、フォームのソース XML データへのアクセスには MainDataSource プロパティを使用します。このプロパティは、フォームのメイン データ ソースを表す DataSource クラスのインスタンスを返します。次に、DataSource クラスの CreateNavigator メソッドを使用して、System.Xml.XPath.XPathNavigator クラスのインスタンスを作成します。作成したインスタンスは、フォームの基になる XML ドキュメントのルートに配置されます。その後、XPathNavigator クラスのメンバーを使用して、フォーム データに対して移動、読み取り、および書き込みを実行できます。InfoPath フォーム コードでの XPathNavigator クラスの使用方法の詳細については、「[方法] XPathNavigator クラスおよび XPathNodeIterator クラスを操作する方法」を参照してください。

XmlForm クラスには、フォームとその基になる XML ドキュメントに関する情報を取得するために使用できる追加のプロパティも提供されています。また、フォームに対して印刷、保存、送信などのさまざまなアクションを実行するために使用できるメソッドも提供されています。フォームの読み込み、ビューの切り替え、マージ操作などのフォームレベルのイベントは、FormEvents クラスによって実装します。さらに、基になる XML ドキュメント自体に対する変更によって発生するイベントは、XmlEvents クラスによって実装します。

XmlForm オブジェクトは、InfoPath オブジェクト モデルの XmlFormCollection クラスおよび Window クラスからアクセスできます。次の表は、XmlForm オブジェクトを使用できる場所の一覧です。

名前

説明

XmlFormCollection

Application オブジェクトから XmlForms プロパティを使用してアクセスされます。含まれる XmlForm オブジェクトにアクセスするための Item プロパティと Open() メソッドを提供します。

Window

ウィンドウに関連付けられた XmlForm オブジェクトにアクセスするための XmlForm プロパティを提供します。

Microsoft Office InfoPath 2003 Toolkit for Visual Studio .NET と組み合わせて InfoPath 2003 Service Pack 1 で最初に導入された InfoPath 2003 互換マネージ コード オブジェクト モデル (Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間の型とメンバー) では、次のクラスで、イベント発生中にフォームの基になる XML ドキュメントにアクセスするための XDocument プロパティが提供されていました。それらのクラスは、DataDOMEventObjectDocActionEventObjectDocEventObjectDocReturnEventObject、および VersionUpgradeEventObject です。

新しい InfoPath マネージ コード オブジェクト モデル (Microsoft.Office.InfoPath 名前空間の型とメンバー) では、this (C# の場合) または Me (Visual Basic の場合) キーワードを使用して、XmlForm クラスとそのメンバーにイベント ハンドラーから、またフォーム テンプレートのビジネス ロジックにおいて他のコードからアクセスします。

スレッドの安全性

この型の public static (Visual Basic ではShared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

参照

XmlForm メンバー

Microsoft.Office.InfoPath 名前空間