Учебное пособие (1075724), страница 28
Текст из файла (страница 28)
5.8. Результат выполнения примера 5.2. Файл «models.xhtml».В предыдущих примерах данные по-умолчанию всегда задавались каксодержимое элемента xforms:instance. Но в XForms данные по-умолчанию можнозадать тремя способами:1. Как содержимое элемента xforms:instance.2. Через атрибут src, в котором указывается URI источника данных(например, URI серверного сценария, который формирует данные).3. Через атрибут resource, в котором указывается URI источника данных.При этом используются следующие правила:1. Если указан атрибут src, то он имеет более высокий приоритет посравнению с содержимым элемента xforms:instance и с атрибутом resource.2.
Если атрибут src не указан, то содержимое элемента xforms:instance имеетбольший приоритет по сравнению с атрибутом resource.Таким образом, с использованием атрибутов «src» и «resource» элемента«xforms:instance» можно загружать данные по-умолчанию из дополнительныхисточников.268Проблема заключается в том, что в реальных приложениях значениеатрибутов «src» и «resource» может меняться (например, в случае создания новогоэлемента данных и в случае редактирования ранее введенных данных). То естьжелательноилипараметризоватьXForms-форму,илисгенерироватьеединамически.Поэтому при разработке приложений с использованием XForms мы будемиспользовать XForms-процессор XSLTForms. XSLTForms позволяет достаточнопросто работать с XForms-формами, которые сгенерированы динамически спомощью серверных XQuery- сценариев.5.7 Элементы управления формыЭлементы управления формы позволяют пользователю вводить данные вмодель данных.К элементам управления формы относятся поля ввода, радиокнопки, спискии т.д.Некоторые из этих элементов управления имеют прямые аналоги в HTMLформах, некоторые являются более сложными элементами и не имеют прямыханалогов в HTML-формах.Все элементы управления можно разделить на две группы:1.
Элементы управления, которые используются для ввода данных вединственный XML-элемент данных.Это такие элементы управления, как: input (поле ввода). secret (поле ввода со скрытием символов). textarea (многострочное поле ввода). output (поле вывода). upload (поле выбора файла). range (выбор значения шкалы). label (задание подписи к элементу). help (справочная информация об элементе).269 hint (короткая справка об элементе). alert (сообщение об ошибке). trigger (кнопка или гиперссылка). submit (кнопка или гиперссылка отправки данных формы на сервер). select (список с множественным выбором). select1 (список с единичным выбором).Для связи таких элементов управления с XML-данными используется способ,который в спецификации называется «Single-Node Binding».Этот способ мы уже рассмотрели ранее.
Он предполагает два способа дляссылки на элемент данных:I. Использование атрибута «ref=XPath-выражение» и, при необходимостиссылки на модель, атрибута «model=id модели».II. Использование атрибута «bind=id элемента xforms:bind». В этом случае idэлемента xforms:bind однозначно определяет модель.При этом предполагается, что мы выбираем из модели данных единственныйэлемент.2. Элементы управления, которые используются для обработки группы XMLэлементов данных.Это такие элементы управления, как: group (группировка элементов). switch (создание и переключение вкладок). repeat (обработка повторяющиеся данных).Для связи таких элементов управления с XML-данными используется способ,который в спецификации называется «Node-Set Binding».Он также предполагает два способа для ссылки на элементы данных:I.Использованиеатрибута«nodeset=XPath-выражение»и,принеобходимости ссылки на модель, атрибута «model=id модели».II.
Использование атрибута «bind=id элемента xforms:bind». В этом случае idэлемента xforms:bind однозначно определяет модель.270При этом предполагается, что мы выбираем из модели данных группуэлементов.Большинство элементов управления позволяет использование следующихатрибутов.Таблица 5.2. Атрибуты элементов управления.АтрибутЗначенииеappearance = "full" |Отображает элемент в полном, компактном или"compact" | "minimal"минимальном виде. Как правило, этот атрибут влияет набольшинство элементов управления, особенно наэлементы отображения группы данных (repeat и т.д.).mediatype="значение"Позволяет указывать тип содержимого для данных, чтоменяет внешний вид элемента управления. Например,элемент textarea с атрибутом mediatype="text/html"некоторыми XForms-процессорами отображается не какмногострочный текст, а как HTML-редактор.navindex="целое число Определяет порядок перехода по клавише «tab» междув диапазоне 0-32767"полями.
Переход осуществляется к элементу сминимальным большим значением атрибута «navindex».accesskey="горячаяПозволяет задавать горячую клавишу для быстрогоклавиша"доступа к элементу управления. Как правило,используется комбинация alt+горячая клавиша.Рассмотрим более подробно элементы управления, которые применяются вXForms.5.7.1 Элемент inputБольшинством XForms-процессоров отображается как поле ввода.
Какправило, адаптируется к типу данных элемента. Например, в случае логическоготипа отображается в виде флажка.271Этот элемент активно использовался в предыдущих примерах.5.7.2 Элемент secretБольшинством XForms-процессоров отображается как поле ввода соскрытием вводимых символов. Обычно используется для ввода паролей.Пример 5.3. Файл «secret.xhtml».<?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml"xmlns:xforms="http://www.w3.org/2002/xforms"xmlns:ev="http://www.w3.org/2001/xml-events" ><head><title>Пример элемента secret</title><!-- Пустой префикс пространства имен обязателен для корневогоэлемента xforms:instance --><xforms:model><xforms:instance><example xmlns=""><text/><password/></example></xforms:instance><!-- submission указывает, куда необходимо отправить форму --><xforms:submission action="" method="post" id="submit_id"includenamespaceprefixes=""/></xforms:model></head><body><xforms:group><xforms:input ref="text"><xforms:label>Введите текст:</xforms:label></xforms:input>272<xforms:secret ref="password"><xforms:label>Введите пароль:</xforms:label></xforms:secret><!-- Кнопка отправки формы.
Атрибут submission ссылается наэлемент xforms:submission в модели --><xforms:submit submission="submit_id"><xforms:label>Отправка формы</xforms:label></xforms:submit></xforms:group></body></html>Результат выполнения примера:Рис. 5.9. Результат выполнения примера 5.3.
Файл «secret.xhtml».5.7.3 Элемент textareaБольшинством XForms-процессоров отображается как многострочное полеввода.Некоторые XForms-процессоры (в том числе betterFORM) в случаеиспользования атрибута «mediatype="text/html"» отображают поле в видередактора HTML.273Некоторые браузеры (например, Mozilla Firefox) автоматически проверяюторфографию в поле textarea (иногда также в поле input), точнее орфографияавтоматически проверяется в HTML-элементах, которые использует XFormsпроцессор.Поскольку различные браузеры могут проверять орфографию для разныхHTML-элементов и различные XForms-процессоры могут использовать разныеHTML-элементы, то в каждом конкретном случае (браузер + XForms-процессор)требуются дополнительные исследования.Пример 5.3.
Файл «textarea.xhtml».<?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml"xmlns:xforms="http://www.w3.org/2002/xforms"xmlns:ev="http://www.w3.org/2001/xml-events" ><head><title>Пример элемента textarea</title><!-- Пустой префикс пространства имен обязателен для корневогоэлемента xforms:instance --><xforms:model><xforms:instance><example xmlns=""><text/><textarea/></example></xforms:instance><!-- submission указывает куда необходимо отправить форму --><xforms:submission action="" method="post" id="submit_id"includenamespaceprefixes=""/></xforms:model></head><body><xforms:group>274<xforms:input ref="text"><xforms:label>Введите текст:</xforms:label></xforms:input><xforms:textarea ref="textarea"><xforms:label>Введите многострочный текст:</xforms:label></xforms:textarea><xforms:textarea ref="textarea" mediatype="text/html"><xforms:label>Введите многострочный текст(HTML):</xforms:label></xforms:textarea><!-- Кнопка отправки формы.















