Форма microsoft infopath xml чем открыть
В составе пакета MS Office существует программа, специально предназначенная для создания электронных форм – это Microsoft Office InfoPath.
Я расскажу об основах разработки InfoPath-форм. Главное внимание будет уделено базовым вещам, однако в завершение будет упомянуто и о некоторых более глубоких аспектах, таких, как подключения к данным, программирование в InfoPath-формах и интеграция с Sharepoint.
Концепция
- Шаблон формы – это файл с расширением .xsn, содержащий описание структуры формы и её дизайна. С некоторой натяжкой можно воспринимать его как пустую форму без данных.
- Данные формы – это xml-файл, содержащий конкретную информацию. Это полезное «наполнение» формы.
Простой пример
Лучший способ разобраться – пощупать руками. Для начала можно поэкспериментировать с идущими «в комплекте» с программой готовыми образцами форм. Открываем Microsoft Office InfoPath 2007. Если появилось окно «Приступая к работе», выбираем слева «Настроить образец», если не появилось, то идём в меню «Файл», выбираем «Конструктор шаблонов форм. » и в открывшемся окне, опять-таки слева щёлкаем «Настроить образец. ». Возьмём, например, образец «Учёт активов».
После двойного щелчка на образце InfoPath откроет его в режиме дизайнера. Можно отредактировать шаблон формы, удалить ненужные поля, добавить новые и т. п. Панель с доступными компоментами (поля ввода, чекбоксы, раскрывающиеся списки) открывается по ссылке «Элементы управления» на панели задач в правой части окна.
Сохраним наш шаблон в удобном месте как файл «Учёт активов.xsn». Возможно при этом InfoPath напомнит о том, что хорошо бы опубликовать его – но пока не будем этого делать.
Теперь шаблон можно открыть и заполнить форму.
После заполнения можно сохранить её. Это уже будет файл с расширением .xml — файл данных на основе нашего шаблона. Таким образом можно заполнить множество форм на основе одного шаблона.
Публикация
Как уже было сказано, InfoPath имеет сложную архитектуру публикации шаблонов форм. Шаблон формы учёта активов, который мы сохранили где-то у себя на компьютере, пока доступен только нам. Хотелось бы сделать его доступным для большего круга пользователей.
Сначала откроем шаблон формы в режиме конструктора (пункт «Конструктор» из контекстного меню файла).
Мастер публикации запускается командой «Опубликовать. » из меню «Файл».
InfoPath предоставляет несколько вариантов публикции формы. В данном случае давайте выложим шаблон в расшаренную папку.
В следующем окне мастера нужно указать место публикации. В своё время я помучался на этом шаге. Не совсем понимая смысл производимых действий, я щёлкал на кнопке «Обзор» и выбирал там сохранённый файл шаблона. Этого делать не нужно. В поле «Путь и имя файла для шаблона формы» должен быть указан путь к ещё не существующему файлу в том месте, куда мы хотим его опубликовать. Поэтому жмём «Обзор», доходим до расшаренной папки, а в поле «Имя файла» вбиваем имя будущего опубликованного шаблона, после чего жмём «ОК».
На следующем шаге нужно ввести альтернативный путь доступа к опубликованному шаблону со стороны пользователей. Ведь отображение сетевых ресурсов может отличаться у разработчика и у конечного пользователя. Сетевой ресурс, видимый конечными пользователями может быть другим. А InfoPath требует, чтобы доступ к опубликованному шаблону производится единообразно. Поэтому при публикации задаются два пути – один для администратора (мы его уже задали), другой для конечных пользователей. Если путь со стороны пользователя не отличается, просто копируем в поле ввода тот путь, который мы указывали на предыдущем шаге.
Безопасность
Понемногу о разном
Источники данных
Как уже говорилось, InfoPath-форма может обращаться к внешним источникам данных. Это может быть база данных (MS Sql или Access), список Sharepoint, web-служба, .xml-файл. Наиболее очевидное применение – заполнение раскрывающихся списков на основе различных справочников.
Напомню, что шаблон формы, обращающийся к внешним источникам данных, должен иметь уровень безопасности – домен.
На самом деле, и сама структура InfoPath-формы определяется источником данных. Даже если шаблон формы создавать с нуля, всё равно в источниках данных уже будет один – «основной» источник данных. При добавлении элементов на форму будут добавляться соответствующие узлы в источник данных. Любой источник данных в InfoPath представляется xml-деревом, таким образом и структура формы по сути – некоторое xml-дерево.
Есть возможность создавать InfoPath-формы на основе некоторых имеющихся источников данных – веб-службы, базы данных, предопределённые xml-схемы. В этом случае мы уже не сможем изменять источник данных, который является основой структуры формы, и не сможем добавить новые поля, которых нет в источнике данных.
Представления
Форма может иметь несколько представлений. Представление – это некоторый «срез», включающий в себя определённую группу полей. Ведь не обязательно на форме одновременно отображать все поля её источника данных. Если полей много, можно сгруппировать их по смыслу и разделить на несколько представлений. Кроме того, можно создать разные представления для различных групп пользователей, которые будут работать с формой в рамках некоторого бизнес-процесса. Наконец, можно создать отдельное представление для печати формы, которое будет иметь особо красивый дизайн, ориентированный именно на эту задачу. Переключаться между представлениями можно как с помощью меню «Вид» клиента InfoPath, в котором открыта форма, так и, например, программным образом, скажем, по щелчкам на кнопках в форме (при этом можно наоборот, отключить возможность ручного переключения через меню «Вид»).
Программирование
Интеграция с Sharepoint
Связка InfoPath-форм и Sharepoint – это, вероятно, одно из наиболее перспективных и распространённых на сегодняшний день применений InfoPath-форм. Скажем, моё знакомство с InfoPath произошло совсем недавно в процессе изучения разработки рабочих процессов (Workflows) для Sharepoint. В течение многих лет до этого InfoPath тихо жил на моём компьютере в составе пакета MS Office, никак не привлекая к себе внимание.
Послесловие
В этой статье я постарался обзорно рассказать о разработке электронных форм с использованием InfoPath, ориентируясь главным образом на версию Microsoft Office InfoPath 2007. Многие вопросы упомянуты лишь вскользь, другие аспекты остались и вовсе незатронутыми – в первую очередь потому, что сам я столкнулся с InfoPath-формами сравнительно недавно и процесс их изучения ещё далеко не закончен. Процесс этот мог бы быть намного более трудоёмким без одной книги, служившей мне главным источником информации по теме – это книга Фило Джануса «InfoPath 2007 для профессионалов».
Если вы создали шаблон управляемых форм кода InfoPath 2003 с использованием одного из наборов инструментов InfoPath 2003 для Visual Studio и хотите поддерживать совместимость с InfoPath 2003, вы можете продолжить работу над проектом шаблона формы и далее, открыв его в Microsoft InfoPath и Visual Studio 2012.
В следующих процедурах описывается, как открыть шаблон управляемой формы кода, созданный с помощью infoPath набор средств и поддерживать совместимость с InfoPath 2003 или перенести и обновить до новой объектной модели InfoPath.
Открытие шаблона формы с управляемым кодом, созданного с помощью набора инструментов InfoPath, и сохранение совместимости с приложением InfoPath 2003, использующим набор средств Visual Studio Tools для работы с приложениями
Откройте конструктор InfoPath и нажмите кнопку Открыть на вкладке Файл.
В диалоговом окне Open in Design Mode перейдите в папку проекта, в которой сохранен набор средств шаблон формы InfoPath.
По умолчанию это будет папка в имени пользователя на C:\Users\ \Documents\Visual Studio Projects компьютере, на котором был создан проект. Или вы можете переместить папку в расположение, в котором InfoPath хранит Visual Studio проектов 2012 г., которые по умолчанию C:\Users\ именуются пользователями. \Documents\InfoPath Projects
Щелкните файл с именем manifest.xsf и нажмите кнопку Открыть.
Перейдите на вкладку Разработчик и щелкните элемент Редактор кода.
Перейдите в расположение, где требуется сохранить файл, введите имя файла и нажмите кнопку Сохранить.
Выберите файл Visual Studio (.sln) для проекта и нажмите кнопку Открыть.
Сведения о работе с управляемыми шаблонами форм кода, совместимыми с InfoPath 2003, см. в примере Developing Form Templates Using the InfoPath 2003 Object Model.
Открытие шаблона формы с управляемым кодом, созданного с помощью набора инструментов InfoPath, и его обновление для использования с объектной моделью InfoPath и пакетом средств Visual Studio Tools для работы с приложениями
Откройте конструктор InfoPath и нажмите кнопку Открыть на вкладке Файл.
В разделе Открытие шаблона формы щелкните На моем компьютере.
В диалоговом окне Open in Design Mode перейдите в папку проекта, в которой сохранен набор средств шаблон формы InfoPath.
По умолчанию это будет папка в имени пользователя на C:\Users\ \Documents\Visual Studio Projects компьютере, на котором был создан проект. Или вы можете переместить папку в расположение, в котором InfoPath хранит Visual Studio проектов 2012 г., которые по умолчанию C:\Users\ именуются пользователями. \Documents\InfoPath Projects
Щелкните файл с именем manifest.xsf и нажмите кнопку Открыть.
Перейдите на вкладку Разработчик и щелкните элемент Редактор кода.
Перейдите в расположение, где требуется сохранить файл, введите имя файла и нажмите кнопку Сохранить.
Выберите файл Visual Studio (.sln) для проекта и нажмите кнопку Открыть.
Сведения о работе с управляемыми шаблонами форм кода, которые используют новую объектную модель управляемых кодов InfoPath, см. в примере Developing InfoPath Form Templates with Code.
В шаблоне формы, создаваемом с помощью Microsoft InfoPath, схема XML (XSD) используется для выполнения проверки данных в XML, который представляет вводные, отредактированные и выводные данные из формы InfoPath. Каждый шаблон формы, созданный в конструкторе форм InfoPath, содержит как минимум один файл схемы XSD (XSD), используемый для проверки во время выполнения.
Содержащиеся в данной статье сведения предназначены для шаблонов форм, разработанных для использования в редакторе InfoPath. Совместимые с браузером шаблоны форм имеют более строгие требования к схемам XSD. Дополнительные сведения см. в документации о схемах XML в совместимых с браузером шаблонах форм, доступной на веб-сайте MSDN.
Использование созданных во внешней среде схем XML
Чтобы загрузить файл схемы XSD, созданный вне приложения InfoPath, выполните следующие действия.
Создание шаблона формы на основе внешней схемы
В Backstage, нажмите Создать, щелкните XML или схему в разделе Дополнительные шаблоны форм, а затем нажмите Создать форму.
В мастере источника данных, укажите нужный файл схемы XSD, а затем нажмите кнопку Далее и следуйте инструкциям на оставшихся страницах мастера.
Неподдерживаемые конструкции XSD
В следующих разделах описываются конструкции XSD, которые приложение InfoPath не может обрабатывать во время выполнения. Создавая шаблоны форм в конструкторе форм InfoPath, этих конструкций рекомендуется избегать.
Типы ENTITY и ENTITIES
Если шаблон формы InfoPath создается вручную не в режиме конструктора и в этом шаблоне используется XSD с типами ENTITY и ENTITIES, шаблон формы может работать во время выполнения в случае, если файл Template.xml содержит необходимый DTD для этих типов.
Обязательный элемент "xsd:any"
Экземпляр элемента подстановочного знака xsd:any, то есть экземпляр элемента xsd:any со значением атрибута minOccurs больше нуля ("required any"), запрещает детерминированное создание в InfoPath допустимого экземпляра для данного фрагмента схемы. При генерировании формы, использующей этот фрагмент схемы, в приложении InfoPath должна быть возможность создания допустимого экземпляра. Выполняя действия в мастере источника данных, при работе со схемами, имеющими обязательные элементы xsd:any, потребуется выбрать элемент схемы, который будет использоваться вместо обязательного элемента xsd:any.
Элементы абстрактного сложного типа
Режим конструктора InfoPath поддерживает разработку шаблона формы в схемах, использующих абстрактные сложные типы. Например, если shippingAddress элемент с именем имеет абстрактный сложный тип с двумя производными, USAddress CanadianAddress и InfoPath shippingAddress shippingAddress shippingAddress USAddress рассматривает любой экземпляр в качестве выбора между типом и типом . CanadianAddress``address В этом примере, если указанные схемы не содержат типов, производных от адреса, InfoPath запрашивает дополнительную схему, удовлетворяющую данному требованию.
Конструкции XSD с ограниченной функциональностью
В следующем разделе описаны конструкции XSD, функциональность которых ограничивается при использовании для создания шаблона формы в конструкторе форм InfoPath.
Группы подстановки
Все элементы группы подстановки отображаются в области задач Поля. В приложении InfoPath возможности подстановки представлены в виде варианта всех групп подстановки (включая определяющий элемент (если он не является абстрактным)). Если для абстрактного элемента группы подстановки отсутствуют, InfoPath выведет запрос на предоставление схемы, содержащей хотя бы один элемент, который является группой подстановки.
Неограниченные элементы выбора
В следующем фрагменте схемы представлен неограниченный элемент выбора:
В приложении InfoPath повторяющиеся элементы выбора отображаются в виде повторяющихся вариантов в области задач Поля. Элемент управления Повторяющаяся группа выбора можно использовать для представления разнородного списка, определенного повторяющимся элементом выбора в XSD.
Повторяющаяся последовательность
В следующем фрагменте схемы представлена повторяющаяся последовательность:
До тех пор пока в повторяющейся последовательности будет находиться необходимый элемент, приложение InfoPath будет загружать XSD без изменений, позволяя выполнять привязку элементов управления повторяющегося раздела к повторяющейся последовательности.
Выбор групп моделей
В следующем фрагменте схемы представлен элемент выбора, содержащий несколько групп моделей:
Режим конструктора InfoPath поддерживает такие конструкции XSD без внесения изменений со стороны конструктора форм. Приложение InfoPath не изменяет значение схемы и упрощает указанную выше конструкцию выбора до эквивалентного свернутого одного варианта в области задач Поля.
Необязательный элемент того же уровня с тем же классифицированным именем
В следующем фрагменте схемы представлен необязательный элемент того же уровня с тем же классифицированным именем ( QName ):
Выражения XPath для этих узлов могут быть сложными, поскольку в конструкторе форм InfoPath необходимо принимать во внимание каждый возможный экземпляр XML. InfoPath не открывает части схемы, для которых создание правильных привязок XPath может быть затруднительным. О пропущенных разделах схемы выводятся соответствующие предупреждения.
Конструкции XSD, имеющие особое значение в InfoPath
В следующих разделах описываются конструкции XSD, имеющие особое значение при использовании для создания шаблона формы в режиме конструктора. В этих разделах рассказывается о принципах использования таких конструкций в схемах для активации различных типов поведений.
Добавление новых полей и групп элементов с помощью области задач "Поля"
Добавление новых полей атрибута с помощью области задач "Поля"
Хранение подписей XML в источнике данных
Привязка поля к элементу управления "Rich Text Box"
Элементы управления Rich Text Box в InfoPath предназначены для создания общих XHTML; следовательно, схема должна указывать, что в XML и экземпляре формы является допустимым любое число узлов текста и XHTML. Для формирования такой спецификации служит следующая конструкция XSD.
InfoPath никогда не изменяет содержимое файла схемы XSD, но при разработке приложение может логически вывести его подмножество. Файл схемы в рамках шаблона формы никогда не изменяется как во время разработки, так и во время выполнения.
Общие ошибки отладки XSD
Объявление пространства имен XSD
Аналогично всем стандартам W3C схемы XML (XSD) прошли длительный процесс экспертной оценки, прежде чем стать рекомендуемым средством. Существовало множество рабочих проектов и, соответственно, на основе новых устанавливаемых стандартов было создано много XSD-файлов. В ходе этого процесса корпорация Майкрософт разработала специальный язык схемы, XML-Data Reduced (XDR), который был включен в MSXML 3.0. Начиная с выпуска MSXML 4.0 основные службы XML Майкрософт поддерживают полную рекомендацию XSD. Многие программы по созданию схем не использовали XSD до полной рекомендации. В более старых версиях этих программ могут быть созданы устаревшие файлы XSD, не поддерживаемые инфраструктурой MSXML 5.0, от которой зависит InfoPath.
Чтобы XSD-файл полностью поддерживает рекомендации XSD, он должен содержать в теге следующее объявление пространства имен XML :
Подобно всем объявлениям пространства имен XML префиксом XML (в данном случае "XSD") может быть любая допустимая строка префикса. Наиболее распространены префиксы "XSD", "XS" и "" (префикса нет). Если это объявление пространства имен отсутствует, MSXML обычно сообщает об ошибке, связанной с неправильным определением корня.
Импорт и включение схем
Схемы XSD являются расширяемыми и могут импортировать и включать в свой состав другие схемы. Обычно импорт схемы выполняется, если указанная в атрибуте targetNamespace схема отличается от текущей схемы. Схему необходимо включить в другую, если указанная в атрибуте targetNamespace схема совпадает с текущей.
Семантики импорта и включения схем выглядят следующим образом.
Ошибки, вызванные проблемами с атрибутом schemaLocation, представляют сложность только при первом импорте InfoPath схем; то есть при первой разработке формы на основе существующей схемы. После этого InfoPath работает с кэшированными версиями файлов схемы, сохраненных в шаблоне формы.
Использование пустого атрибута пространства имен допускается при импорте схемы, если она не указывает атрибут targetNamespace. Обычно пространство имен при импорте должно соответствовать атрибуту targetNamespace, указанному в импортируемой схеме.
Недетерминированные схемы
Схемы XSD существуют для проверки структуры данных XML и семантик типов. Для решения этой задачи система проверки (в данном случае MSXML 5.0) должна сопоставить узлы XML объявлениям XSD. Без этого сопоставления проверка не выполняется. Если сопоставление гарантировано, то схема является детерминированной. Если существует один экземпляр XML, делающий сопоставление невозможным, схема является недетерминированной.
В следующем примере представлена недетерминированная схема.
Чтобы показать, почему сегмент XSD является недетерминированным, предположим, что имеется следующий фрагмент XML, который нужно проверить с помощью этой схемы.
В этом фрагменте XML не ясно, является ли элемент обязательным узлом из первой части объявления выбора или необязательным из второй части объявления выбора. Это различие очень важно по следующим причинам.
Если фрагмент XML проверен по первой части объявления выбора, тогда XML считается допустимым в данной схеме.
Если фрагмент XML проверяется в отношении второй части объявления выбора, схема не является допустимой, так как необходимый узел отсутствует.
Некоторые системы проверки XSD не выдают ошибки при проверке по данной схеме, поскольку существует допустимый путь. MSXML является более жестким и выводит ошибку о недетерминированности схемы.
Далее представлено еще несколько примеров недетерминированных схем. В первом рассматриваются дополнительные элементы. Такие ситуации часто возникают с преобразованиями из XDR в XSD и связаны с различиями в заданных по умолчанию учетных данных в двух языках схем. Сначала следует рассмотреть дополнительные элементы, объявленные с помощью элементов xsd:choice и xsd:sequence. Дополнительные элементы, объявленные в элементе xsd:sequence, обычно проходят проверку надлежащим образом до тех пор, пока элементы с одинаковыми именами не будут присутствовать более одного раза и между ними будут находиться только дополнительные элементы.
Чтобы понять, почему этот сегмент схемы является недетерминированным, предположим, что имеется следующий недопустимый фрагмент XML.
При взгляде на этот фрагмент можно понять, почему он недействителен: перед элементом находятся два элемента, когда разрешен только один.
Теперь предположим, что нужно проверить следующий экземпляр XML.
Сложность заключается в определении действительности экземпляра. Есть ли у вас два элемента, где разрешен только один, или у вас есть элемент, где это разрешено, а другой , где это разрешено? Схема является недетерминированной, поскольку узнать ответ невозможно.
Таким же образом использование дополнительных элементов, объявленных в элементе xsd:choice, обычно является проблематичным. В следующем упрощенном примере нельзя определить, происходит ли выбор один раз при отсутствии дополнительного элемента либо он не происходит вообще.
Последняя сомнительный практика заключается в использовании xsd:any элемента без определения пространства имен, как в , после элемента xsd:sequence . Эта конструкция вносит особые сложности, когда следует за дополнительным элементом. При повторном обращении к предыдущему примеру и изменении последнего узла на элемент xsd:any видно, что предыдущие аргументы о недетерминированности по-прежнему применимы, как показано далее.
Недопустимые значения перечисления
Обычно схемы XSD не выполняют никаких проверок до тех пор, пока не будет проверен фактический документ экземпляра. Исключением является наличие в схеме перечисления. В этом случае схема проверяет значения перечисления по типам перечисления, чтобы гарантировать, что они представляют правильные значения узлов. Далее приведено два примера.
Эта схема недопустима, поскольку значение "eleven o'clock" не является допустимым для элемента типа xsd:time.
Далее приведен более сложный пример.
Чтобы понять причину, по которой этой пример признается недействительным, необходимо разобраться в способе определения типа xsd:NMTOKEN. В спецификации типов данных W3C тип NMTOKEN определен следующим образом: "NMTOKEN (маркер имени) это сочетание символов имени."
При дальнейшем изучении становится ясно, что "&" не является допустимым символом имени, и поэтому "M&Ms" не проходит проверку в качестве типа NMTOKEN.
Пустые элементы последовательности или выбора
Иногда MSXML выдает ошибки об объявлениях схемы, содержащих пустые элементы xsd:choice или xsd:sequence, как показано в следующем примере.
Удаление пустого тега должно решить эту проблему.
Регулярные выражения
MSXML 5.0 могут возникнуть проблемы с проверкой регулярных шаблонов выражений при нагрузке. Регулярные выражения могут быть сложными, и при их использовании следует быть осторожными. Кажется, что каждый parser XSD имеет гибкие языки регулярного выражения; то есть они реализуют официальный язык регулярных выражений XSD плюс элементы из других языков регулярных выражений. Если у конструктора форм InfoPath возникают проблемы с анализом регулярного выражения, то образцы данных, генерируемые InfoPath, могут быть недействительными или вообще не создаваться. Это допустимо во время разработки, так как InfoPath использует только пример данных для форматирования. Однако если используется регулярное выражение, которое MSXML не поддерживается, infoPath не может проверить значение, если пользователь заполнит форму. XML-схема Часть 0: Primer Second Editiondescribes what is supported in XSD regular expressions. Дополнительные сведения о регулярных выражениях XSD и регулярных выражениях уровня 1 юникода см. в рубке Unicode Regular Expressions.
Проблемы, связанные с атрибутом "targetNamespace"
XSD интересен тем, что по умолчанию атрибут targetNamespace относится только к объявлениям верхнего уровня, attributeFormDefault=qualified elementFormDefault=qualified хотя можно установить и переопредить это поведение по умолчанию. В качестве примера предположим, что в наличии имеется следующий файл XSD.
И далее, документ XML выглядит следующим образом.
Поскольку квалификация по умолчанию отключена, для локальных определений не требуется конечное пространство имен. Однако если локальное определение меняется на глобальное, ссылка должна быть снабжена префиксом пространства имен. Например, следующая схема является недопустимой.
Эта схема недействительна, поскольку "global" находится в пространстве имен "https://ns". ref="global" не распознается, так как заданное по умолчанию пространство имен отлично от "https://ns". Для устранения этой ошибки необходимо добавить префикс для конечного пространства имен и применять его для всех глобальных ссылок и использований типов. Исправленная схема выглядит следующим образом.
Если в схеме указан атрибут targetNamespace, необходимо убедиться, что все глобальные ссылки имеют правильный префикс пространства имен.
Кодировка инструкции обработки XML (Юникод и ANSII)
XML поддерживает только наборы символов в кодировке Юникод. Поэтому при сохранении файлов с символами ANSII данные могут быть потеряны. Сохранение же файлов в кодировке UTF-16 может быть излишним. Чтобы сократить затраты на внедрение средство чтения XML, автор XML-документа должен указать используемую кодировку в инструкции обработки XML. Можно распознать следующую знакомую инструкцию обработки.
Этот тег инструкции обработки указывает, что файл имеет кодировку UTF-8. Необходимо убедиться, что кодировка файла совпадает с кодировкой, определенной в теге инструкции обработки. Чтобы определить кодировку, можно посмотреть на байты файла и найти отметки порядка байт Юникода. Однако есть более простой способ. При возникновении трудностей с открытием схемы XSD нужно выбрать кодировку UTF-8, открыть схему в текстовом редакторе (например, в Блокноте), а затем сохранить файл с помощью кодировки UTF-8 (в Блокноте в диалоговом окне Сохранить как есть раскрывающийся список Кодировка). Если файл по-прежнему не открывается, проблема не связана с кодировкой.
Атрибут "maxOccurs" в элементе "xsd:all"
В связи со способом определения недетерминизма в рекомендации для схемы XML единственным допустимым значением для атрибута maxOccurs элемента xsd:element в элементе xsd:all является 1. Например, допустимо следующее.
Однако данный пример не является допустимым.
Этот пример является недействительным , так как система проверки не может определить, являются ли два возникновения карты одним объявлением или объявлением, а другое недействительное определение. В одном и том же теге нельзя иметь два элемента с одним и тем же именем .
Этот пример также интересен тем, что позволяет иметь любое количество и узлы внутри содержащего элемента в любом порядке. Несмотря на недопустимость этой структуры, существует обходной метод. Для достижения результата, показанного в следующем примере, можно использовать элемент xsd:choice.
Изменение или создание XSD для InfoPath
В следующих разделах приведены два примера по изменению и созданию схемы для вывода в InfoPath определенных результатов.
Вставка определенных пользователем элементов в область задач "Поля"
Чтобы определенные пользователем элементы могли отображаться в рамках родительского элемента в области задач Поля, в родительский элемент необходимо вставить элемент xsd:any. Чтобы разрешить вставлять внутри определенные пользователем элементы, XSD-объявление должно напоминать следующее.
Если вы также хотите разрешить атрибуты, определенные пользователем, необходимо добавить в объявление элемента.
Привязка элементов "Rich Text" в режимах конструктора и правки InfoPath
Если нужно объявить элемент, который можно привязать к элементу управления Rich Text Box, он должен иметь следующую форму, содержащую элемент xsd:any с атрибутом пространства имен в виде "https://www.w3.org/1999/xhtml", как показано в следующем примере.
Заключение
Благодаря поддержке InfoPath при разработке форм XML, основанных на созданных во внешней среде файлах схемы XML (XSD), можно создать шаблон формы, работающий с отраслевой или пользовательской схемой, сформированной в организации. Представленные в этой статье сведения полезны при создании файлов настраиваемой схемы XSD, совместимых с InfoPath; кроме того, вы сможете устранить общие неполадки, возникающие при загрузке созданных во внешней среде файлов XSD в среду разработки InfoPath.
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. В дерево DOM добавляется подтримка, когда пользователь покоится на указателе мыши над группой полей, щелкнув выпадаемое меню, которое отображается в группе полей, а затем выбирает вставку .
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
На рис. 1 показано контекстное раскрывающееся меню для группы полей customer, позволяющее пользователю добавить еще одну группу полей customer, удалить данную группу полей customer, вставить строку item в таблицу элементов закупки в данной группе полей или вставить дополнительную группу полей actions внутрь данной группы. Кроме того, можно вставить группу полей actions, выбрав ссылку Щелкнуть здесь. При этом для каждой строки элементов закупки будет открыто более короткое раскрывающееся меню.
В InfoPath пользователи могут создать новый документ XML на основе шаблона форм InfoPath или открыть существующий документ XML, основанный на шаблоне форм. Документ XML это файл данных XML, содержащий ссылку на шаблон форм, который может использовать пространства имен XML.
Шаблон форм это набор файлов, предоставляющих возможность структурированного редактирования документов XML, соответствующих заданной пользователем схемы XML. Файлы, составляющие шаблон форм, могут быть упакованы как отдельные файлы внутри обычной папки или как файлы в папке CAB-файла. В любом случае это стандартные XML-файлы и иногда еще дополнительные файлы, такие как сборки с управляемым кодом.
Если документ XML имеет цифровую подпись XML, InfoPath перед открытием XML-файла проверяет ее соответствие.
InfoPath создает дерево DOM документа XML в памяти.
К дереву DOM применяются XSL-преобразования, создающие представления в необходимом пользователю виде. Элементы, расположенные в начале документа XML, могут отображаться в одном представлении в нижней части, в другом как-то иначе. Представления состоят из контейнеров пользовательских интерфейсов, таких как разделы с текстом и элементы управления, поля ввода форматированного текста, элементы управления выбора даты и раскрывающиеся списки. Контейнеры также могут содержать вложенные контейнеры.
XSL-преобразование в качестве вывода создает XHTML, а для управления представлением XHTML используется CSS.
Если схема XML позволяет добавлять узлы к узлу дерева данных, поле или группа полей, сопоставленные с узлом, будут иметь раскрывающееся меню, в котором пользователь может выбрать необходимую команду добавление или удаление. При изменении документа пользователь может добавлять повторяющиеся или необязательные группы полей, вводить значения, выбирать параметры или вводить форматированный текст. Если узел схемы XML связан со схемой XHTML, InfoPath представляет пользовательский интерфейс для создания форматированного текста. При вводе пользователем форматированного текста контент XHTML создается в виде поддерева в DOM.
Дерево DOM постоянно поддерживается действительным. В процессе работы с документом XML вносимые изменения проверяются на соответствие связанной схеме XML. Изменения структуры DOM и значений конечных узлов проверяются на соответствие схеме XML, чтобы гарантировать допустимость типов данных и значений. Если изменение дерева DOM признается недопустимым, открывается диалоговое окно проверки, а само изменение не применяется. Если изменения допустимы, выполняется обновление дерева DOM.
Измененная часть представления обновляется с применением к дереву DOM только необходимых частей таблицы стилей XSLT.
Использование стандартов XML при разработке форм
Для создания формы можно начать с использования уже существующей схемы XML, можно подключиться к веб-службе XML или базе данных и получить их схему XML, можно создать схему автоматически на основе новой формы или файла данных XML. Сценарии создания форм описаны в следующих процедурах. На рис. 3 показан базовый пользовательский интерфейс создания шаблона форм.
Создайте новую форму в InfoPath Designer. Для этого выберите шаблон формы XML или схема, а затем выберите существующий файл схемы XML в качестве источника данных. Схема XML будет загружена в область задач и отобразится в виде дерева.
C помощью средств макетирования можно разметить элементы управления пользовательского интерфейса, такие как строки и фон в одном или сразу нескольких представлениях. При этом создаются некоторые элементы XSLT. Представления XSLT и схема XML автоматически связываются с шаблоном форм.
Сопоставление элементов схемы XML с элементами управления пользовательского интерфейса выполняется с помощью операции перетаскивания. InfoPath помогает выбрать соответствующие элементы управления для элементов схемы XML, основываясь на видах элементов схемы. Например, если тип данных XML дата, InfoPath предложит элемент управления выбора даты. В зависимости от вариантов выбора, предусмотренных в схеме XML, InfoPath может вставлять группы дополнительных или повторяющихся полей. При сопоставлении элементов схемы XML с элементами управления пользовательского интерфейса создается структура XSLT.
Сохраните шаблон формы. Для этого сохраните все файлы, составляющие шаблон, в обычной папке или в CAB-файле. В любом случае это будут стандартные XML-файлы. Теперь шаблон форм готов к использованию пользователями.
Шаблон форм содержит все семантические сведения, необходимые для обеспечения структурированного способа редактирования при открытии формы в InfoPath. Шаблон включает файл манифеста, XSLT-файлы, определяющие представления, сведения, необходимые для проверки данных, и дополнительный идентификатор ресурсов для веб-службы XML.
Манифест или файл определения формы это концентратор и точка входа для всех файлов, требуемых шаблоном форм. Манифест содержит ссылки на другие файлы шаблона форм и сведения, необходимые для проверки данных и обеспечения структурированной правки. Сведения для проверки соответствия схеме XML настраиваются с учетом конечного пользовательского интерфейса и добавляются в файл манифеста. Например, если схема позволяет выполнять вставку в определенное поддерево нескольких дополнительных элементов, можно разработать пользовательский интерфейс так, чтобы при выполнении пользователем одной операции пользовательского интерфейса вставлялось сразу несколько элементов. Такие настройки играют важную роль в обеспечении удобства для обычных пользователей.
Форму также можно создать, использовав существующую веб-службу XML для получения схемы XML. Для этого выполните следующие действия:
С помощью UDDI найдите необходимую веб-службу.
Выберите веб-службу. InfoPath считает данные из WSDL-файла, связанного с веб-службой, и определит используемую схему XML.
Откройте схему XML, чтобы загрузить ее.
Расположите элементы управления пользовательского интерфейса и свяжите их с элементами и атрибутами схемы XML.
Определите способ отправки документа XML веб-службе, использующей протокол SOAP.
Чтобы создать форму с нуля и автоматически создать для нее схему XML, выполните следующие действия:
На вкладке Файл выберите шаблон формы Пустая форма или Пустая форма (InfoPath Filler), а затем выберите пункт Конструктор форм.
На вкладке Главная щелкните стрелку, расположенную в правом нижнем углу группы Элементы управления, чтобы открыть область задач Элементы управления. Убедитесь, что установлен флажок Автоматически создавать источник данных (по умолчанию этот флажок установлен).
Расположите элементы управления пользовательского интерфейса. При этом InfoPath автоматически создаст схему XML и сопоставит ее элементы и атрибуты с этими элементами управления.
Чтобы создать форму, используя имеющийся файл данных XML, выполните следующие действия:
На вкладке Файл выберите шаблон формы XML или схема, а затем выберите пункт Конструктор форм.
В окне Мастер источника данных выберите XML-файл, который требуется использовать в качестве источника данных. Схема XML создается автоматически на основе выбранного XML-файла данных.
Разместите элементы управления пользовательского интерфейса, как описано выше.
Идеальный клиент для веб-служб
Широкомасштабная поддержка веб-служб становится доступной. Многие серверные системы и системы среднего уровня можно настроить на обмен данными с использованием таких стандартов веб-служб, как SOAP, UDDI и WSDL. Такие системы на основе веб-служб включают базы данных, системы рабочих процессов, системы планирования корпоративных ресурсов, системы управления отношениями с клиентами и прочие. В настоящее время InfoPath предоставляет идеальный пользовательский интерфейс для просмотра и редактирования данных XML, отправляемых посредством веб-служб. На рис. 4 показана интегрированная поддержка веб-служб XML.
Терминология
Свойство | Значение |
---|---|
группа полей: | Раздел, повторяющийся раздел, дополнительный раздел или повторяющаяся таблица. Разделы и повторяющиеся таблицы являются элементами управления формы, содержащей и другие элементы управления, которые повторяются по мере необходимости. При заполнении формы пользователь может вставлять сразу несколько разделов или строк. |
дерево DOM: | Структура источника данных формы. В частности, коллекция полей и групп, которые определяют и хранят данные для формы InfoPath. |
Заключение
InfoPath использует открытые стандарты XML для предоставления пользователям гибкого, но структурированного способа редактирования XML при сборе данных. Для обеспечения простоты визуализации и редактирования иерархически организованных данных XML встроенные группы полей, содержащие элементы управления пользовательского интерфейса, сопоставлены с деревом DOM. XSL-преобразования позволяют реорганизовывать содержимое представлений пользовательского интерфейса иначе, чем оно организовано в структуре данных XML.
InfoPath предоставляет большую гибкость, чем статичные формы, с более структурированным процессом правки и проверки, чем документы текстовых редакторов. В результате получается гибрид, объединяющий в себе лучшие характеристики традиционной правки документов с возможностями скрупулезного захвата данных пакета форм, что дает возможность обычным пользователям создавать допустимые документы XML, принадлежащие определенной пользователем схеме XML. Интегрированная поддержка веб-служб позволяет легко определять представления для редактирования документов XML в соответствии со схемами веб-служб.
Программы, которые поддерживают INFOPATHXML расширение файла
Программы, которые могут обрабатывать INFOPATHXML файлы, следующие. Файлы с суффиксом INFOPATHXML могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.
Программы, обслуживающие файл INFOPATHXML
Windows
Как открыть файл INFOPATHXML?
Проблемы с доступом к INFOPATHXML могут быть вызваны разными причинами. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами Microsoft InfoPath Form, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.
Шаг 1. Скачайте и установите InfoPath
Проблемы с открытием и работой с файлами INFOPATHXML, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами INFOPATHXML на вашем компьютере. Решение этой проблемы очень простое. Загрузите InfoPath и установите его на свое устройство. Выше вы найдете полный список программ, которые поддерживают INFOPATHXML файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт InfoPath и загрузите установщик.
Шаг 2. Проверьте версию InfoPath и обновите при необходимости
Если у вас уже установлен InfoPath в ваших системах и файлы INFOPATHXML по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Причиной того, что InfoPath не может обрабатывать файлы с INFOPATHXML, может быть то, что программное обеспечение устарело. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью InfoPath.
Шаг 3. Назначьте InfoPath для INFOPATHXML файлов
Если проблема не была решена на предыдущем шаге, вам следует связать INFOPATHXML файлы с последней версией InfoPath, установленной на вашем устройстве. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.
Выбор приложения первого выбора в Windows
- Нажатие правой кнопки мыши на INFOPATHXML откроет меню, из которого вы должны выбрать опцию Открыть с помощью
- Нажмите Выбрать другое приложение и затем выберите опцию Еще приложения
- Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен InfoPath, установите флажок Всегда использовать это приложение для открытия INFOPATHXML файлы свой выбор, нажав кнопку ОК
Выбор приложения первого выбора в Mac OS
Шаг 4. Убедитесь, что INFOPATHXML не неисправен
Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл INFOPATHXML, о котором идет речь. Отсутствие доступа к файлу может быть связано с различными проблемами.
1. INFOPATHXML может быть заражен вредоносным ПО - обязательно проверьте его антивирусом.
Если INFOPATHXML действительно заражен, возможно, вредоносное ПО блокирует его открытие. Рекомендуется как можно скорее сканировать систему на наличие вирусов и вредоносных программ или использовать онлайн-антивирусный сканер. Если файл INFOPATHXML действительно заражен, следуйте инструкциям ниже.
2. Убедитесь, что структура файла INFOPATHXML не повреждена
3. Убедитесь, что у вас есть соответствующие права доступа
Иногда для доступа к файлам пользователю необходимы права администратора. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.
4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия InfoPath
Если в системе недостаточно ресурсов для открытия файлов INFOPATHXML, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.
5. Убедитесь, что ваша операционная система и драйверы обновлены
Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера. Это также может предотвратить проблемы с файлами Microsoft InfoPath Form. Возможно, файлы INFOPATHXML работают правильно с обновленным программным обеспечением, которое устраняет некоторые системные ошибки.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла INFOPATHXML мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле INFOPATHXML.
Читайте также: