Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы XML-технологий. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
<
!-- Отображение каждого элемента 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]