Иллюстрированный самоучитель по настройке Office 2003

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

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

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

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

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

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, и обновляется измененная часть представления.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.