Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы XML-технологий. Учебное пособие
.pdf
<
!-- Отображение каждого элемента book -->
<xsl:for-each select="inventory/book[@InStock='yes']">
. . . . . . . . . .
<TR ALIGN="CENTER">
</xsl:for-each>
.
/TR>
<
Таблица стилей отображает каждый элемент
таблицы, а не через список элементов
S
как в предыдущих
,
PAN
примерах. Она отображает значение атрибута
значения элемента
ледующие элементы создают ячейку таблицы для отображения
С
a
uthor
используя
,
XS
L
-эл
емент
v
этих значений:
TD>
<
<xsl:value-of select="author"/> <BR/>
(год рождения <xsl:value-of select="author/@ГодРождения"/>)
</TD>
а Рис. 4.9 показано, как браузер по расширяемой таблице
Н
стилей
atalogXSL06.xsl
C
от
ображает
X
ML
-д
окумент
C
в виде
ook
b
дРождения
Го
alue-of
atalogXSL06.xml
.
-
TML
H
после
.
15
1

КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что собой представляет таблица стилей
2.
Назовите преимущества и недостатки таблиц стилей
C
SS
?
CSS
3. Этапы создания таблицы каскадных стилей, отображающей
X
ML
-д
окумент.
4. Опишите структуру правила, содержащего информацию по
отображению элемента определенного типа в
X
окументе.
-д
ML
5. Опишите структуру блока объявлений.
6. Опишите структуру объявления.
7. Каково основное назначение расширяемой таблицы стилей
XSL
?
8. Ка
9.
кова структура шаблона преобразований
Как с помощью
X
SLT
с
оздаются новые структурные единицы
X
SLT
?
документа (элементы, атрибуты и т. п.)?
10. Каков алгоритм преобразования
X
языка
SLT
?
-д
окумента с помощью
ML
X
.
Опишите конструкцию таблицы стилей на основе одного
11.
шаблона.
12. Опишите конструкцию таблицы стилей для отображения
XML
нескольких элементов
-д
окументе.
13. Опишите конструкцию таблицы стилей на основе нескольких
шаблонов.
14. Опишите конструкцию таблицы стилей с фильтрацией
отображаемых элементов.
15. Опишите конструкцию таблицы стилей с сортировкой
отображаемых элементов.
16. Опишите конструкцию таблицы стилей с доступом к атрибу-
там элементов.
SLT
17. Каково назначение последовательностей языка
X
?
15
2

ГЛАВА 5.
X
FORMS – ЯЗЫК ОПИСАНИЯ ФОРМ
ДЛЯ ВВОДА ДАННЫХ
H
Традиционные
разметки, часто перемешивая представление и данные.
усовершенствованная версия
расширяемые средства, позволяющие включать в
более богатые по возможностям и динамичности формы.
С
помощью
Forms
X
д
опускают поддержку многочисленных устройств и структу-
X
Forms
рированных данных форм, как например
TML
м
ожно ускорить и упростить создание
ормы нарушают многие принципы языка
-ф
H
TML
орм, которая предоставляет
-ф
H
-д
X
окументы. Они
ML
TML
Forms
X
-д
– это
окументы
-ф
W
eb
орм.
избавляют разработчиков от необходимости писать скрипты,
eb
которые используются при генерировании динамических
W
-ф
орм,
необходимых как для объединения многочисленных форм на одной
и той же странице, так и управления данными. Наконец, хотя каждая
часть
XForms
, а именно: модель данных (
и контроллер (
ntroller
co
– полностью отделима от других и может
)
data model
), вид (
view
)
использоваться с другими технологиями, важно осознать, что мощь
этих частей – в их объединении в приложении.
5.1
XFORMS – ТЕХНОЛОГИЯ СОЗДАНИЯ WEB-ФОРМ
Спецификация
XForms
ыла разработана консорциумом
б
и совмещает в себе гибкость языка
смежных с ним техно-
и
ML
X
W3C
логий. В целом данная технология была разработана для замены уже
морально устаревших классических форм, поддерживаемых
15
3

до этого. При этом технология
X
Forms
н
е только отправляет информацию, но и имеет довольно широкие возможности для ее обработки, например:
– осуществляет проверку правильности отправляемых данных;
OAP
– имеет возможность взаимодействовать с протоколом
S
;
– осуществляет обработку данных на стороне клиента, избавляя
от необходимости перезагружать страницу;
– обеспечивает совмещение серверной и клиентской обработки.
Однако существенным минусом этой технологии на данный
момент является то, что многие браузеры все еще не поддерживают
данную технологию, но отдельные решения уже появились.
К примеру, для браузера
зывается
Mozilla XForms Project
M
F
Существуют и альтернативные реше-
.
ozilla
irefox
б
ыл создан проект, который на-
ния, но проблема все еще актуальна, так как основная масса пользователей на данный момент не имеет реальную возможность ввода
данных с поддержкой технологии
TML-
зык
H
XForms
ФОРМ Ы И ИХ НЕДОСТА ТКИ
, к
ак и другие языки, рассмотренные нами выше,
5.1.1
Я
Forms
.
X
реализован на основе стандартного обобщенного языка разметки
SGML
.
Как уже было отмечено, основное назначение языка
SGML
заключается в том, чтобы отделить текстовое содержимое от его
представления, для этого содержание заключалось в машиночитаемые теги. А это, помимо всего прочего, означает, что разработкой
содержания и представления могут заниматься разные люди.
TML
Язык гипертекстовой разметки
-д
S
GML
окумента, на сегодняшний день является основным средством
H
также являющийся типом
,
реализации форм для ввода данных. Недостатки этого языка, главным из которых является отход от принципа отделения содержимого от представления, нами уже были отмечены.
Но благодаря тому, что он обеспечивал относительную простоту
создания
W
eb
-ст
раниц,
стандартизации тегов
W
eb
понятен любому
-б
H
п
TML
HTML
олучил повсеместное признание. После
пре
вратился в язык, который был
раузеру. Это привело к расширению сферы
его применения и усложнению технологии создания сайтов. Сайты,
15
4

изначально статические, превратились в динамические, и ограничения языка, вызванные отходом от принципов
S
GML
ановились
, ст
все более очевидными.
Листинг 1. Пример HTML-формы
<
FORM action="http://www.example/ " method="post">
<P><INPUT type="radio" name="HairColor" value="Brown">Brown<BR></P>
</FORM>
В приведенном листинге жестко запрограммирован тип управ-
ляющего элемента, в данном случае радио-кнопки (
а элементы
n
ame = "HairColor"
v
alue = "Brown"
и
пределены в пределах
о
t
ype="radio"
),
одного кода. Таким образом, определяется пользовательский
интерфейс, который не может корректно изобразиться на платформах, не поддерживающих радио-кнопки.
H
Поскольку
TML
е поддерживает принцип отделения содержи-
н
мого от представления, то в определение формы могут быть включены вложенные данные, а изменения представления отдельной
формы является довольно сложной задачей. Ситуацию усугубляет
невозможность расширения набора
H
-те
гов, что существенно
TML
ограничивает возможность адаптировать язык под решаемую задачу.
ML
X
С появлением расширяемого языка разметки
емого языка стилей
TML
и д
анные, и их представление определялись в одном коде,
в
H
эти проблемы были частично сняты. Если
SL
X
то в новой технологии для этой цели создавались два файла:
документ с определениями данных и
-фа
SL
X
йл с инструкциями
визуализации этих данных. При этом значения полей
ут храниться как
г
ляться как результат
X
-д
анные, а их представление может опреде-
ML
XSL
реобразования
-п
XML
окумента в
-д
и ра
name
сширяя-
value
и
HTML
.
XML
мо-
-
Благодаря этим возможностям резко повысилась гибкость форматирования данных, когда одно и то же
быть применено для неограниченного количества
одного типа. Кроме этого, одни и те же
XSL
X
реобразование может
-п
-документов
XM
L
ML
-да
нные могут быть
отображены в разных устройствах (настольных компьютерах, планшетах, смартфонах и т. д.) путем использования различных таблиц
стилей
.
X
SL
15
5

Но следует иметь в виду, что перечисленные достоинства новой
технологии, придающие дополнительную функциональность средствам отображения данных, приводят к усложнению технологии
форматирования.
Во-первых, повышается нагрузка на сервер, который изначально
был спроектирован для отображения статических
SL
Реализация
X
-преобразований связана с выполнением циклической
H
TML
айлов.
-ф
обработки и множеством итераций обмена данными между клиентом и сервером, и требует гораздо больших вычислительных мощностей, чем для отображения статического текста.
X
Во-вторых, разработка
стилей
X
т
ребует привлечения программистов, чей профессиональ-
SL
ный уровень должен быть гораздо выше, чем для работы с
5.1.2
Forms
X
O
X
RMS
F
– н
овый платформенно-независимый язык описания инте-
С
ЛЕ ДУЮЩЕ Е ПОКОЛЕН ИЕ
:
рактивных форм, основанный на
следующее поколение
свойственные
HTML
-ф
ормам.
W
eb
-д
ML
окумента и расширяемой таблицы
HTML
E
Ф
B
W
X
ML
и может рассматриваться как
,
-ф
орм, в котором решены проблемы,
-
ОР М
.
Любая форма должна содержать описание данных, вводимых
с формы. Для реализации процесса ввода данных создается представление в виде интерактивных полей, позволяющих пользователю
ввести необходимую информацию. В результате заполнения формы
получаются данные формы.
eb
W
ормы, созданные в стандарте
-ф
H
TML
е в состоянии отде-
, н
лить данные формы от их представления и имеют довольно ограниченные возможности для отображения данных в форме.
Forms
Можно привести следующие преимущества
TML
ф
ормами:
с
H
X
о сравнению
п
– вводимые и пересылаемые данные строго типизированы
XSD
и могут быть проверены с помощью
– в формах, реализованных на языке
-п
роцессора;
, м
rms
XFo
ожно использовать
уже существующие схемы данных. Это позволяет избежать дублирования данных и применять правила проверки данных формы,
заданные в
X
ML
хеме;
-с
15
6

– возможность включения дополнительных ограничений, зада-
ваемых в
eb
W
п
X
Forms
риложения. Это позволяет разработчику формы не ограничи-
ваться набором базисных ограничений
одели, расширяет сферу применимости конечного
м
хемы, объявленных во
-с
X
ML
внешней схеме;
– возможность представления данных в виде
eb
передачу данных формы от
W
-сервера прямо приложению-обра-
X
ML
еспечивает
об
ботчику без выполнения какой-либо предварительной обработки
данных;
– использование формата
X
ML
об
еспечивает сохранение данных
на любом языке с учетом национальных особенностей;
– элементы пользовательского интерфейса являются обобщен-
ными и не зависят от платформы;
– высокий уровень абстракции элементов пользовательского
интерфейса делает возможным вывод информации на различные
устройства.
Данная спецификация предполагает, что браузеры, снабженные
X
Forms
-процессорами, могут отображать формы
X
Forms
, размещенные
на клиентских машинах. Это существенно сокращает трафик сети
и снижает нагрузку на сервер, связанную с повторными обращениями к нему с целью модификации
W
-ф
ормы при изменениях
eb
данных.
Принципиально важным новшеством является то, что в специ-
Forms
фикации
view
)
(
X
решено выделить модель данных формы (
и контроллер (
controller
) на
разных уровнях. Этим обеспечивается их многократное использование. Кроме этого,
цирует вид формы на ее презентацию (
p
urpose
(
).
ыделение модели данных
В
XForms
в
presentation
отдельный компонент позво-
)
Forms
X
и предназначение
odel
m
ифферен-
д
), вид
ляет отделять описание структур данных от элементов управления
(далее контролов), используемых для отображения значений
данных. Поэтому в
X
Forms
данных с элементами управления. В
редусмотрены средства связывания
п
X
Forms
также заданы декларативные средства определения поведения каждой отдельной единицы
данных при возникновении той или иной ситуации.
15
7

Контролы
X
Forms
оп
ределены абстрактно, что предполагает
наличие их различных реализаций. Это позволяет создавать для
каждого контрола реализации для применения на разных платформах. Например, если в
H
TML
презентацию для всех платформ, то в
те
г
<
radioButton>
X
Forms
меет только одну
и
контрол
<s
elect>
может
быть «выпадающим» меню в браузере настольного компьютера или
списком радио-кнопок в смартфоне. Но назначение контрола от
этого не меняется, пользователь и в том, и другом случае получает
возможность выбирать единственный элемент из набора.
5.1.3
И
Д
ЕК ЛАРАТИВНО СТЬ
меется еще одно достоинство спецификация
X
F
ORMS
XForms
о котором
,
следует сказать особо – это возможность декларативного определения обработчиков событий. В
HT
специальных событий, инициируемых кнопками
ML
-ф
ормах кроме нескольких
и
su
bmit
re
set
,
остальные события, такие как установка фокуса в поле ввода, вывод
сообщения, установка значения и др., требуют написания обработчика на языке сценария. С целью сокращения потребности в сценариях, Рабочие группы
HTML
структуру события, называемую
и
нтерфейс для событий
определение действий
ез написания сценария (
б
тобы понять, каким образом в
Ч
DOM Level 2
X
Forms
cript-free
s
XForms
и
а языке разметки (
н
с
овместно разработали общую
X
E
ML
vents
.
Именно эта модель допускает
).
X
forms
и
обеспечивающую
rkup
-
ba
sed actions
ma
еспечиваются описан-
об
X
ML
-
)
ные возможности, необходимо иметь в виду, что формы используются для сборки данных, поэтому не удивительно, что самое важное
понятие в
X
forms
,
– это «данные экземпляра» (
i
nstance
)
, т. е. представление данных, отображаемых на «контролах формы». При этом
данные экземпляра реализованы на
Path
ся в терминах
X
.
,
а его элементы определяют-
X
ML
XPath
Path
X
вязь между
С
ш
ироко используется в
ством при создании
с
тало очевидно, что формы нуждаются в более детальном структу-
и
Web
XForms
-ф
м
ожет показаться странной. Язык
,
но не является привычным сред-
SLT
X
орм. Однако, по мере развития
XForms
,
рировании данных, чем представление их в виде простых пар
15
8

значений и названий. Например, часто приходится выделять части
структурированных данных и «связывать» их с контролами формы.
Path
Именно для этих целей целесообразно применить
Т
ак как
X
Forms
и
X
SLT
вязаны через
с
X
Path
X
интересно сравнить
,
эти технологии форматирования данных. При преобразованиях
.
ML
X
-
документов с помощью
ML
при разборе
X
-документов (см. Рис. 4.2):
X
SLT
– исходное дерево представляется преобразуемым
частвуют три дерева, формируемые
у
XML
документом;
– второе дерево представляется таблицей стилей в виде
X
SLT
документа;
– третье выходное дерево представляется
Обработка с помощью
XForms
ализуется аналогично, но при
ре
H
этом входное и выходное деревья представляются
1. Из входного
с удаленного
W
eb
XML
-се
рвера) «данные экземпляра» после разбора
окумента (встроенного или считанного
-д
TML
-д
окументом.
X
ML
-д
окументом.
(анализа) отправляются в память;
2. Обработка «данных экземпляра» включает в себя взаимодействие формы с пользователем и регистрацию в памяти любых изменений данных, производимых пользователем.
-
-
3. Под управлением контрола
su
ляра» сериализуются и отправляются серверу в виде
Обработка данных в
W
-ф
ормах заключается не просто в их
eb
bmit
и
змененные «данные экземп-
ML
X
-документа.
сборке, но и в выполнении дополнительной обработки, связанной
с вычислениями, проверкой корректности и т. д. Как уже было отмечено, в
H
TML
ормах такая обработка достигается через написание
-ф
сценариев. Цель XForms состоит в том, чтобы при разработке
Web-форм практически исключить необходимость в создании сценариев. Этого можно добиться через обеспечение поддержки языка
ледующими стандартами платформы
X
Forms
с
– описанием элементов
в терминах языка
X
Path
-документа в определении формы
ML
X
;
X
ML
:
– поддержкой синтаксических и семантических ограничений
типов данных, определенных в спецификации
XML-
с
хемы.
15
9

Описание элементов или узлов в «данных экземпляра» в виде
Path
-в
X
ыражений обеспечивает определение структур для вычисле-
ний, проверок корректности, а также для вывода их на контролы.
Поддержка типов данных
ML
X
-данные декларативные ограничения (в виде лексических значений,
про
лины, количества экземпляров и т. д.), поддерживаемые
д
цессором, и таким образом, исключающие написание сценариев
X
хемы позволяет накладывать на
с
ML-
X
SD
-
для их обработки.
Исходя из описанных принципов, был разработан элементно-
ориентированный декларативный синтаксис языка
Forms
X
,
используя
который разработчики, вместо написания сценариев, могут просто
объявить в формах:
– установление фокуса на элементе управления формы;
– отображение сообщения для пользователя;
– осуществление навигации к новому
зменение значения узла экземпляра данных;
– и
URI
;
– инициацию перевычисления, перепроверки корректности
данных или обновление экрана;
– передачу (
ubmit
s
ли сброс (
) и
eset
r
сех или части экземпляров
) в
данных;
– выполнение действий, связанных с прокруткой и манипуля-
цией строками таблиц.
С
5.2
ОЗДАНИЕ ФОРМЫ НА ЯЗЫКЕ XFORMS
В этом разделе мы покажем, каким образом, используя всего
Forms
лишь небольшое количество основных
X
егов, решаются
-т
поставленные задачи. Мы рассмотрим синтаксис этих тегов, их
использование, а также смысл некоторых атрибутов.
5.2.1
Для знакомства со структурой формы и синтаксисом
ИСАНИЕ ФОРМЫ ДОКУМЕНТА
П
О
Forms
X
рассмотрим пример реализации формы, используемой для выполнения заказа товара. Эта форма заказа состоит из разделов, предназначенных для ввода информации о клиенте, подсчета цены и перечисления приобретенных товаров.
16
0
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
