XForms

редактировать
(Перенаправлено из FormFaces ) Информацию о пакете графического интерфейса пользователя системы X Window см. В разделе XForms (инструментарий).

XForms - это формат XML, используемый для сбора входных данных из веб-форм. XForms был разработан как новое поколение форм HTML / XHTML, но является достаточно общим, чтобы его можно было использовать автономно или с языками представления, отличными от XHTML, для описания пользовательского интерфейса и набора общих задач манипулирования данными.

XForms 1.0 (третье издание) было опубликовано 29 октября 2007 года. Исходная спецификация XForms стала официальной рекомендацией W3C 14 октября 2003 года, а XForms 1.1, в котором был внесен ряд улучшений, достиг того же статуса 20 октября 2009 года.

Содержание
  • 1 Отличия от веб-форм
  • 2 Поддержка программного обеспечения
  • 3 Сравнение технологий внедрения
  • 4 Архитектура приложения XRX
  • 5 XForms для мобильных устройств
    • 5.1 Преимущества
    • 5.2 Реализации
      • 5.2.1 Энкето
      • 5.2.2 Xfolite
      • 5.2.3 JavaRosa
      • 5.2.4 ODK Collect
      • 5.2.5 Группа завершена
  • 6 См. Также
  • 7 ссылки
  • 8 Внешние ссылки
Отличия от веб-форм

В отличие от исходных веб-форм (изначально определенных в HTML), создатели XForms использовали подход модель – представление – контроллер (MVC). Модель состоит из одной или нескольких моделей XForms, описывающих данные формы, ограничения на эти данные и представления. Представление описывает, какие элементы управления отображаются в форме, как они сгруппированы вместе и с какими данными они связаны. CSS можно использовать для описания внешнего вида формы.

Документ XForms может быть таким же простым, как веб-форма (только путем указания элемента представления в разделе модели и размещения элементов управления в теле), но XForms включает в себя множество дополнительных функций. Например, новые данные могут быть запрошены и использованы для обновления формы во время ее работы, как при использовании XMLHttpRequest / AJAX, за исключением того, что сценарии не используются. Автор формы может проверять данные пользователя на соответствие типам данных XML-схемы, запрашивать определенные данные, отключать элементы управления вводом или изменять разделы формы в зависимости от обстоятельств, устанавливать определенные отношения между данными, вводить массивы данных переменной длины, выводить вычисленные значения, полученные из данных формы, предварительно заполнять записи с помощью XML-документа, реагировать на действия в режиме реального времени (а не во время отправки) и изменять стиль каждого элемента управления в зависимости от устройства, на котором они отображаются (настольный браузер по сравнению с мобильным или только текстовым и т. д.). Часто нет необходимости в написании сценариев на таких языках, как JavaScript. Однако XForms действительно включает в себя модель событий и действия для реализации более сложных форм поведения. Действия и обработка событий указываются с использованием диалекта XML XForms, а не более распространенных языков сценариев, таких как JavaScript.

Как и веб-формы, XForms могут использовать различные протоколы отправки, отличные от XML ( multipart / form-data, application / x-www-form-urlencoded ), но новая функция заключается в том, что XForms могут отправлять данные на сервер в формате XML. XML-документы также можно использовать для предварительного заполнения данных в форме. Поскольку XML является стандартом, существует множество инструментов, которые могут анализировать и изменять данные при отправке. Также существуют аналогичные инструменты для устаревших форм. XForms сам по себе является диалектом XML, поэтому его можно создавать и создавать из других документов XML с помощью XSLT. Используя преобразования, XForms могут быть автоматически созданы из XML-схем, а XForms могут быть преобразованы в XHTML-формы.

Поддержка программного обеспечения

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

  • Расширение Firefox XForms было частью проекта Mozilla. Поддержка XForms 1.0 SE не является полной, но охватывает большую часть спецификации с заметным исключением повторения на основе атрибутов, используемого в таблицах HTML. Расширение было доступно как для Firefox 2, так и для Firefox 3, но не обновлено для поддержки Firefox 4 и выше. В июле 2011 года ведущий разработчик написал, что поддержка XForms больше не будет обновляться. В конечном итоге поддержка XForms была прекращена в Firefox 19.
  • IBM Lotus Forms поддерживает разработку и развертывание чистых XML-форм на основе XForms. Доступны пробные загрузки среды визуального дизайна на основе Eclipse и средства просмотра на стороне клиента, которое может запускать формы на основе XForms как в веб-браузере, так и в качестве автономного настольного приложения.
  • OpenOffice.org версии 2.0 и выше и LibreOffice поддерживают XForms.
Сравнение технологий внедрения

FormFaces, AJAXForms, XSLTForms, betterFORM, Chiba, Orbeon и Smartsite Forms основаны на технологии Ajax. Объем обработки на стороне сервера и на стороне клиента зависит от этих реализаций. Например, Ubiquity XForms, FormFaces и XSLTForms обеспечивают 100% обработку XForms на стороне клиента и обновления модели данных с помощью чистой обработки Ajax в стандарте XForms. Остальные используют серверные Java /.NET XForms для обработки транскодирования в разметку Ajax перед доставкой контента в браузер. Оба метода могут работать в разных браузерах. Каждая реализация значительно отличается в отношении зависимостей, масштабируемости, производительности, лицензирования, зрелости, сетевого трафика, автономных возможностей и кроссбраузерной совместимости. Системные архитекторы должны соотносить эти ограничения со своими потребностями, чтобы определить потенциальные риски и цели.

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

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

Ubiquity XForms, FormFaces и XSLTForms предоставляют решение с «нулевым программным обеспечением» ни на клиенте, ни на сервере: нет необходимости устанавливать новое программное обеспечение на клиенте, и решение можно использовать в сочетании с любой серверной архитектурой. Это возможно, потому что FormFaces и Ubiquity XForms на 100% написаны на Ajax, а XSLTForms написаны на XSLT и на Ajax. Компромисс заключается в том, что по сравнению с другими решениями клиенту изначально загружается больше кода (код может быть кэширован на клиенте), а FormFaces еще не поддерживает проверку схемы XML. Более того, отправка XForms с поведением замены "все" обычно не приводит к истинной замене страницы и, следовательно, нарушает нормальное поведение кнопки возврата.

Архитектура приложения XRX

Поскольку XForms упрощает редактирование сложных XML-данных, использование XForms с собственными базами данных XML, которые часто используют интерфейсы REST, дает множество преимуществ. Комбинация трех технологий (XForms на клиенте, интерфейсы REST и XQuery на сервере) вместе известна как разработка приложений XRX. XRX известен своей простой архитектурой, которая использует XML как на клиенте, так и в базе данных и избегает преобразований в объектные или реляционные структуры данных. См. « XRX: простой, элегантный, разрушительный ».

XForms для мобильных устройств

Преимущества

XForms дает определенные преимущества при использовании на мобильных устройствах:

  • Пользовательские интерфейсы, использующие XForms, требуют меньшего количества обращений к серверу и в этом смысле более автономны, чем пользовательские интерфейсы, использующие формы HTML 4.
  • Возможности мобильных устройств сильно различаются; следовательно, объем работы, связанной с созданием различных пользовательских интерфейсов для разных устройств, вызывает особую озабоченность в мобильном мире. XForms был разработан с нуля, чтобы позволить описывать формы независимо от устройства, что сокращает объем работы, необходимой для работы с несколькими устройствами.
  • XForms снижает потребность в JavaScript, что особенно интересно, поскольку поддержка JavaScript сильно различается на мобильных устройствах и на нее нельзя широко полагаться. Это также позволяет системам, в которых отключен JavaScript из соображений безопасности, продолжать работать безупречно.

Реализации

Энкето

Enketo - это клиент XForms в браузере, созданный с использованием javascripts.

Xfolite

Xfolite - это облегченный клиент XForms для платформы J2ME. Первоначально он был создан в Nokia Research Center и включает в себя реализацию DOM и XPath 1.0, а также механизм XForms, который практически полностью реализует спецификацию XForms 1.1. XFolite был выпущен в виде бета-версии программного обеспечения и не должен считаться готовым к использованию в производстве. Тем не менее, он содержит зрелый движок XForms, который был разработан для работы с различными реализациями пользовательского интерфейса. Однако схемы XML и CSS выходят за рамки проекта. Xfolite имеет открытый исходный код и распространяется под лицензией LGPL, но в дальнейшем активно не развивается.

JavaRosa

JavaRosa - это клиент XForms, написанный на Java Mobile Edition (J2ME), который поддерживает широкий спектр устройств, от топовых смартфонов и КПК с большими экранами и большим объемом памяти до недорогих устройств, таких как Nokia 6085 и 2630. Создание JavaRosa, которую можно использовать на устройствах с низким уровнем ресурсов, является одним из главных приоритетов проекта. JavaRosa 1.0 Alpha была выпущена в сентябре 2010 года.

ОДК Собрать

ODK Collect является частью Open Data Kit и является клиентом XForms для устройств Android. Клиент отображает XForm в последовательном порядке, подчиняясь логике формы, ограничениям ввода и повторяющимся подструктурам. Пользователи работают с подсказками и сохраняют отправку как завершенную или частично завершенную (с возможностью более позднего редактирования), а также могут записывать изображения, а также свое местоположение, используя встроенную камеру телефона и устройство GPS, соответственно.

Группа завершена

Group Complete - это мобильная система сбора данных, в которую входит Group Complete Mobile (GC Mobile), клиент XForms для устройств Android. GC Mobile предоставляет интерфейс для создания XForms на мобильном устройстве, а также ввода данных XForms с возможностями, аналогичными ODKCollect. Формы и данные хранятся в базах данных CouchDB, что позволяет мобильным работникам вносить изменения в формы и данные в автономном режиме, совместно работать над вводом данных и обмениваться собранными данными с членами команды и потребителями данных бэк-офиса в режиме реального времени. Group Complete совместима со всеми основными системами ODK. Group Complete была прекращена в марте 2012 года, а код был выпущен в феврале 2013 года как открытый исходный код.

Смотрите также
Ссылки
  1. ↑ Пембертон, Стивен (июнь 2014 г.). «Живые XML-данные». XML London 2014: 96–102. DOI : 10.14337 / XMLLondon14.Pemberton01. ISBN   978-0-9926471-1-7.
  2. ^ Mozilla: Mozilla XForms Project - Загрузить. Проверено 12 марта 2013 г.
  3. ↑ Филипп Вагнер: будущее Mozilla XForms, 13 июля 2011 г.
  4. ^ Сеть разработчиков Mozilla (MDN): XForms. Проверено 12 марта 2013 г.
  5. ^ Apache OpenOffice: [1]. Проверено 24 мая 2020 г.
  6. ^ The Document Foundation: документы XML-форм (XForms). Проверено 12 марта 2013 г.
  7. ^ Объявление на веб-сайте Group Complete, 03/2012
  8. ^ Объявление в блоге о группе, 02/2013
внешние ссылки
Последняя правка сделана 2024-01-05 09:04:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте