XmlForm, classe

Représente le document XML sous-jacent d’un formulaire.

Hiérarchie d'héritage

System.Object
  Microsoft.Office.InfoPath.XmlForm

Espace de noms :  Microsoft.Office.InfoPath
Assembly :  Microsoft.Office.InfoPath (dans Microsoft.Office.InfoPath.dll)

Syntaxe

'Déclaration
Public MustInherit Class XmlForm
'Utilisation
Dim instance As XmlForm
public abstract class XmlForm

Remarques

La classe XmlForm est un objet clé dans le modèle objet de code managé d’InfoPath : elle fournit des propriétés, des méthodes et des événements qui peuvent être utilisés pour interagir et manipuler par programme les données XML dans un document XML sous-jacent d’un formulaire.

Même s’il est possible d’accéder aux objets XmlForm à partir de la classe XmlFormCollection à l’aide de la propriété XmlForms de la classe Application, dans la plupart des cas, lorsque vous utilisez la logique métier des modèles de formulaire, vous accédez à la classe XmlForm et à ses membres à l’aide des mots clés this (en C#) ou Me (en Visual Basic) sans passer par la collection.

Ainsi, les exemples de code suivants des gestionnaires de l’événement Loading utilisent les mots clés this ou Me pour accéder aux propriétés MainDataSource et NamespaceManager de la classe XmlForm. Ces propriétés permettent de manipuler une instance de la classe System.Xml.XPath.XPathNavigator pour accéder au champ employé (en résolvant les préfixes d’espace de noms à l’aide de la propriété NamespaceManager) et affecter au champ le nom d’utilisateur de l’utilisateur actuel.

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

Notes

Il n’est pas nécessaire de référencer explicitement les mots clés this ou Me pour accéder aux membres de la classe XmlForm dans le code du formulaire. Par exemple, les lignes de code permettant d’accéder à la propriété MainDataSource des exemples C# et Visual Basic peuvent être écrites comme suit :

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

Cependant, le fait d’utiliser les mots clés this ou Me lors de l’écriture du code facilite la saisie semi-automatique IntelliSense, qui liste les membres de la classe XmlForm lors de l’écriture de code de logique métier dans un module FormCode du modèle de formulaire.

Lorsque vous utilisez du code managé, vous accédez aux données XML source d’un formulaire via la propriété MainDataSource qui renvoie une instance de la classe DataSource représentant la source de données principale du formulaire. La méthode CreateNavigator de la classe DataSource est appelée ensuite pour créer une instance de la classe System.Xml.XPath.XPathNavigator placée à la racine du document XML sous-jacent du formulaire. Vous pouvez alors utiliser les membres de la classe XPathNavigator pour naviguer, lire et écrire les données du formulaire. Pour plus d’informations sur l’utilisation de la classe XPathNavigator dans le code des formulaires InfoPath, consultez Utilisation des classes XPathNavigator et XPathNodeIterator.

La classe XmlForm fournit également d’autres propriétés qui peuvent être utilisées pour obtenir des informations sur le formulaire et son document XML sous-jacent. Elle propose aussi des méthodes qui permettent d’effectuer diverses actions liées au formulaire, par exemple, l’impression, l’enregistrement et l’envoi. Alors que dans le modèle objet de script (COM), l’objet XDocument implémente les événements au niveau du formulaire, dans le modèle objet de code managé, les événements au niveau du formulaire, par exemple le chargement d’un formulaire, les changements de vues ou une opération de fusion, sont implémentés par la classe FormEvents. En outre, les événements déclenchés par les modifications apportées au document XML sous-jacent lui-même sont implémentés par la classe XmlEvents.

Il est possible d’accéder à l’objet XmlForm par l’intermédiaire des classes XmlFormCollection et Window du modèle objet InfoPath. Le tableau suivant récapitule les emplacements où l’objet XmlForm est disponible.

Nom

Description

XmlFormCollection

Accès à partir de l’objet Application à l’aide de la propriété XmlForms. Fournit la propriété Item et la méthode Open() pour accéder aux objets XmlForm qu’il contient.

Window

Fournit la propriété XmlForm permettant d’accéder à l’objet XmlForm associé à la fenêtre.

Dans le modèle objet de code managé compatible avec InfoPath 2003 (types et membres de l’espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust), introduit pour la première fois dans le Service Pack 1 d’InfoPath 2003 en même temps que Microsoft Office InfoPath 2003 Toolkit pour Visual Studio .NET, les classes suivantes fournissaient une propriété XDocument permettant d’accéder au document XML sous-jacent d’un formulaire lors des événements : classes DataDOMEventObject, DocActionEventObject, DocEventObject, DocReturnEventObject et VersionUpgradeEventObject.

Dans le nouveau modèle objet de code managé d’InfoPath (types et membres de l’espace de noms Microsoft.Office.InfoPath), vous utilisez les mots clés this (en C#) ou Me (en Visual Basic) pour accéder à la classe XmlForm et à ses membres à partir des gestionnaires d’événement et d’autres sections de code dans la logique métier de votre modèle de formulaire.

Sécurité des threads

Tout membre static (Shared dans Visual Basic) public de ce type garantit la sécurité des threads. Il n'est pas garanti que les membres d'instance soient sécurisés au niveau des threads.

Voir aussi

Référence

XmlForm, membres

Microsoft.Office.InfoPath, espace de noms