Продукт: Microsoft® Office InfoPath™ 2003
Аннотация. Microsoft Office InfoPath 2003 является комбинированным средством, сочетающим в себе лучшие достижения традиционных средств редактирования документов, таких как текстовый процессор или почтовый клиент, со способностями точной работы с формами средств по обработке информации. Данная статья описывает основные проблемы, для решения которых создан InfoPath, и излагает принципы разработки и основы промышленных стандартов XML, использованных при решении этих проблем.
На этой странице
Введение
С технической точки зрения Microsoft® Office InfoPath™ является высокоуровневым средством разработки документов XML, с помощью которого обычные пользователи могут создавать документы XML, подчиненные определяемой пользователем схеме XML. Изменения, вносимые конечным пользователем в документ XML, контролируются схемой XML.
Конечный пользователь взаимодействует с документом XML при помощи форматированного представления, отображаемого путем применения к документу стилей XSLT. Конечный узел или значение атрибута документа XML отображается в виде полей: текстовых или флажков, в то время как иерархия узлов представлена в виде группы.
InfoPath обеспечивает структурное редактирование XML с проверкой данных, показывая возможные действия по редактированию для выделенного в настоящий момент поля или группы. Такое структурное редактирование позволяет пользователям корректно добавлять и изменять элементы и атрибуты XML, работая с группами, отображаемыми при помощи гибких динамических представлений, не обращаясь непосредственно к элементам и атрибутам.
InfoPath решает проблему в области сбора данных, которая не могла быть решена до появления XML: предоставляя формы, которые можно расширять добавлением групп, использующих иерархическую модель данных XML. InfoPath сочетает гибкость текстового процессора с точными функциями проверки средств работы с формами. Комплексные преобразования XSLT являются составной частью данного решения, предоставляя динамические, простые в использовании представления данных XML.
Ограничения обычных форм и документов при сборе данных
Зачастую при сборе корпоративных данных пользователи нуждаются в большей гибкости, чем могут предоставить статические формы, в сочетании со структурным редактированием и проверкой данных, которых не может обеспечить текстовый процессор.
Обычные формы являются статичными и имеют ограничение на объем введенной информации. Они содержат фиксированное число повторяющихся строк, и не могут быть расширены в случае необходимости. Обычные формы сложны в использовании из-за отсутствия гибких функций редактирования, а пользователю часто бывает необходимо ввести всю информацию за один раз.
С другой стороны, документы, созданные при помощи текстового процессора, позволяют пользователю легко добавлять и удалять данные, однако они не обеспечивают исчерпывающей помощи пользователям для ввода полной, структурированной и достоверной информации; поля, описанные в текстовом документе , содержат минимальную проверку правильности значений и типа введенных данных или не содержат ее вообще. Данные в полях документа не помечаются для создания перекрестных ссылок и автоматической подстановки. Информация существует в свободной форме и не является структурированной; Вы не можете группировать информацию (например, нельзя применить атрибут «Адрес» к группе полей «Улица», «Город» и «Регион»).
Таким образом, появилась необходимость в гибком, и одновременно структурном редактировании. Однако в связи с тем, что ранее такая технология была недоступна, разработчики создавали узкоспециализированные приложения, требующие написания сложного программного кода. Специализированные программы являются дорогостоящими, с трудом поддаются изменениям и требуют написания специального кода для проверки данных. Специализированные программы часто требуют обучения пользователей, а повторное использование выходных данных другими бизнес-процессами связано с многочисленными трудностями.
InfoPath был разработан с целью удовлетворить потребность в гибком, структурном редактировании. Он представляет собой комбинированное средство, объединившее лучшие свойства текстового процессора и средств работы с формами. Для того чтобы позволить обычным пользователям с легкостью редактировать элементы и атрибуты XML, сохраняя при этом корректную структуру объектной модели документа (Document Object Model, DOM), были решены две основные проблемы: разработка интерфейса для структурного редактирования XML без отображения элементов и атрибутов XML и организация содержимого в виде графического представления, весьма отличающегося от структуры XML. Данные проблемы проектирования для комбинированного средства создания документов и форм были решены путем встроенного использования стандартов XML, принятых консорциумом W3C.
Обеспечение структурного редактирования путем отображения данных XML в виде групп
Основной технической проблемой разработки являлось создание удобного пользовательского интерфейса для добавления и удаления элементов и атрибутов XML без отображения самих элементов, но с одновременным сохранением корректной структуры DOM в соответствии с определяемой пользователем схемой XML. Такой пользовательский интерфейс необходим для интуитивно понятного редактирования структуры DOM, в том числе для вставки дополнительных разделов, их изменения и удаления, а также расширения существующих разделов.
При помощи такого пользовательского интерфейса раздел DOM отображается в виде группы, или секции. Группа является набором графических элементов управления, таких как текстовые поля и раскрывающиеся списки, и выступает в качестве привычного пользовательского интерфейса, позволяющего пользователям визуализировать и редактировать иерархические данные XML. Группа может содержать другие группы, и может являться необязательной или повторяющейся, точно так же как разделы DOM могут включать в себя другие разделы, и могут быть необязательными или повторяющимися. Раздел добавляется в структуру DOM, когда пользователь наводит курсор на группу, щелкает по раскрывающемуся меню, которое содержит группы, и затем выбирает команду Вставить (Insert) название_группы.
InfoPath обеспечивает структурное редактирование данных XML при помощи определенной схемы XML, что позволяет ограничивать и управлять процессом редактирования. Схема определяет, доступны ли команды Вставить (Insert) и Удалить (Remove) в соответствующих раскрывающихся меню групп, а также используется для проверки данных. Чтобы выполнить редактирование документов XML, для которых схема XML отсутствует, InfoPath может создать схему на основании документа.
Обеспечение удобных для работы представлений XML-данных с помощью XSLT-преобразований
Также при создании InfoPath была решена другая важная техническая проблема, которая заключалась в необходимости организовывать представления, сильно отличающиеся от структуры данных XML. Для того чтобы сделать подачу информации наиболее понятной для пользователя и упростить чтение и ввод данных, разработчику необходима возможность отображать информацию в последовательности, отличающейся от структуры DOM. Например, скрывая некоторую информацию от просмотра, реорганизовывая соседние узлы структуры данных в отдельные представления и объединяя информацию из различных частей структуры данных в общее представление.
Таким образом, порядок и структура содержимого представлений должны быть независимы от порядка и структуры узлов DOM. Такая структурная независимость представления от данных требует комплексных динамических связей или сопоставлений, описывающих зависимости сгруппированных полей представлений, а также узлов структуры DOM.
Для создания комплексного сопоставления представлений и данных InfoPath широко применяет XSLT. XSLT является мощным языком на основе таблиц стилей с полной поддержкой XSLT-преобразований и форматирования с использованием динамического, гибкого отображения содержимого. Для каждого представления используется один XSLT-файл. Использование таблиц стилей является распространенным и хорошо себя зарекомендовавшим подходом в средствах создания SGML- и XML-документов. XSLT также является стандартом консорциума W3C, принятым для таблиц стилей, использующихся для комплексных преобразований такого типа.
Чтобы избежать комплексного XSLT-преобразования каждый раз, когда пользователь изменяет структуру раздела DOM, используются алгоритмы, определяющие, какая часть представления нуждается в обновлении. Затем используется только необходимая часть таблицы стилей XSLT, и обновляется измененная часть представления.
Наверх страницы Применение стандартов XML при редактировании документа
В основе работы InfoPath лежат следующие стандарты XML:
• | Расширяемый язык разметки (Extensible Markup Language, XML) 1.0 второе издание |
• | Пространство имен в XML |
• | Выражения XML Path (XPath) 1.0 |
• | Схема XML (XML Schema, XSD) 1.0 – часть 1: структуры (Part 1: Structures) и часть 2: типы данных (Part 2: Datatypes) |
• | XSLT-преобразования (Extensible Stylesheet Language Transformations, XSLT) 1.0 |
• | Расширяемый язык разметки гипертекста (Extensible Hypertext Markup Language, XHTML) 1.0 |
• | Таблицы каскадных стилей (Cascading Style Sheets, CSS) |
• | Объектная модель документа (Document Object Model, DOM) |
• | Цифровые подписи XML (XML DSig) |
• | Протокол SOAP (Simple Object Access Protocol, Простой протокол доступа к объектам) 1.1 |
• | Язык описания веб-служб (Web Services Description Language, WSDL) 1.1 |
• | Службы UDDI (Universal Description, Discovery, and Integration, Универсальная система предметного описания и интеграции) 1.0 |
Например, InfoPath создает и использует стандартные файлы XML, XSLT и XSD, которые могут быть использованы повторно в различных бизнес-процессах. Для поддержки этих стандартов и обеспечения полной встроенной поддержки веб-служб XML InfoPath применяет средства MSXML и SOAP .
На Рисунке 1 показано контекстно-зависимое раскрывающееся меню для группы заказчик (customer), позволяющее сделать следующее:
- добавить еще одну группу полей заказчик или удалить существующую группу;
- вставить строку элемент (item) в таблицу элементов данной группы;
- вставить в эту группу дополнительную вложенную группу действия (actions).
Ссылка Нажмите здесь (Click here) предоставляет дополнительный способ вставки группы действия. Для каждой строки заказа доступно сокращенное раскрывающееся меню.
Увеличить рисунок Рисунок 1 – Пользовательский интерфейс редактирования InfoPath
На Рисунке 2 показано, как применяются стандарты XML во время редактирования.
Рисунок 2 – Применение стандартов XML во время редактирования документа
Ниже описан типичный сценарий использования InfoPath для редактирования XML-файла. Этот сценарий демонстрирует, каким образом стандарты XML используются во время редактирования.
1. | Пользователь создает в InfoPath новый документ XML на основе шаблона формы InfoPath или открывает существующий документ XML, созданный на основе шаблона формы. Документ XML является файлом данных XML, содержащим ссылку на шаблон формы и имеющим возможность использовать пространство имен XML. Шаблон формы является набором файлов, обеспечивающим структурное редактирование документов XML, которые соответствуют отдельной определяемой пользователем схеме XML. Файлы, составляющие шаблон формы, могут быть расположены в обычной папке или упакованы в cab-архив. В любом случае эти файлы являются стандартными файлы XML и дополнительными файлами поддержки (например, файлами сценариев). |
2. | Если документ XML содержит цифровую подпись, созданную при помощи XML Signature, InfoPath проверяет целостность файла перед его открытием. |
3. | InfoPath создает в памяти структуру DOM открытого документа XML. |
4. | XSLT-преобразования применяются к структуре DOM, создавая представления, которые определяют способ отображения документа для пользователя. Элементы в начале документа XML необязательно должны быть расположены в верхней части преставления – они могут быть расположены в различных местах, в том числе в другом представлении. Представления состоят из элементов пользовательского интерфейса (контейнеров), таких как секции, содержащие поля с поддержкой гибкого форматирования текста и раскрывающиеся списки. Контейнеры могут включать в себя вложенные контейнеры. |
5. | В результате преобразований XSLT создается XHTML-файл, отображение которого определяется при помощи CSS. |
6. | В том случае, если схема XML разрешает добавление узлов к существующему узлу структуры данных, у поля или группы, соответствующих данному узлу, имеется раскрывающееся меню, позволяющее пользователю добавлять или удалять группы. Пользователь редактирует документ, добавляя или копируя группы, вводя значения, выбирая параметры или вводя форматированный текст. Если узел схемы XML связан со схемой для XHTML, InfoPath предоставляет средства пользовательского интерфейса для создания форматированного текста. Когда пользователь вводит форматированный текст, содержимое XHTML создается в виде раздела DOM. |
7. | Структура DOM всегда остается корректной. По мере редактирования пользователем XML-документа изменения проверяются на соответствие связанной схеме XML. Попытки изменения структуры DOM и значений конечного узла проверяются на соответствие связанной схеме XML, чтобы убедиться в том, что типы данных и значения, содержащиеся в них, являются верными. Если попытка изменения является некорректной, открывается диалоговое окно проверки данных, и изменения не применяются к структуре DOM. Если изменения являются корректными, структура DOM обновляется. |
8. | Измененная часть представления обновляется путем применения необходимой части стиля XSLT к структуре DOM. |
9. | Пользователь может сохранить документ в формате XML или переслать его по протоколам HTTP или SOAP. Пользователь не может сохранить изменения в документе, пока они не проверены на соответствие схеме XML. |
Применение стандартов XML при создании формы
Вы можете создать форму, используя существующую схему XML, получить схему, подключившись в веб-службе XML, или создать схему автоматически на основе новой формы или файла данных XML. Данные сценарии описаны ниже. На Рисунке 3 изображен базовый пользовательский интерфейс для создания шаблона формы.
Увеличить рисунок Рисунок 3 – Пользовательский интерфейс для создания шаблона формы
Чтобы создать форму на основе существующей схемы XML, выполните следующие шаги:
1. | В InfoPath загрузите существующую схему XML. Для этого нажмите кнопку Создать форму (Design a Form) и затем укажите файл существующей схемы XML в качестве источника данных. Схема XML появляется в области задач и отображается в виде дерева. |
2. | Используйте конструктор форм для расположения элементов пользовательского интерфейса, таких как строки или фоновый рисунок, в одном или нескольких представлениях. Тем самым создаются некоторые из элементов XSLT. Представления XSLT и схема XML автоматически связываются с шаблоном формы. |
3. | Сопоставление элементов схемы XML и элементов пользовательского интерфейса осуществляется при помощи перетаскивания. InfoPath помогает Вам выбрать необходимые элементы управления для соответствующих элементов схемы XML, основанных на типах элементов схемы. Например, если типом данных является дата, InfoPath предлагает использовать элемент управления «календарь». На основе произведенных изменений схемы XML InfoPath может вставлять необязательные или повторяющиеся группы. Связывание элементов схемы XML со элементами пользовательского интерфейса образует структуру XSLT. |
4. | Сохранение шаблона формы. Вы можете сохранить шаблон формы в качестве отдельных файлов в обычной папке или в качестве cab-архива. В любом случае данные файлы являются стандартными файлами XML. Теперь шаблон формы готов к использованию. |
Шаблон формы содержит всю семантическую информацию, необходимую для обеспечения структурного редактирования формы, открытой в InfoPath. Шаблон формы включает в себя файл определения формы, файлы XSLT, определяющие представления, информацию, необходимую для проверки данных, и дополнительные идентификаторы ресурсов для веб-служб XML.
Файл определения формы (или манифест, form definition file, manifest), является связующей точкой для всех файлов, входящих в состав шаблона формы. Файл определения формы включает в себя ссылки на другие файлы шаблона и содержит информацию, необходимую для проверки данных и обеспечения структурного редактирования. Информация о проверке схемы XML предназначена для создания пользовательского интерфейса, и добавляется в файл определения формы. Например, если схема разрешает вставку нескольких дополнительных элементов в определенный раздел структуры данных, Вы можете создать пользовательский интерфейс, который будет выполнять несколько операций в ответ на одно действие пользователя. Это является отличной основой для повышения производительности пользователя.
Вы также можете создать форму при помощи существующей веб-службы XML, выступающей в качестве поставщика схемы XML. Для этого необходимо:
1. | Использовать службы UDDI для поиска веб-служб. |
2. | Выбрать необходимую веб-службу. InfoPath обращается к файлу WSDL, связанному с веб-службой, и определяет, какая схема XML будет использоваться. |
3. | Открыть и загрузить схему XML. |
4. | Расположить элементы пользовательского интерфейса и связать их с элементами и атрибутами схемы XML. |
5. | Выбрать способ публикации документа XML в веб-службах при помощи протокола SOAP. |
Если Вы хотите создать новую форму и автоматически сгенерировать схему XML, выполните следующие действия:
1. | Щелкните по ссылке Создать форму (Design a Form). |
2. | Убедитесь в том, что отмечен флажок Автоматически создавать источник данных (Automatically create the data source) в области задач Элементы управления (Controls task). |
3. | Расположите элементы пользовательского интерфейса. При этом InfoPath автоматически создаст схему XML и сопоставит ее элементы и атрибуты с элементами пользовательского интерфейса. |
Чтобы создать форму при помощи любого корректно оформленного файла данных XML, выполните следующие действия:
1. | Щелкните по ссылке Создать форму (Design a Form). Выберите в качестве источника данных файл XML. На основе этого файла XML будет автоматически создана схема XML. |
2. | Расположите элементы пользовательского интерфейса, как было описано выше. |
Наверх страницы Идеальный клиент веб-служб XML
На сегодняшний день стала доступна широкая поддержка веб-служб XML. Множество серверных решений и решений среднего звена могут быть настроены для взаимодействия при помощи стандартов веб-служб таких как SOAP, UDDI и WSDL. Подобными системами с поддержкой веб-служб являются базы данных, системы электронного документооборота, системы управления предприятием (enterprise resource planning, ERP), системы управления отношения с клиентами (customer relationship management, CRM) и другие. Теперь InfoPath предоставляет идеальный пользовательский интерфейс для просмотра и редактирования данных XML, отправляемых при помощи веб-служб. На Рисунке 4 показана интегрированная поддержка веб-служб XML.
Рисунок 4 – Встроенная поддержка веб-служб XML в InfoPath
InfoPath поддерживает модель свободной пары веб-служб, в которой данные передаются между компьютерами в виде документа XML. Подобная «крупномодульная» коммуникационная модель хорошо сочетается с асинхронной структурой Интернета. В качестве высокоуровнего средства создания XML-документов InfoPath поддерживает шифрование документов и символов при помощи протокола SAOP в большей степени, чем удаленный вызов процедур (Remote Procedure Call, RPC). InfoPath является идеальным клиентом веб-служб, поскольку он обладает встроенной поддержкой чтения схемы XML, указанной в сообщении SOAP, и затем создает, основанный на этой схеме, пользовательский интерфейс. Это дает пользователям возможность с легкостью просматривать и редактировать документы XML, созданные или загруженные при помощи соответствующих веб-служб.
Терминология
Группа (field group) – это секция, копия секции, дополнительная секция или повторяющаяся таблица. Секции и повторяющиеся таблицы являются элементами управления формы, которая содержит другие элементы управления, а при необходимости может повторяться. Пользователи могут вставлять несколько секций или строк, при заполнении формы.
Структура DOM (DOM tree) – это структура источника данных формы. В частности, это набор групп и полей, определяющих и хранящих данных для формы InfoPath.
Наверх страницы Заключение
InfoPath использует открытые стандарты XML, предоставляющие пользователям гибкое структурное редактирование XML для сбора данных. Для предоставления простого пользовательского интерфейса визуализации и редактирования иерархических данных XML, использующиеся группы, содержащие элементы пользовательского интерфейса, сопоставляются со структурой DOM. Язык XSLT позволяет организовать содержимое представления, отличающееся от структуры данных XML.
InfoPath предоставляет большую гибкость, чем статические формы, а также более развитые средства структурного редактирования и проверки данных, чем текстовый процессор. В результате получилось комбинированное средство, которое сочетает лучшие достижения традиционного редактирования документов со способностями точной обработки информации средств работы с формами, позволяя обычным пользователям создавать корректные документы XML на основе определяемой пользователем схемы XML. Встроенная поддержка веб-служб позволяет с легкостью создавать представления для редактирования документов XML, которые соответствуют схеме, предоставленной веб-службой.