XmlForm (Clase)
Representa el documento XML subyacente de un formulario.
Espacio de nombres: Microsoft.Office.InfoPath
Ensamblado: Microsoft.Office.InfoPath (en microsoft.office.infopath.dll)
Sintaxis
Public MustInherit Class XmlForm
Dim instance As XmlForm
public abstract class XmlForm
Comentarios
La clase XmlForm es un objeto clave en el modelo de objetos de código administrado de InfoPath que proporciona propiedades, métodos y eventos que se pueden usar para interactuar mediante programación con los datos XML del documento XML subyacente de un formulario, y manipularlos. La clase XmlForm es igual en muchos aspectos que el objeto XDocument del modelo de objetos de secuencias de comandos de InfoPath (COM) y del modelo de objetos compatible con InfoPath 2003 (Microsoft.Office.InfoPath.SemiTrust).
A los objetos XmlForm se puede tener acceso desde la clase XmlFormCollection mediante la propiedad XmlForms de la clase Application, mientras que, en la mayoría de los casos, al trabajar con la lógica empresarial de la plantilla de formulario se tendrá acceso a la clase XmlForm y a sus miembros mediante las palabras clave this (en C#) o Me (en Visual Basic) sin tener que pasar por la colección.
Por ejemplo, en los siguientes ejemplos de código de controladores de eventos del evento Loading se usan las palabras clave this o Me para tener acceso a las propiedades MainDataSource y NamespaceManager de la clase XmlForm. Estas propiedades se usan para trabajar con una instancia de la clase System.Xml.XPath.XPathNavigator para desplazarse al campo employee (resolución de prefijos de espacio de nombres mediante la propiedad NamespaceManager) y fijar el valor del campo en el nombre de usuario del usuario actual.
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
Nota: |
---|
No es necesario hacer una referencia explícita a las palabras clave this o Me para tener acceso a los miembros de la clase XmlForm en el código de formulario. Por ejemplo, las líneas de código para tener acceso a la propiedad MainDataSource de los ejemplos precedentes de C# y Visual Basic se pueden escribir así: |
XPathNavigator myNav = MainDataSource.CreateNavigator()
Dim myNav As XPathNavigator = MainDataSource.CreateNavigator()
Al trabajar con código administrado, se tiene acceso a los datos XML de origen de un formulario a través de la propiedad MainDataSource, que devuelve una instancia de la clase DataSource que representa el origen de datos principal del formulario. El método CreateNavigator de la clase DataSource se usa a continuación para crear una instancia de la clase System.Xml.XPath.XPathNavigator, que se encuentra en la raíz del documento XML subyacente del formulario. Después, se pueden usar los miembros de la clase XPathNavigator para ir a los datos del formulario, leerlos y escribir en ellos. Para obtener más información sobre el uso de la clase XPathNavigator en el código de formulario de InfoPath, vea Cómo: Trabajar con las clases XPathNavigator y XPathNodeIterator.
La clase XmlForm proporciona propiedades adicionales que se pueden usar para obtener información sobre el formulario y su documento XML subyacente. También dispone de métodos que se pueden usar para llevar a cabo diversas acciones con el formulario, como imprimirlo, guardarlo y enviarlo. Mientras en el modelo de objetos de secuencias de comandos (COM) el objeto XDocument implementa eventos en el nivel de formulario, en el modelo de objetos de código administrado, los eventos de nivel de formulario, como la carga de un formulario, el cambio de vista o una operación de combinación, se implementan mediante la clase FormEvents. Por otra parte, la clase XmlEvents implementa los eventos provocados por los cambios realizados en el documento XML subyacente.
Se puede tener acceso al objeto XmlForm desde las clases XmlFormCollection y Window del modelo de objetos de InfoPath. En la siguiente tabla se resumen las ubicaciones en que está disponible el objeto XmlForm.
Nombre |
Descripción |
---|---|
XmlFormCollection |
Acceso desde el objeto Application utilizando la propiedad XmlForms. Proporciona la propiedad Item y el método Open para tener acceso a los objetos XmlForm que contiene. |
Window |
Proporciona la propiedad XmlForm para tener acceso al objeto XmlForm asociado a la ventana. |
En el modelo de objetos de código administrado compatible con InfoPath 2003 (los tipos y miembros del espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust), que se introdujo en InfoPath 2003 Service Pack 1 junto con el Kit de herramientas de Microsoft Office InfoPath 2003 para Visual Studio .NET, las clases siguientes proporcionaban una propiedad XDocument para tener acceso al documento XML subyacente de un formulario mientras se producen eventos: clases DataDOMEventObject, DocActionEventObject, DocEventObject, DocReturnEventObject y VersionUpgradeEventObject.
En el nuevo modelo de objetos de código administrado de InfoPath (los tipos y miembros del espacio de nombres Microsoft.Office.InfoPath), se usan las palabras clave this (en C#) o Me (en Visual Basic) para tener acceso a la clase XmlForm y sus miembros desde controladores de eventos y desde otro código de la lógica empresarial de la plantilla de formulario.
Jerarquía de herencia
System.Object
Microsoft.Office.InfoPath.XmlForm
Seguridad de subprocesos
Todos los miembros estáticos públicos (compartidos en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancia sean seguros para los subprocesos.
Vea también
Referencia
XmlForm (Miembros)
Microsoft.Office.InfoPath (Espacio de nombres)