Xформы
XForms — это формат XML , используемый для сбора входных данных из веб-форм . XForms был разработан как следующее поколение форм HTML / XHTML , но он достаточно универсален, чтобы его можно было использовать автономно или с языками представления, отличными от XHTML, для описания пользовательского интерфейса и набора общих задач по манипулированию данными .
XForms 1.0 (Третье издание) был опубликован 29 октября 2007 года. Исходная спецификация XForms стала официальной рекомендацией W3C 14 октября 2003 года, а XForms 1.1, в которой был представлен ряд улучшений, достигла того же статуса 20 октября 2009 года.
Отличия от веб-форм
[ редактировать ]В отличие от исходных веб-форм (первоначально определенных в HTML), создатели XForms использовали подход модель-представление-контроллер (MVC). Модель состоит из одной или нескольких моделей XForms, описывающих данные формы, ограничения на эти данные и отправку. Представление описывает, какие элементы управления отображаются в форме, как они сгруппированы и с какими данными они связаны. CSS можно использовать для описания внешнего вида формы.
Документ XForms может быть таким же простым, как веб-форма (только с указанием элемента отправки в разделе модели и размещением элементов управления в теле), но XForms включает в себя множество расширенных функций. Например, новые данные могут быть запрошены и использованы для обновления формы во время ее работы, аналогично использованию XMLHttpRequest / AJAX, за исключением использования сценариев. Автор формы может проверять пользовательские данные на соответствие типам данных XML-схемы , требовать определенные данные, отключать элементы управления вводом или изменять разделы формы в зависимости от обстоятельств, обеспечивать определенные связи между данными, вводить массивы данных переменной длины, выводить расчетные значения, полученные из данных формы. , предварительно заполнять записи с помощью XML-документа, реагировать на действия в режиме реального времени (а не во время отправки) и изменять стиль каждого элемента управления в зависимости от устройства, на котором они отображаются (браузер настольного компьютера или мобильный телефон, только текст и т. д.). Часто нет необходимости писать сценарии на таких языках, как JavaScript. Однако XForms включает модель событий и действия для реализации более сложного поведения форм. [1] Действия и обработка событий определяются с использованием диалекта 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 изначально. Однако существуют различные плагины для браузера, клиентские расширения и серверно-клиентские решения. Ниже перечислены некоторые реализации:
- XForms Расширение Firefox было частью проекта Mozilla. [2] Поддержка XForms 1.0 SE не является полной, но охватывает большую часть спецификации, за исключением повторения на основе атрибутов, используемого в таблицах HTML. Расширение было доступно как для Firefox 2, так и для Firefox 3, но не обновлено для поддержки Firefox 4 и выше. В июле 2011 года ведущий разработчик написал, что поддержка XForms больше не будет обновляться. [3] Поддержка XForms в конечном итоге была прекращена в Firefox 19. [4]
- IBM Lotus Forms поддерживает разработку и развертывание форм чистого XML на основе XForms. Доступны пробные загрузки среды визуального проектирования на основе Eclipse и средства просмотра на стороне клиента, которое может запускать формы на основе XForms как в веб-браузере, так и в качестве автономного настольного приложения.
- OpenOffice.org версии 2.0 и выше, а также LibreOffice поддерживают XForms. [5] [6]
Сравнение технологий внедрения
[ редактировать ]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 для мобильных устройств
[ редактировать ]Части этой статьи (относящиеся к льготам) необходимо обновить . Причина такова: «Поддержка JavaScript сильно различается на мобильных устройствах, и на нее нельзя широко полагаться». - это было написано в 2005 году и устарело. ( июль 2021 г. ) |
Преимущества
[ редактировать ]XForms предоставляет определенные преимущества при использовании на мобильных устройствах:
- Пользовательские интерфейсы, использующие XForms, требуют меньшего количества обращений к серверу и в этом смысле более автономны, чем пользовательские интерфейсы, использующие формы HTML 4.
- Возможности мобильных устройств сильно различаются; следовательно, объем работы по созданию различных пользовательских интерфейсов для разных устройств вызывает особую озабоченность в мобильном мире. XForms был разработан с нуля, чтобы позволить описывать формы независимо от устройства, что уменьшает объем работы, необходимой для работы с несколькими устройствами.
- XForms снижает потребность в JavaScript, что особенно интересно, поскольку поддержка JavaScript сильно различается на мобильных устройствах и на нее нельзя широко полагаться. Это также позволяет системам, в которых JavaScript отключен по соображениям безопасности, продолжать работать безупречно.
Реализации
[ редактировать ]ОДК
[ редактировать ]ОДК [7] — это мобильная платформа сбора данных с открытым исходным кодом, которая использует подмножество W3C XForms 1.0 под названием ODK XForms. [8] ODK предоставляет библиотеки обработки ODK XForms на Java ( JavaRosa ) и JavaScript ( enketo-core ).
Ксфолайт
[ редактировать ]Xfolite — это легкий клиент XForms для платформы J2ME. Первоначально он был создан в исследовательском центре Nokia и включает в себя реализацию DOM и XPath 1.0, а также механизм XForms, который практически полностью реализует спецификацию XForms 1.1. XFolite был выпущен как бета-версия программного обеспечения и не должен считаться готовым к использованию в производстве как таковой. Однако он содержит зрелый движок XForms, разработанный для работы с различными реализациями пользовательского интерфейса. Однако XML-схемы и CSS выходят за рамки проекта. Xfolite имеет открытый исходный код и распространяется по лицензии LGPL, но в дальнейшем активно не развивается.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Пембертон, Стивен (июнь 2014 г.). «Живые XML-данные» . XML Лондон 2014 : 96–102. doi : 10.14337/XMLLondon14.Pemberton01 . ISBN 978-0-9926471-1-7 .
- ^ Mozilla: Проект Mozilla XForms — Скачать . По состоянию на 12 марта 2013 г.
- ↑ Филипп Вагнер: Будущее Mozilla XForms , 13 июля 2011 г.
- ^ Сеть разработчиков Mozilla (MDN): XForms . По состоянию на 12 марта 2013 г.
- ^ Apache OpenOffice: [1] . Доступ 24 мая 2020 г.
- ^ The Document Foundation: Документы форм XML (XForms) . По состоянию на 12 марта 2013 г.
- ^ «ОДК — Собирайте данные где угодно» . getodk.org .
- ^ «Спецификация ODK XForms» .
- XForms 1.1 — Рекомендация W3C от 20 октября 2009 г.
- Раман, ТВ (2004). XForms: веб-формы на базе XML . Бостон: Аддисон-Уэсли . ISBN 0-321-15499-1 .
- Дубинко, Мика (2003). Основы XForms . Севастополь, Калифорния; Фарнхэм: О'Рейли и партнеры . ISBN 0-596-00369-2 . Архивировано из оригинала 15 сентября 2008 г. Проверено 24 апреля 2005 г.
Внешние ссылки
[ редактировать ]- Ресурсы XForms на W3C
- Группа сообщества пользователей XForms
- XForms 1.0 Часто задаваемые вопросы
- XForms 1.1 был рекомендацией W3C от 20 октября 2009 г.
- Рабочий проект XForms 2.0
- XForms 2.0: Модуль выражений XPath
- Краткое введение в XForms для авторов HTML Стивена Пембертона
- Краткий справочник по XForms 1.1
- Реализации XForms
- Рабочая группа по формам (исторический интерес)
- XForms 1.0 (третье издание) была рекомендацией W3C от 29 октября 2007 г.
- XML: Формы в Curlie
- XSLTForms
- Смартсайт XForms