Поделиться через


Сведения о поддержке InfoPath технологий XML

Microsoft InfoPath — это гибридное средство, которое сочетает в себе лучшие возможности традиционного редактирования документов, такие как текстовый обработчик или приложение электронной почты, с возможностями сбора данных пакета форм. В этой статье рассматриваются проблемы, для решения которых предназначено средство InfoPath, а также описаны принципы проектирования и отраслевые стандарты XML, использованные в решении проблем.

Введение

InfoPath — это средство высшего уровня для создания XML-документов, позволяющее обычным конечным пользователям создавать XML-документы, принадлежащие определенным пользователями схемам XML. При редактировании пользователем XML-документа все изменения контролируются схемой XML.

Пользователь взаимодействует с XML-документом посредством интерфейса форматированного текста, отображаемого путем применения к документу таблицы стилей XSLT. Конечный узел или значение атрибута из XML-документа отображается как поле, например текстовое поле или флажок, а иерархия узлов представлена в виде группы полей.

InfoPath дает возможность выполнять структурированное редактирование XML-данных с проверкой, отображая действия редактирования, возможные для выбранного поля или выбранной группы полей. Такой структурированный способ редактирования позволяет пользователю добавлять и удалять допустимые элементы и атрибуты XML, работая с группами полей, отображаемых в форматированных представлениях, не видя сами элементы и атрибуты.

InfoPath решает проблему сбора данных, которую невозможно было решить до появления XML: предоставляя формы, которые можно увеличивать в размере, добавляя группы полей, основанные на иерархической модели данных XML, InfoPath добавляет возможностям скрупулезной проверки приложений форм гибкость документов текстового редактора. Неотъемлемой частью этого решения, предоставляющего динамические и простые в использовании представления XML-данных, являются сложные XSL-преобразования.

Ограничения традиционных форм и документов в отношении сбора данных

При сборе корпоративных данных пользователям зачастую необходима большая гибкость, чем предоставляемая статическими формами, а также более структурированное редактирование и проверка, чем предоставляемые документами редакторов текстов.

Традиционные формы статичны и ограничены по длине. Они имеют фиксированное количество повторяющихся строк и не могут быть расширены при заполнении формы. Традиционные формы трудно использовать, так как они не имеют расширенных возможностей редактирования. Как правило, пользователь должен предоставлять все данные за один раз.

С одной стороны, традиционные документы, создаваемые с помощью текстового редактора, дают пользователям возможность свободно добавлять и удалять контент, но не содержат инструкции относительно того, как следует вводить полные, структурированные и действительные данные; определенные в документе поля имеют ограниченные средства проверки типов и значений данных или не имеют таких средств вовсе. Данные полей не помечены для простоты создания ссылок и автоматического повторного использования. Данные содержатся в свободной форме, а не в виде структуры; их нельзя группировать, например, применяя метку "Адрес" к группе полей "Улица", "Город" и "Штат".

Потребность в таком гибком, но структурированном, редактировании существовала, но ввиду отсутствия соответствующей технологии до появления XML разработчики вынуждены были создавать пользовательские приложения, требовавшие написания больших объемов кода. Пользовательские приложения дорого и сложно изменять, кроме того, они также требуют написания пользовательского кода для проверки. Помимо этого, требуется проводить дополнительное обучение конечных пользователей таких приложений, а получаемые данные мало пригодны для использования в других бизнес-процессах.

Предоставление структурированного способа редактирования путем отображения XML-данных в виде групп полей

Решена важная техническая проблема проектирования, заключавшаяся в предоставлении простого пользовательского интерфейса для добавления и удаления элементов и атрибутов XML без отображения самих элементов и атрибутов, но с сохранением правильности дерева DOM в соответствии с определенной пользователем схемой XML. Пользовательский интерфейс должен был предоставлять естественный способ редактирования дерева DOM, включая вставку дополнительных поддеревьев, выбор вариантов замены поддеревьев и расширение существующих поддеревьев.

To provide this easy user interface, a DOM subtree is displayed as a field group, or section. A field group is a group of UI controls, such as text boxes and drop-down lists, and serves as an easy user interface that enables the user to visualize and edit hierarchical XML data. A field group can contain other field groups and can be optional or repeating, just as a DOM subtree can contain other subtrees and can be optional or repeating. A subtree is added to the DOM tree when the user rests the mouse pointer over a field group, clicks the drop-down menu that appears on the field group, and then selects Insert <field group name>.

InfoPath предоставляет такой структурированный способ редактирования данных XML с использованием указанной схемы XML, накладывающей определенные ограничения на процесс редактирования. Схема обусловливает отображение в раскрывающемся меню команды Вставить или Удалить для той или иной группы полей. Схема также используется для проверки. При редактировании XML-документа, для которого не определена схема XML, InfoPath может создать схему на основе документа XML.

Предоставление простых в использовании представлений данных XML с помощью XSL-преобразований

Еще одной технической трудностью проектирования было обеспечение возможности организации содержимого элементов управления пользовательского интерфейса в структуры, сильно отличающиеся от структуры данных XML. Для представления данных для просмотра и редактирования в наиболее удобном для пользователя виде разработчик должен иметь возможность представлять данные в отличных от дерева данных DOM последовательностях, исключать некоторые данные из представления, реорганизовывать смежные узлы дерева данных в отдельных представлениях и собирать данные из различных частей дерева данных в единое представление.

Порядок и структура содержимого представлений, следовательно, должны быть независимы от порядка и структуры узлов дерева DOM. Такая структурная независимость представлений и данных требует наличия сложных динамических связей или сопоставлений между сгруппированными полями в представлениях и узлах дерева DOM.

Чтобы обеспечить сложное сопоставление между представлениями и данными, в InfoPath широко применяются XSL-преобразования (XSLT). XSLT — это мощный язык создания таблиц стилей, поддерживающий сложные XSL-преобразования и форматированные представления с динамическим и гибким содержимым. Для каждого представления используется один XSLT-файл. Использование таблицы стилей — это распространенный и зарекомендовавший себя способ, реализованный в средствах создания файлов SGML и XML, а XSLT — это стандарт W3C для таблиц стилей, используемых в таком виде сложных преобразований.

Для предотвращения выполнения всего XSL-преобразования каждый раз, когда пользователь изменяет структуру поддерева DOM, используются специальные алгоритмы определения части представления, требующей обновления. Так к файлу применяется только касающаяся изменений часть таблицы стилей XSLT, и выполняется обновление только измененной части представления.

Использование стандартов XML при изменении форм

InfoPath с самого основания строится на стандартах XML, среди которых можно назвать следующие:

  • Extensible Markup Language (XML) 1.0 Second Edition

  • Пространства имен в XML

  • Язык адресации XML (XPath) 1.0

  • Схема XML (XSD) 1.0, Часть 1. Структуры; Часть 2. Типы данных

  • Extensible Stylesheet Language Transformations (XSLT) 1.0

  • Расширяемый язык гипертекстовой разметки (XHTML) 1.0

  • Каскадные таблицы стилей

  • Модель объектов документа (DOM) 1.0

  • Цифровые подписи XML (XML DSig)

  • Протокол SOAP 1.1

  • Язык описания веб-служб (WSDL) 1.1

  • Службы UDDI 1.0

Например, InfoPath использует и создает стандартные файлы XML, XSLT и XSD, которые могут использоваться вторично во множестве бизнес-процессов. Для поддержки этих стандартов InfoPath использует MSXML, пакет инструментов SOAP и пространство имен .NET System.XML, а также обеспечивает полностью интегрированную поддержку веб-служб XML.

На рисунке 1 показано контекстное раскрывающееся меню для группы полей клиента , которое позволяет пользователю добавить другую группу полей клиента , удалить эту группу полей клиента , вставить строку элемента в таблицу элементов покупки в этой группе полей или вставить необязательную группу полей действий в эту группу полей. Ссылка Щелкните здесь предоставляет еще один способ вставки группы полей действий . В каждой строке элемента покупки отображается более короткое раскрывающееся меню.

  1. В InfoPath пользователи могут создать новый документ XML на основе шаблона форм InfoPath или открыть существующий документ XML, основанный на шаблоне форм. Документ XML — это файл данных XML, содержащий ссылку на шаблон форм, который может использовать пространства имен XML.

    Шаблон форм — это набор файлов, предоставляющих возможность структурированного редактирования документов XML, соответствующих заданной пользователем схемы XML. Файлы, составляющие шаблон форм, могут быть упакованы как отдельные файлы внутри обычной папки или как файлы в папке CAB-файла. В любом случае это стандартные XML-файлы и иногда еще дополнительные файлы, такие как сборки с управляемым кодом.

  2. Если документ XML имеет цифровую подпись XML, InfoPath перед открытием XML-файла проверяет ее соответствие.

  3. InfoPath создает дерево DOM документа XML в памяти.

  4. К дереву DOM применяются XSL-преобразования, создающие представления в необходимом пользователю виде. Элементы, расположенные в начале документа XML, могут отображаться в одном представлении в нижней части, в другом — как-то иначе. Представления состоят из контейнеров пользовательских интерфейсов, таких как разделы с текстом и элементы управления, поля ввода форматированного текста, элементы управления выбора даты и раскрывающиеся списки. Контейнеры также могут содержать вложенные контейнеры.

  5. XSL-преобразование в качестве вывода создает XHTML, а для управления представлением XHTML используется CSS.

  6. Если схема XML позволяет добавлять узлы к узлу дерева данных, поле или группа полей, сопоставленные с узлом, будут иметь раскрывающееся меню, в котором пользователь может выбрать необходимую команду — добавление или удаление. При изменении документа пользователь может добавлять повторяющиеся или необязательные группы полей, вводить значения, выбирать параметры или вводить форматированный текст. Если узел схемы XML связан со схемой XHTML, InfoPath представляет пользовательский интерфейс для создания форматированного текста. При вводе пользователем форматированного текста контент XHTML создается в виде поддерева в DOM.

  7. Дерево DOM постоянно поддерживается действительным. В процессе работы с документом XML вносимые изменения проверяются на соответствие связанной схеме XML. Изменения структуры DOM и значений конечных узлов проверяются на соответствие схеме XML, чтобы гарантировать допустимость типов данных и значений. Если изменение дерева DOM признается недопустимым, открывается диалоговое окно проверки, а само изменение не применяется. Если изменения допустимы, выполняется обновление дерева DOM.

  8. Измененная часть представления обновляется с применением к дереву DOM только необходимых частей таблицы стилей XSLT.

  9. Пользователь может сохранить документ XML или отправить его, используя протокол HTTP или SOAP. Отправка документов, не соответствующих схеме XML, невозможна.

Использование стандартов XML при разработке форм

Форму можно создать, начав с существующей схемы XML, подключив к веб-службе или базе данных XML и получив ее схему XML, или автоматически создав схему из новой формы или из XML-файла данных. Эти сценарии описаны в следующих процедурах. На рисунке 3 показан базовый пользовательский интерфейс для разработки шаблона формы.

  1. Создайте новую форму в Designer InfoPath, выбрав шаблон формы XML или Схема, а затем выберите существующий ФАЙЛ схемы XML в качестве источника данных. Схема XML загружается в область задач и отображается как элемент управления "Дерево".

  2. C помощью средств макетирования можно разметить элементы управления пользовательского интерфейса, такие как строки и фон в одном или сразу нескольких представлениях. При этом создаются некоторые элементы XSLT. Представления XSLT и схема XML автоматически связываются с шаблоном форм.

  3. Сопоставление элементов схемы XML с элементами управления пользовательского интерфейса выполняется с помощью операции перетаскивания. InfoPath помогает выбрать соответствующие элементы управления для элементов схемы XML, основываясь на видах элементов схемы. Например, если тип данных XML — дата, InfoPath предложит элемент управления выбора даты. В зависимости от вариантов выбора, предусмотренных в схеме XML, InfoPath может вставлять группы дополнительных или повторяющихся полей. При сопоставлении элементов схемы XML с элементами управления пользовательского интерфейса создается структура XSLT.

  4. Сохраните шаблон формы. Для этого сохраните все файлы, составляющие шаблон, в обычной папке или в CAB-файле. В любом случае это будут стандартные XML-файлы. Теперь шаблон форм готов к использованию пользователями.

Шаблон форм содержит все семантические сведения, необходимые для обеспечения структурированного способа редактирования при открытии формы в InfoPath. Шаблон включает файл манифеста, XSLT-файлы, определяющие представления, сведения, необходимые для проверки данных, и дополнительный идентификатор ресурсов для веб-службы XML.

Манифест или файл определения формы — это концентратор и точка входа для всех файлов, требуемых шаблоном форм. Манифест содержит ссылки на другие файлы шаблона форм и сведения, необходимые для проверки данных и обеспечения структурированной правки. Сведения для проверки соответствия схеме XML настраиваются с учетом конечного пользовательского интерфейса и добавляются в файл манифеста. Например, если схема позволяет выполнять вставку в определенное поддерево нескольких дополнительных элементов, можно разработать пользовательский интерфейс так, чтобы при выполнении пользователем одной операции пользовательского интерфейса вставлялось сразу несколько элементов. Такие настройки играют важную роль в обеспечении удобства для обычных пользователей.

Форму также можно создать, использовав существующую веб-службу XML для получения схемы XML. Для этого выполните следующие действия:

  1. С помощью UDDI найдите необходимую веб-службу.

  2. Выберите веб-службу. InfoPath считает данные из WSDL-файла, связанного с веб-службой, и определит используемую схему XML.

  3. Откройте схему XML, чтобы загрузить ее.

  4. Расположите элементы управления пользовательского интерфейса и свяжите их с элементами и атрибутами схемы XML.

  5. Определите способ отправки документа XML веб-службе, использующей протокол SOAP.

Чтобы создать форму с нуля и автоматически создать для нее схему XML, выполните следующие действия:

  1. На вкладке Файл выберите шаблон формы Пустая форма или Пустая форма (InfoPath Filler), а затем выберите пункт Конструктор форм.

  2. На вкладке Главная щелкните стрелку в правом нижнем углу группы Элементы управления, чтобы отобразить область задач Элементы управления, а затем убедитесь, что установлен флажок Автоматически создавать источник данных проверка. Убедитесь, что установлен флажок Автоматически создавать источник данных (по умолчанию этот флажок установлен).

  3. Расположите элементы управления пользовательского интерфейса. При этом InfoPath автоматически создаст схему XML и сопоставит ее элементы и атрибуты с этими элементами управления.

Чтобы создать форму, используя имеющийся файл данных XML, выполните следующие действия:

  1. На вкладке Файл выберите шаблон формы XML или схема, а затем выберите пункт Конструктор форм.

  2. В окне Мастер источника данных выберите XML-файл, который требуется использовать в качестве источника данных. Схема XML создается автоматически на основе выбранного XML-файла данных.

  3. Разместите элементы управления пользовательского интерфейса, как описано выше.

Идеальный клиент для веб-служб

Становится доступной широкая общепромышленная поддержка веб-служб. Многие серверные и средние системы можно настроить для взаимодействия с помощью стандартов веб-служб, таких как SOAP, UDDI и WSDL. К этим системам с поддержкой веб-служб относятся базы данных, системы рабочих процессов, корпоративное планирование ресурсов (ERP), управление отношениями с клиентами (CRM) и другие системы. Теперь InfoPath предоставляет идеальный пользовательский интерфейс для просмотра и редактирования XML-данных, отправляемых через веб-службы. На рисунке 4 показана интегрированная поддержка веб-служб XML.

InfoPath отлично вписывается в слабосвязанную модель веб-служб, в которой данные передаются между компьютерами в виде полных документов XML. Такая крупномодульная модель коммуникации хорошо сочетается с асинхронной природой Интернета. Будучи средством высшего уровня для создания документов XML, InfoPath вместо кодирования SOAP RPC поддерживает кодирование SOAP Document/Literal. InfoPath — это идеальный клиент для веб-служб, поскольку он способен с помощью собственных средств выполнять чтение данных из схемы XML, указанной в сообщении SOAP, и создавать основанный на схеме пользовательский интерфейс, позволяющий пользователям легко просматривать и редактировать документы XML, создаваемые или получаемые соответствующей веб-службой. InfoPath также поддерживает ADO.NET DataSets, включая отслеживание изменений.

Терминология

Свойство Значение
группа полей:
Раздел, повторяющийся раздел, дополнительный раздел или повторяющаяся таблица. Разделы и повторяющиеся таблицы являются элементами управления формы, содержащей и другие элементы управления, которые повторяются по мере необходимости. При заполнении формы пользователь может вставлять сразу несколько разделов или строк.
дерево DOM:
Структура источника данных формы. В частности, коллекция полей и групп, которые определяют и хранят данные для формы InfoPath.

Заключение

InfoPath использует открытые стандарты XML для предоставления пользователям гибкого, но структурированного способа редактирования XML при сборе данных. Для обеспечения простоты визуализации и редактирования иерархически организованных данных XML встроенные группы полей, содержащие элементы управления пользовательского интерфейса, сопоставлены с деревом DOM. XSL-преобразования позволяют реорганизовывать содержимое представлений пользовательского интерфейса иначе, чем оно организовано в структуре данных XML.

InfoPath предоставляет большую гибкость, чем статичные формы, с более структурированным процессом правки и проверки, чем документы текстовых редакторов. В результате получается гибрид, объединяющий в себе лучшие характеристики традиционной правки документов с возможностями скрупулезного захвата данных пакета форм, что дает возможность обычным пользователям создавать допустимые документы XML, принадлежащие определенной пользователем схеме XML. Интегрированная поддержка веб-служб позволяет легко определять представления для редактирования документов XML в соответствии со схемами веб-служб.