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 How to: Work with System.Xml from Managed-code Form Templates.
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.
Name |
Description |
---|---|
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. |
|
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.
Cohérence de thread
Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.