Classe XmlForm
Rappresenta il documento XML sottostante di un modulo.
Spazio dei nomi: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)
Sintassi
Public MustInherit Class XmlForm
Dim instance As XmlForm
public abstract class XmlForm
Osservazioni
La classe XmlForm è un oggetto chiave del modello a oggetti in codice gestito di InfoPath che implementa proprietà, metodi ed eventi che possono essere utilizzati per interagire con e modificare i dati XML presenti nel documento XML sottostante di un modulo a livello di programmazione. La classe XmlForm equivale, per molti aspetti, all'oggetto XDocument dei modelli a oggetti script (COM) di InfoPath e di quelli compatibili con InfoPath 2003 (Microsoft.Office.InfoPath.SemiTrust).
Mentre agli oggetti XmlForm è possibile accedere dalla classe XmlFormCollection utilizzando la proprietà XmlForms della classe Application, nella maggior parte dei casi, quando si utilizza la regola business del modello di modulo, si accede alla classe XmlForm e ai relativi membri utilizzando la parola chiave this (in C#) o Me (in Visual Basic) senza ricorrere all'insieme.
Nel codice di esempio seguente relativo ai gestori eventi per l'evento Loading viene ad esempio utilizzata la parola chiave this o Me per accedere alle proprietà MainDataSource e NamespaceManager della classe XmlForm. Queste proprietà sono utilizzate in un'istanza della classe System.Xml.XPath.XPathNavigator per passare al campo employee, risolvendo i prefissi dello spazio dei nomi tramite la proprietà NamespaceManager, e per impostare il campo sul nome dell'utente corrente.
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
![]() |
---|
Non è necessario fare riferimento esplicitamente alla parola chiave this o Me per accedere ai membri della classe XmlForm nel codice del modulo. Le righe di codice per accedere alla proprietà MainDataSource negli esempi precedenti relativi a C# e Visual Basic possono ad esempio essere scritte come indicato di seguito: |
XPathNavigator myNav = MainDataSource.CreateNavigator()
Dim myNav As XPathNavigator = MainDataSource.CreateNavigator()
Quando si utilizza codice gestito, è possibile accedere ai dati XML di origine di un modulo tramite la proprietà MainDataSource, che restituisce un'istanza della classe DataSource che rappresenta l'origine dati principale del modulo. Viene quindi utilizzato il metodo CreateNavigator della classe DataSource per creare un'istanza della classe System.Xml.XPath.XPathNavigator posizionata nel nodo principale del documento XML sottostante. I membri della classe XPathNavigator possono quindi essere utilizzati per esplorare, leggere e scrivere nei dati del modulo. Per ulteriori informazioni sull'utilizzo della classe XPathNavigator nel codice del modulo di InfoPath, vedere Procedura: Utilizzare le classi XPathNavigator e XPathNodeIterator.
La classe XmlForm implementa inoltre proprietà aggiuntive che possono essere utilizzate per ottenere informazioni sul modulo e sul relativo documento XML sottostante, nonché metodi che possono essere utilizzati per eseguire diverse azioni con il modulo, ad esempio la stampa, il salvataggio e l'invio. Mentre nel modello a oggetti script (COM) l'oggetto XDocument implementa gli eventi a livello di modulo, nel modello a oggetti in codice gestito gli eventi a livello di modulo, ad esempio il caricamento di un modulo, il passaggio tra diverse visualizzazioni o un'operazione di unione, vengono implementati dalla classe FormEvents. Gli eventi generati dalle modifiche al documento XML sottostante vengono inoltre implementati dalla classe XmlEvents.
È possibile accedere all'oggetto XmlForm dalle classi XmlFormCollection e Window del modello a oggetti di InfoPath. Nella tabella seguente vengono riepilogate le posizioni in cui è disponibile l'oggetto XmlForm.
Nome |
Descrizione |
---|---|
XmlFormCollection |
Accesso dall'oggetto Application tramite la proprietà XmlForms. Implementa la proprietà Item e il metodo Open per l'accesso agli oggetti XmlForm contenuti. |
Window |
Implementa la proprietà XmlForm per l'accesso all'oggetto XmlForm associato alla finestra. |
Nel modello a oggetti in codice gestito compatibile con InfoPath 2003 (tipi e membri dello spazio dei nomi Microsoft.Office.Interop.InfoPath.SemiTrust), introdotto per la prima volta in InfoPath 2003 Service Pack 1 insieme a Microsoft Office InfoPath 2003 Toolkit per Visual Studio .NET, le classi seguenti implementano una proprietà XDocument per l'accesso al documento XML sottostante di un modulo durante gli eventi: DataDOMEventObject, DocActionEventObject, DocEventObject, DocReturnEventObject e VersionUpgradeEventObject.
Nel nuovo modello a oggetti in codice gestito di InfoPath (tipi e membri dello spazio dei nomi Microsoft.Office.InfoPath) per accedere alla classe XmlForm e ai relativi membri dai gestori eventi e da altro codice della regola business del modello di modulo, viene utilizzata la parola chiave this (in C#) o Me (in Visual Basic).
Gerarchia di ereditarietà
System.Object
Microsoft.Office.InfoPath.XmlForm
Thread Safety
Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. I membri di istanza non sono garantiti come thread-safe.