XmlForm クラス
フォームの基になる XML ドキュメントを表します。
名前空間: 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 クラスは、InfoPath スクリプト (COM) オブジェクト モデルおよび InfoPath 2003 互換 (Microsoft.Office.InfoPath.SemiTrust) オブジェクト モデルの XDocument オブジェクトと、ほとんどの点で同等です。
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()
マネージ コードを使用する場合、フォームのソース XML データへのアクセスには MainDataSource プロパティを使用します。このプロパティは、フォームのメイン データ ソースを表す DataSource クラスのインスタンスを返します。次に、DataSource クラスの CreateNavigator メソッドを使用して、System.Xml.XPath.XPathNavigator クラスのインスタンスを作成します。作成したインスタンスは、フォームの基になる XML ドキュメントのルートに配置されます。その後、XPathNavigator クラスのメンバを使用して、フォーム データに対して移動、読み取り、および書き込みを実行できます。InfoPath フォーム コードでの XPathNavigator クラスの使用方法の詳細については、「[方法] XPathNavigator クラスおよび XPathNodeIterator クラスを操作する方法」を参照してください。
XmlForm クラスには、フォームとその基になる XML ドキュメントに関する情報を取得するために使用できる追加のプロパティも提供されています。また、フォームに対して印刷、保存、送信などのさまざまなアクションを実行するために使用できるメソッドも提供されています。スクリプト (COM) オブジェクト モデルでは、XDocument オブジェクトによってフォームレベルのイベントを実装しますが、マネージ コード オブジェクト モデルでは、フォームの読み込み、ビューの切り替え、マージ操作などのフォームレベルのイベントは、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 プロパティが提供されていました。それらのクラスは、DataDOMEventObject、DocActionEventObject、DocEventObject、DocReturnEventObject、および VersionUpgradeEventObject です。
新しい InfoPath マネージ コード オブジェクト モデル (Microsoft.Office.InfoPath 名前空間の型とメンバ) では、this (C# の場合) または Me (Visual Basic の場合) キーワードを使用して、XmlForm クラスとそのメンバにイベント ハンドラから、またフォーム テンプレートのビジネス ロジックにおいて他のコードからアクセスします。
継承階層
System.Object
Microsoft.Office.InfoPath.XmlForm
スレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。