Класс XmlForm
Представляет связанный XML-документ в форме.
Пространство имен: Microsoft.Office.InfoPath
Сборка: Microsoft.Office.InfoPath (в microsoft.office.infopath.dll)
Синтаксис
'Декларация
Public MustInherit Class XmlForm
'Применение
Dim instance As XmlForm
public abstract class XmlForm
Заметки
Класс XmlForm является основным объектом объектной модели управляемого кода в InfoPath, предоставляющим свойства, методы и события, которые могут использоваться для программного и ручного управления XML-данными в связанном с ним XML-документе в форме. Класс XmlForm больше всего соответствует объекту XDocument объектной модели сценариев (COM) InfoPath и объектной модели, совместимой с InfoPath 2003 (Microsoft.Office.InfoPath.SemiTrust).
Хотя к объектам XmlForm можно обращаться из класса XmlFormCollection с помощью свойства XmlForms класса Application, в большинстве случаев, при работе с бизнес-логикой шаблона формы, доступ классу XmlForm и его членам можно получить с помощью ключевых слов this (в C#) или Me (в Visual Basic) без прохождения коллекции.
Например, в следующих кодах обработчиков событий для события Loading используется ключевое слово this или Me для доступа к свойствам MainDataSource и NamespaceManager класса XmlForm. Эти свойства применяются к экземпляру класса System.Xml.XPath.XPathNavigator для перехода к полю сотрудник (разрешающего префиксы пространства имен, использующие свойство NamespaceManager) и ввода в нем имени пользователя текущего пользователя.
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
Заметка |
---|
Нет необходимости явно указывать ключевые словаthis или Me для доступа к членам класса XmlForm в коде формы. Например, строки кода для доступа к свойству MainDataSource в предыдущих примерах C# и Visual Basic могут быть написаны следующим образом: |
XPathNavigator myNav = MainDataSource.CreateNavigator()
Dim myNav As XPathNavigator = MainDataSource.CreateNavigator()
При работе с управляемым кодом доступ к XML-данным источника осуществляется с помощью свойства MainDataSource, которое возвращает экземпляр класса DataSource, представляющий основной источник данных формы. Затем используется метод CreateNavigator класса DataSource для создания экземпляра класса System.Xml.XPath.XPathNavigator, который размещен в корне связанного с ним XML-документа формы. Члены класса XPathNavigator затем могут использоваться для навигации по данным формы, их чтения и записи. Дополнительные сведения об использовании класса XPathNavigator в коде формы InfoPath см. в разделе Практическое руководство. Работа с классами XPathNavigator и XPathNodeIterator.
Класс XmlForm предоставляет дополнительные свойства, которые можно использовать для получения сведений о форме и связанном с ней XML-документе. Также он обеспечивает методы, которые можно использовать для выполнения различных действий с формой, таких как печать, сохранение и отправка. В то время как в объектной модели сценария (COM) объект XDocument реализует события уровня формы, в объектной модели управляемого кода события уровня формы, такие как загрузка формы, переключение представлений или операция слияния, реализуются классом FormEvents. Кроме того, события, вызванные изменениями в самом XML-документе, реализуются классом XmlEvents
К объекту XmlForm можно обратиться из классов XmlFormCollection и Window в объектной модели InfoPath. В следующей таблице приведены местоположения, в которых доступен объект XmlForm.
Имя |
Описание |
---|---|
XmlFormCollection |
Доступ из объекта Application с помощью свойства XmlForms. Предоставляет свойство Item и метод Open для доступа к объектам XmlForm, которые его содержат. |
Window |
Предоставляет свойство XmlForm для доступа к объекту XmlForm, связанному с этим окном. |
В объектной модели управляемого кода, совместимой с InfoPath 2003 (типы и члены пространства имен Microsoft.Office.Interop.InfoPath.SemiTrust), которая впервые была введена в InfoPath 2003 с пакетом обновления 1 вместе с Microsoft Office InfoPath 2003 Toolkit для Visual Studio .NET, свойство XDocument для доступа к связанному XML-документу формы во время событий предоставляли следующие классы: DataDOMEventObject, DocActionEventObject, DocEventObject, DocReturnEventObject и VersionUpgradeEventObject.
В новой объектной модели управляемого кода InfoPath (типы и члены пространства имен Microsoft.Office.InfoPath) используется ключевое слово this (в C#) или Me (в Visual Basic) для доступа к классу XmlForm и его членам из обработчиков событий и из другого кода в бизнес-логике шаблона формы.
Иерархия наследования
System.Object
Microsoft.Office.InfoPath.XmlForm
Безопасность потока
Все открытые статические (Общие в Visual Basic) члены этого типа потокобезопасны. Потокобезопасность членов экземпляров не гарантируется.