Freigeben über


XmlForm-Klasse

Stellt das zugrunde liegende XML-Dokument eines Formulars dar.

Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

Syntax

'Declaration
Public MustInherit Class XmlForm
'Usage
Dim instance As XmlForm
public abstract class XmlForm

Hinweise

Die XmlForm-Klasse ist ein Schlüsselobjekt im InfoPath verwalteten Codeobjektmodell, das Eigenschaften, Methoden und Ereignisse bereitstellt, die für die programmgesteuerte Interaktion mit den XML-Daten und die Bearbeitung der Daten im einem Formular zugrunde liegenden XML-Dokument verwendet werden können. Die XmlForm-Klasse entspricht größtenteils dem XDocument-Objekt des InfoPath-Skripts (Component Object Model, COM) und den InfoPath 2003-kompatiblen Objektmodellen ("Microsoft.Office.InfoPath.SemiTrust").

Während die XmlForm-Objekte über die XmlFormCollection-Klasse mithilfe der XmlForms-Eigenschaft der Application-Klasse aufgerufen werden können, erfolgt der Zugriff beim Verwenden von Formularvorlagen-Geschäftslogik auf die XmlForm-Klasse und die zugehörigen Member in den meisten Fällen mithilfe des this-Schlüsselworts (in C#) oder mithilfe des Me-Schlüsselworts (in Visual Basic), ohne dabei über die Auflistung gehen zu müssen.

Beispielsweise verwenden die folgenden Codebeispiele von Ereignishandlern für das Loading-Ereignis die this- oder Me-Schlüsselwörter, um auf die MainDataSource- und NamespaceManager-Eigenschaften der XmlForm-Klasse zuzugreifen. Mithilfe dieser Eigenschaften wird eine Instanz der System.Xml.XPath.XPathNavigator-Klasse verwendet, um zum Employee-Feld zu navigieren (indem Namespacepräfixe mithilfe der NamespaceManager-Eigenschaft aufgelöst werden) und das Feld auf den Benutzernamen des aktuellen Benutzers festzulegen.

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

Hinweis

Es muss nicht unbedingt explizit auf die this- oder Me-Schlüsselwörter verwiesen werden, um auf die Member der XmlForm-Klasse im Formularcode zuzugreifen. Beispielsweise können die Codezeilen für den Zugriff auf die MainDataSource-Eigenschaft in den vorigen Beispielen für C# und Visual Basic wie folgt geschrieben werden:

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

Bei Verwendung von verwaltetem Code erfolgt der Zugriff auf die XML-Quelldaten eines Formulars über die MainDataSource-Eigenschaft, die eine Instanz der DataSource-Klasse zurückgibt, die die Hauptdatenquelle des Formulars darstellt. Mithilfe der CreateNavigator-Methode der DataSource-Klasse wird dann eine Instanz der System.Xml.XPath.XPathNavigator-Klasse erstellt, die am Stamm des dem Formular zugrunde liegenden XML-Dokuments positioniert ist. Die Member der XPathNavigator-Klasse können anschließend verwendet werden, um zu den Formulardaten zu navigieren und diese zu lesen und zu schreiben. Weitere Informationen zum Verwenden der XPathNavigator-Klasse im InfoPath-Formularcode finden Sie unter Vorgehensweise: Arbeiten mit den Klassen "XPathNavigator" und "XPathNodeIterator".

Die XmlForm-Klasse stellt auch weitere Eigenschaften für den Abruf von Informationen über das Formular und das zugrunde liegende XML-Dokument bereit, sowie Methoden zum Ausführen verschiedener Formularaktionen, wie z. B. Drucken, Speichern oder Absenden. Während das XDocument-Objekt im Skriptobjektmodell (COM) Ereignisse auf Formularebene implementiert, werden Ereignisse auf Formularebene, wie z. B. das Laden eines Formulars, das Wechseln von Ansichten oder ein Zusammenführungsvorgang, im Objektmodell mit verwaltetem Code über die FormEvents-Klasse implementiert. Des Weiteren werden durch Änderungen am zugrunde liegenden XML-Dokument ausgelöste Ereignisse über die XmlEvents-Klasse implementiert.

Das XmlForm-Objekt kann im InfoPath-Objektmodell über die XmlFormCollection- und Window-Klassen aufgerufen werden. Die folgende Tabelle stellt eine Zusammenfassung der Orte bereit, an denen das XmlForm-Objekt verfügbar ist.

Name

Beschreibung

XmlFormCollection

Zugriff über das Application-Objekt mithilfe der XmlForms-Eigenschaft. Stellt die Item-Eigenschaft und die Open-Methode für den Zugriff auf die in ihm enthaltenen XmlForm-Objekte bereit.

Window

Stellt die XmlForm-Eigenschaft für den Zugriff auf das dem Fenster zugeordnete XmlForm-Objekt bereit.

Im InfoPath 2003-kompatiblen Objektmodell mit verwaltetem Code (die Typen und Member der Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace), welches zusammen mit dem Microsoft Office InfoPath 2003 Toolkit für Visual Studio .NET in InfoPath 2003 Service Pack 1 eingeführt wurde, stellen die folgenden Klassen eine XDocument-Eigenschaft für den Zugriff auf das einem Formular zugrunde liegende XML-Dokument während Ereignissen bereit: DataDOMEventObject-, DocActionEventObject-, DocEventObject-, DocReturnEventObject- und VersionUpgradeEventObject-Klasse.

Im neuen InfoPath-Objektmodell mit verwaltetem Code (die Typen und Member der Microsoft.Office.InfoPath-Namespace) werden die Schlüsselwörter this (in C#) oder Me (in Visual Basic) für den Zugriff auf die XmlForm-Klassen und die zugehörigen Member von Ereignishandlern sowie von anderem Code in der Geschäftslogik der Formularvorlage verwendet.

Vererbungshierarchie

System.Object
  Microsoft.Office.InfoPath.XmlForm

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

XmlForm-Member
Microsoft.Office.InfoPath-Namespace