Главная » Просмотр файлов » Учебное пособие

Учебное пособие (1075724), страница 36

Файл №1075724 Учебное пособие (Г.И. Ревунков, Ю.Е. Гапанюк - Введение в XML – технологии) 36 страницаУчебное пособие (1075724) страница 362018-01-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 36)

5.28. Результат выполнения примера 5.4. Файл «actions.xhtml».350В следующем примере форма содержит фильтр по названию элемента.Пример 5.4. Файл «filter.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"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><head><title>Пример фильтра</title><xforms:model><xforms:instance><example xmlns=""><item><text>Пример гиперссылки 1</text><uri>http://iu5.bmstu.ru/1.html</uri></item><item><text>ПРИМЕР гиперссылки 12</text><uri>http://iu5.bmstu.ru/2.html</uri></item><item><text>ПриМер гиперссылки 123</text><uri>http://iu5.bmstu.ru/3.html</uri></item><filter>123</filter></example></xforms:instance><xforms:bind nodeset = "/example/item/uri" type="xsd:anyURI" /></xforms:model></head><body><xforms:group>351<xforms:input ref="filter"><xforms:label>Введите текст фильтра:</xforms:label></xforms:input><!-- Выбираются только те элементы item, элементы text которыхсодержат filter в качестве подстроки.

nodeset="item[contains(text,//filter)]" - фильтр с учетом регистра символов,обычно это нежелательно. Поэтому в примере реализован Фильтр безучета регистра символов. --><xforms:repeat id="repeat1"nodeset="item[contains(translate(text,'абвгдежзийклмнопрстуфхцчшщъьэюя','АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЭЮЯ'),translate(//filter,'абвгдежзийклмнопрстуфхцчшщъьэюя','АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЭЮЯ'))]"><xforms:output value="text"/><xforms:trigger><xforms:label>Перейти</xforms:label><xforms:load ev:event="DOMActivate" show="new"><xforms:resource value="uri"/></xforms:load></xforms:trigger></xforms:repeat></xforms:group></body></html>Результат выполнения примера:352Рис.

5.29. Результат выполнения примера 5.4. Файл «filter.xhtml».5.9 Сохранение данных формыПосле заполнения полей формы, данные должны быть отправлены на сервер.Параметры отправки данных определяются элементом «submission» в моделиданных формы. На элемент «submission» могут ссылаться элементы «submit»(кнопка отправки) и «send» (отправка из обработчика события).С помощью элемента «submission» данные могут быть переданы дляобработки серверному сценарию или сохранены в СУБД «eXist».353Рассмотрим более подробно основные атрибуты элемента «submission».Атрибут «id» определяет id элемента для дальнейших ссылок в форме.Атрибут «action» задает URI серверного сценария, которому будутпередаваться данные.

Считается устаревшим, вместо него должен использоватьсяатрибут «resource».Атрибут «ref=XPath-выражение» определяет, какую часть модели данныхнужно отправлять, по умолчанию «/». Этот атрибут позволяет отправлятьфрагмент модели данных.Атрибут «method» задает метод HTTP-протокола для отправки данных(обычно используется POST, иногда PUT). Метод GET здесь не может бытьиспользован, так как XML-данные не должны передаваться через строку URI.Атрибут «includenamespaceprefixes» позволяет включать в передаваемыеданные нужные префиксы пространств имен. Это полезно в том случае, когдаданные содержат пространства имен.

Пустое значение атрибута указывает, чтопрефиксы пространств имен не передаются на сервер.Атрибут «replace» определяет какую часть XForms-формы нужно заменитьответом, полученным от серверного сценария: «all» (полностью заменить форму),«instance» (заменить только данные формы), «none» (ничего не заменять).В этом разделе для отправки мы будем использовать метод PUT и изучатьотправленные файлы в «eXist». Для доступа к «eXist» через URI (REST-доступ)используетсяследующийURI:«http://localhost:8080/exist/rest/db/названиеколлекции и имя файла.xml».В следующем примере заполненная форма сохраняется в «eXist» с помощьюметодаPUTпротоколаHTTP.ИспользуетсяURI«http://localhost:8080/exist/rest/db/exist_put.xml», то есть данные сохраняются вфайл «exist_put.xml» в корневой коллекции «db».Пример 5.5.

Файл «exist_put.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" >354<head><title>Пример сохранения данных с использованием методаput</title><!-- Пустой префикс пространства имен обязателен для корневогоэлемента xforms:instance --><xforms:model><xforms:instance><example xmlns=""><text/><int/><bool/><date/><time/><datetime/></example></xforms:instance><xforms:bind nodeset="bool" type="xforms:boolean"/><xforms:bind nodeset="int" type="xforms:integer"/><xforms:bind nodeset="date" type="xforms:date"/><xforms:bind nodeset="time" type="xforms:time"/><xforms:bind nodeset="datetime" type="xforms:dateTime"/><xforms:submission replace="none"action="http://localhost:8080/exist/rest/db/exist_put.xml"method="put" id="submit_id"/></xforms:model></head><body><xforms:group><xforms:input ref="text"><xforms:label>Введите текст:</xforms:label></xforms:input>355<xforms:input ref="int"><xforms:label>Введите число:</xforms:label></xforms:input><xforms:input ref="bool"><xforms:label>Введите логическое значение:</xforms:label></xforms:input><xforms:input ref="date"><xforms:label>Введите дату:</xforms:label></xforms:input><xforms:input ref="time"><xforms:label>Введите время:</xforms:label></xforms:input><xforms:input ref="datetime"><xforms:label>Введите дату и время:</xforms:label></xforms:input><!-- Кнопка отправки формы.

Атрибут submission ссылается наэлемент xforms:submission в модели --><xforms:submit submission="submit_id"><xforms:label>Отправка формы</xforms:label></xforms:submit></xforms:group></body></html>Результат выполнения примера:356Рис. 5.30. Результат выполнения примера 5.5. Файл «exist_put.xhtml».Рис. 5.31. Результат выполнения примера 5.5. Файл «exist_put.xml».В следующем примере используются пространства имен.Пример 5.5.

Файл «exist_ns.xhtml».<?xml version="1.0" encoding="UTF-8"?>357<html xmlns="http://www.w3.org/1999/xhtml"xmlns:iu5="http://iu5.bmstu.ru"xmlns:xforms="http://www.w3.org/2002/xforms"xmlns:ev="http://www.w3.org/2001/xml-events" ><head><title>Пример сохранения данных с использованием пространстваимен</title><xforms:model><xforms:instance><iu5:example><iu5:text/><iu5:int/><iu5:bool/><iu5:time/><iu5:datetime/><!-- Пример вложенного элемента --><iu5:container1><iu5:container2><iu5:date/></iu5:container2></iu5:container1></iu5:example></xforms:instance><xforms:bind nodeset="iu5:bool" type="xforms:boolean"/><xforms:bind nodeset="iu5:int" type="xforms:integer"/><xforms:bind nodeset="iu5:container1/iu5:container2/iu5:date"type="xforms:date"/><xforms:bind nodeset="iu5:time" type="xforms:time"/><xforms:bind nodeset="iu5:datetime" type="xforms:dateTime"/><xforms:submission replace="none"action="http://localhost:8080/exist/rest/db/exist_ns.xml"method="put" id="submit_id" includenamespaceprefixes="iu5" /></xforms:model></head>358<body><xforms:group><xforms:input ref="iu5:text"><xforms:label>Введите текст:</xforms:label></xforms:input><xforms:input ref="iu5:int"><xforms:label>Введите число:</xforms:label></xforms:input><xforms:input ref="iu5:bool"><xforms:label>Введите логическое значение:</xforms:label></xforms:input><xforms:input ref="iu5:container1/iu5:container2/iu5:date"><xforms:label>Введите дату:</xforms:label></xforms:input><xforms:input ref="iu5:time"><xforms:label>Введите время:</xforms:label></xforms:input><xforms:input ref="iu5:datetime"><xforms:label>Введите дату и время:</xforms:label></xforms:input><!-- Кнопка отправки формы.

Атрибут submission ссылается наэлемент xforms:submission в модели --><xforms:submit submission="submit_id"><xforms:label>Отправка формы</xforms:label></xforms:submit></xforms:group></body>359</html>Результат выполнения примера:Рис. 5.32. Результат выполнения примера 5.5. Файл «exist_ns.xhtml».Рис. 5.33. Результат выполнения примера 5.5. Файл «exist_ns.xml».360Более сложные примеры совместного использования XForms-форм и СУБД«eXist» будут рассмотрены в разделе XRX-приложений.5.10 Использование таблиц стилей CSS в XForms-формахПри разработке форм XForms часто возникает необходимость изменитьвнешний вид элементов управления формы с помощью стилей CSS.Особенностью является то, что XForms-процессоры преобразуют XHTMLдокумент (содержащий XForms-форму) в HTML-документ (обычно содержащийJavaScript и собственные стили CSS), поэтому не всегда понятно, к чему же нужноприменять CSS-стиль.Как правило, в каждом XForms-процессоре существует собственный способприменения стилей.

Наиболее распространенными являются два способа:1. Стили применяются к XForms-форме в исходном XHTML-документе.XForms-процессор учитывает эти стили при преобразовании формы в HTML.2. Стили применяются к результирующему HTML-документу.5.10.1 Применение стилей CSS к XForms-формеВ 1 способе CSS-стили применяются к XForms-элементам. Этот способявляется рекомендуемым и в черновом варианте описан в стандарте XForms (вдальнейшем предполагается сделать это отдельным стандартом).Но пока это черновая рекомендация, и ее только начинают поддерживатьнекоторые XForms-процессоры. В частности, этот способ используется вXSLTForms, и мы в дальнейшем будем применять его в XRX-приложениях.Пример:/* Объявление пространства имен xforms */@namespace xf url('http://www.w3.org/2002/xforms');/* Определение стиля для элемента input с псевдоклассом read-only */xf|input { display: inline; }В спецификации также определены дополнительные псевдоклассы ипсевдоэлементы, предназначенные для работы с XForms, например псевдоклассы361«:read-only» для обозначения элементов только для чтения и «:read-write» дляостальных элементов.5.10.2 ПрименениестилейCSSкрезультирующемуHTML-документуВо 2 способе стили должны применяться к результирующему HTMLдокументу.Но как узнать соответствие между исходными XForms-элементами иполученными после преобразования HTML-элементами?ВразличныхXForms-процессорахэтазадача решаетсяпо-разному.Например, betterFORM добавляет при преобразовании специальные CSS-классы,которые «похожи» по названию на исходные XForms-элементы.

Характеристики

Тип файла
PDF-файл
Размер
6,59 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Ревунков Г.И., Гапанюк Ю.Е
Примеры
1_примеры
1_01
Example.xml
1_02
Array.xml
Graph_1.xml
Graph_2.xml
Set.xml
Table_1.xml
Table_2.xml
Table_3.xml
Tree.xml
2_примеры
2_01
Example_XPath.xml
2_02
Example_css.xml
style.css
2_03
Example_1.xsl
Example_XSL_1.xml
2_04
Example_1_ns.xsl
Example_XSL_1_ns.xml
2_05
Example_2.xsl
Example_XSL_2.xml
MET.CSS
2_06
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7040
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее