XForms — это спецификация XML-маркирования, предназначенная для декларативного определения форм и формоподобных приложений в веб-среде. Она отделяет модель данных, представление и поведение управления, позволяя описывать структуру данных, привязку к элементам управления, правила валидации и логику обработки без привязки к конкретной реализации интерфейса. XForms был разработан как эволюция классических HTML-форм с целью повышения гибкости, повторного использования и поддержки сложных сценариев ввода данных.
В основе XForms лежит модель данных на базе XML, которая может содержать повторяющиеся группы, вложенные структуры и типы данных, а также декларативные выражения для ограничений и вычислений. Представление формирует набор визуальных и управляющих элементов, привязанных к узлам модели, а механизм действий и событий обеспечивает реактивное обновление, валидацию и подготовку данных к отправке в формате XML или JSON. Спецификация позволяет реализовывать клиентские и серверные сценарии обработки, включая локальную проверку ввода и динамическое изменение структуры формы.
- Декларативность: отделение модели данных от представления и логики управления.
 - Модель на базе XML: структурированное хранение данных с поддержкой вложенности и повторений.
 - Привязка данных: элементы управления привязываются к узлам модели через binding.
 - Валидация и ограничения: декларативные правила для проверки типов, диапазонов и регулярных выражений.
 - Вычисления: автоматическое вычисление значений на основе выражений, обновляющееся при изменении зависимостей.
 - Повторяющиеся блоки: поддержка динамического множества записей (repeat) для списков и таблиц.
 - События и действия: реакция на пользовательские и системные события с выполнением предопределённых действий.
 - Множественные представления: возможность создавать несколько интерфейсов для одной модели данных.
 - Форматы обмена: сериализация данных в XML; часто используется преобразование в JSON на стороне сервера или клиента.
 - Интеграция с веб-технологиями: взаимодействие с XSLT, XPath и другими стандартами для обработки и трансформации данных.