Э. Наварро
СанктПетербург Москва • Харьков • Минск
2001 www.books-shop.com
Э. Наварро XHTML: учебный курс Перевел с английского И. Синицын Руководитель проекта Научный редактор Выпускающий редактор Технический редактор Иллюстрации Художник Верстка
И. Захаров В. Романов Т. Левицкая О. Александрова А. Шаклунов Я. Биржаков А. Дудатий
ББК 32.973.26018.1 Наварро Э. Н15 XHTML: учебный курс. — СПб.: Питер, 2001. — 336 с.: ил. ISBN 5318005020 Книга «XHTML: учебный курс» позволит вам изучить основы языка XHTML. Новая спецификация срав' нивается с самой популярной среди пользователей версией языка разметки — HTML 4, описываются инструменты, необходимые для создания документов при помощи нового языка. Вы познакомитесь со способами построения web'страниц, которые позволяют включать в документ изображения, таблицы, фреймы, научитесь применять каскадные стили и расширяемые таблицы стилей, освоите XHTML Basic и модульное конструирование документов.
Original English language Edition Copyright ©2001 QUE Corporation © Перевод на русский язык, ДМК Пресс, 2001 © Издательский дом «Питер», 2001 Оригиналмакет подготовлен издательством «ДМК Пресс». Права на издание получены по соглашению с QUE Corporation. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственность за возможные ошибки, связанные с использованием книги.
ISBN 5318005020 ISBN 0789723859 (англ.)
ЗАО «Питер Бук», 196105, Санкт'Петербург, Благодатная ул., д. 67. Лицензия ИД № 01940 от 05.06.00. Налоговая льгота — общероссийский классификатор продукции ОК 005'93, том 2; 95 3000 — книги и брошюры. Подписано к печати 18.07.01. Формат 70х100 1/16. Усл. п. л. 27,09. Тираж 5000. Заказ 339 .
Отпечатано с готовых диапозитивов в ФГУП ордена Трудового Красного Знамени «Техническая книга» Министерства Российской Федерации по делам печати,
телерадиовещания и средств массовых коммуникаций 198005, Санкт$Петербург, Измайловский пр., 29
www.books-shop.com
Содержание Введение
12
Часть I. Изучение основ XHTML
17
Глава 1. Основы XHTML
18
Правильность и состоятельность XHTMLдокументов Выбор типа XHTMLдокумента Версия XHTML 1.0 Strict Версия XHTML 1.0 Transitional Версия XHTML 1.0 Frameset
Метаданные Описание типа документа Тэги head, title и метатэги
Блоки для построения XHTMLдокументов Элементы блочного уровня Встроенные элементы
Резюме
Глава 2. Дополнение структуры семантикой Смысл семантики Формирование структуры документа с помощью заголовков Группирование и упорядочивание данных посредством списков Неупорядоченные списки Упорядоченные списки Списки определений
Методы выделения текстовых блоков Выделение встроенных элементов Выделение структур блочного уровня
Резюме
18 19 19 22 23
24 24 26
27 27 28
28
зо 30 31 31 32 35 42
43 44 44
45
www.books-shop.com
(I
XHTML в примерах
Глава 3. Работа с изображениями
46
Форматы графических данных для Web
46
Формат изображений GIF Формат изображений JPEG PNG самый современный формат Web
46 47 47
Графические редакторы для Web Добавление графики в документ
48 48
Выравнивание текста и рисунка Работа с изображениями как со ссылками
50 50
Изображениякарты
53
Создание изображениякарты с помощью программы CuteMAP
Резюме
58
Глава 4. Сбор данных с помощью форм
59
Управляющие элементы форм
59
Элемент form Элементы ввода для формы Размещение элементов в законченной форме
59 60 70
Методы обработки данных формы
73
Электронная почта Простой скрипт CGI
73 74
Резюме
77
Глава 5. Работа с таблицами
78
Базовая структура таблицы Элементы управления строками и столбцами Вложенные таблицы Связывание данных с помощью атрибутов axis и id Резюме
Глава
55
6.
Применение
фреймов
Тип документа XHTML 1.0 Frameset Doctype Построение множества фреймов Изменение размера фреймов Атрибуты представления для фреймов Вложенные фреймы Связывание фреймов
Построение навигационной системы на основе фреймов
78 84 91 94 102
103 103 103 104 106 107 109
110
www.books-shop.com
Содержание Советы дизайнеру, использующему фреймы Переносимость Действия пользователя Выбор размеров
Резюме
119 119 119 119
120
Глава 7. Универсальная доступность в Internet
122
Возможность доступа Программа расширения доступа в Web Руководство для разработчиков Webприложений Реализация требований документа WCAG
122 124 124 126
Разработка документа с соблюдением требований по структуре Определение языка документа Выделение фрагментов текста с помощью элементов дополнительного форматирования Списки Таблицы Ссылки Представление альтернативной информации об изображениях Элементы applet и object Звуковые и графические типы данных Применение фреймов Сбор данных с применением форм Создание файлов скриптов в нетрадиционных браузерах Правила проверки доступности
Резюме
Глава 8. Проверка состоятельности XHTMLдокументов Проверка грамматики в Webдокументах Методы проверки состоятельности
126 126 127 128 128 129 129 130 131 131 131 132 132
136
137 137 137
Проверка опечаток Нарушения правильности документа Переносимость документов
138 139 141
Работас программой W3C Validator
142
Последовательность проведения проверки Успешная проверка
Интерпретация сообщений об ошибках Сообщения о несуществующих ошибках Резюме
143 143
144 147 153
www.books-shop.com
XHTML в примерах
Глава 9. Современная реализация языка XHTML Плавный переход на XHTML Инструкции обработки языка XML Работа с «пустыми» элементами Экземпляры элементов с «пустым» содержимым Работа со встроенными скриптами Пробелы в значениях атрибутов Применение элемента isindex Идентификация основного языка документа или элемента Управление идентификаторами фрагментов Описание кодировки символов Раскрытая запись атрибутов булева типа Доступ кобъектной модели документа Атрибуты, содержащие символ «амперсанд» Применение CSS в XHTML Оставшиеся проблемы совместимости Типы данных Internet для языка XHTML
Инструменты для поддержки XHTML Программа HTML Tidy Программа TidyGUI Программа HTMLKit Создание XHTMLприложений средствами языка HTML
Резюме
Часть II. Стиль и структура XHTML Глава 10. XHTML переход к XML
154 154 155 155 156 157 158 159 159 159 160 161 161 162 162 163 163
163 163 165 167 168
168
169 170
Создание собственных элементов Концепция правильности документа Описание правильных документов
170 172 175
Обзор правил описания типа документа Обзор XMLсхем
176 176
Резюме
Глава 11. Применение каскадных таблиц стилей Применение стилей в XHTMLдокументах Селекторы Применение элементов в качестве селекторов Создание классов Однократно используемые правила стилей
177
179 179 182 182 183 185
www.books-shop.com
Содержание Применение стиля Стили для текста Форматирование на уровне блока Пространство внутри блоков
Резюме
Глава 12. Язык XSL как способ задания стилей Введение в язык XSLT Версия XML 1.0 Язык XSLT Что такое XSL Преобразования XSLT Процессоры XSLT Пространство имен XML
Стандарт XPath Принцип действия XPath Узлы XPath Маршруты Синтаксис XPathвыражений Формы представления маршрута
Форматирование объектов с помощью XSLFO Создание таблиц стилей XSL Основные понятия таблиц стилей Создание собственной таблицы стилей Комбинирование CSS и таблиц стилей XSLT
Резюме
Глава 13. Описание типа документа Определение типа документа Расширенная форма БэкусаНаура Определение элементов Создание атрибутов
Правила описания типа документа XHTML DTD Параметрические компоненты Планирование глобальных компонентов и атрибутов
Резюме
Часть III. Создание модульных структур Глава 14. Модули BXHTML Как работают модули Определение абстрактных модулей Модули DTD или схемы
185 185 186 188
191
192 192 192 194 194 195 196 198
199 200 200 201 201 202
203 205 205 206 210
211
212 212 212 214 216
219 220 225
226
227 228 228 228 232
www.books-shop.com
XHTML в примерах Комбинирование предопределенных модулей
237
Драйверы DTD средство связывания модулей Применение модульных DTD в Web
237 243
Резюме
Глава 15. Создание собственных XHTMLмодулей Проектирование модели содержания Необходимые типы данных Использование данных Описание абстрактного модуля
Создание модуля с помощью правил DTD Работа с модулями QNames
Резюме
Глава 16. Комбинирование собственных модулей с XHTML Модуль XHTML Modular Framework Интегрирование нового модуля Правила определения типов Применение нового типа документа Резюме
Часть IV. Будущее XHTML
244
245 245 246 246 246
247 247
253
254 254 257 265 267 268
269
Глава 17. Приложение XHTML Basic
270
Использование XHTML в устройствах с ограниченными ресурсами
270
Миниатюризация компьютерных устройств Нетрадиционное применение Беспроводной доступ Устройства с ограниченными ресурсами
Использование DTDподмножества XHTML Basic Создание документа на основе XHTML Basic Результаты
Резюме
270 271 271 271
271 272 279
280
www.books-shop.com
Содержание
Глава 18. Профилирование XHTMLдокументов Метаданные Механизм включения метаинформации Применение метаданных для машинных инструкций Инструментарий для построения метаданных
Нерешенные вопросы Резюме
Глава 19. Дальнейшее развитие XHTML Технология СС/РР Метаданные и формат описания ресурса Терминология СС/РР Гибкость, расширяемость и распределенная структура Документы СС/РР Совместное применение СС/РР и языков XML и XHTML Документы консорциума W3C по технологии СС/РР Безопасность
СС/РР и Webориентированное телевидение Телевидение и Web Телевизионные системы для просмотра ресурсов Web Дополнение телепрограмм Webсодержанием
Структуры XForms
281 281 281 284 287
288 288
289 289 291 292 293 293 293 294 295
296 296 296 297
297
Приложение. Описание абстрактных модулей для технологии модульного конструирования ... 302 ГлОССарИЙ
325
Предметный указатель
327
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ
[email protected] Введение Читатель, знающий, что такое Web, возможно, имеет представление и о языке HTML. Этот термин часто упоминается в телевизионных передачах; более того, некоторые герои телесюжетов имеют собственные Web'сайты. Практически каж' дый рекламный блок на радио сопровождается фразой типа «тройное дабл'ю, точ' ка, что'то, точка, ком». Язык HTML, применяемый поначалу только для составле' ния резюме, вышел за пределы сферы деятельности технического персонала. Web постоянно развивается: XML ' Extensible Markup Language ' слова, ставшие уже привычными для многих деловых людей. Язык XHTML (Extensible Hypertext Markup Language) объединяет HTML и XML.
Преимущество метода обучения, основанного на примерах Очевидны, по крайней мере, два преимущества изучения XHTML подобным спо' собом. Во'первых, выполняя практические задания, вы закрепляете прочитанное. Это намного эффективнее, чем исключительно теоретическое изучение основ технологии. Во'вторых, оригинальные примеры XHTML, которые можно загрузить из Internet, помогут отслеживать все нововведения в Web; вам будут доступны лю' бые ресурсы современных информационных сайтов, позволяющие применять по' лученные знания. Работая над предложенными примерами, вы сможете модифи' цировать их таким образом, чтобы их функции максимально соответствовали вашим потребностям. Вы получаете реальную возможность быстро и легко создать собственный Web'сайт, основанный на XHTML.
Чем эта книга может вам помочь Данная книга поможет многим читателям приобрести определенные навыки создания Web'страниц, познакомит с основными понятиями и определениями, на базе которых несложно самостоятельно освоить язык XHTML. Вы получите возможность опробовать новые разработки специалистов из консорциума W3C, создающих стандарты для Internet, что позволит адаптиро' вать ваши приложения к различным устройствам, языкам разметки, требовани' ям пользователей, занятых каким'либо конкретным бизнесом, к вертикальному рынку и интересам различных социальных групп.
Зачем нужно изучать XHTML Глобальная информационная сеть уже стала неотъемлемой частью современ' ного образа жизни. Сейчас с World Wide Web работают не только программисты,
www.books-shop.com
Как работать с книгой создающие Web'сайты. Маркетологи, администраторы, менеджеры ' словом, пред' ставители любой профессии стремятся управлять собственным сегментом сайта. Планы работ, стратегия развития компаний, справочные данные хранятся на цен' тральном компьютере, обеспечивая доступ к конкретному типу информации в он' лайновом режиме. Подобный метод обращения к необходимым ресурсам исполь' зуется клиентом при подготовке и выборе маршрута путешествия, приобретении билетов на развлекательные мероприятия и т.д. Навыки работы с такими страни' цами позволят вам быть в курсе всех событий независимо от того, где вы в данный момент находитесь. Применяя XHTML в процессе создания Web'страниц, вы научитесь использо' вать документы, сформированные на базе XML, а также информационные ресур' сы, которые задействуются вашей фирмой, техническим персоналом банка, кре' дитными организациями или компаньонами для повышения эффективности производства.
Необходимые инструменты Единственное, что вам понадобится (помимо, конечно, персонального компью' тера), ' это текстовый редактор и Web'браузер. Для того чтобы писать на XHTML, специального программного обеспечения не требуется. Пользователи Windows мо' гут применить Notepad; операционная система Мас имеет редактор SimpleText; для большинства пользователей, работающих с ОС UNIX, привычными будут редак' торы VI либо Emacs. Можно задействовать и более мощные средства, например TextPad, Programmer's File Editor (PFE) или специализированные приложения, в частности HomeSite. Язык XHTML появился не так давно, поэтому визуальные Web'инструменты пока используют не все его возможности. Когда вы научитесь создавать XHTML' приложения, то сможете достаточно эффективно применять визуальные инстру' менты в собственных проектах. Итак, вам потребуется один или два Web'браузера для просмотра, тестирования и оценки собственных вариантов XHTML'документов. Желательно, чтобы на ва' шем компьютере были установлены и Microsoft Internet Explorer, и Netscape Navigator. Целесообразно также наличие и других браузеров, например Opera или Lynx. При работе с книгой непосредственного подключения к Internet не требуется, однако пренебрегать выходом в глобальную сеть не следует, поскольку такой до' ступ ' единственная возможность посещения Web'сайтов и загрузки рассматрива' емых примеров. С Web'сайта, расположенного по адресу http://www.mcp.com/ detail.cfm?item=0789723859. можно скопировать некоторые примеры на XHTML.
Как работать с книгой Каждый раздел книги содержит объяснение конкретного понятия и примеры на XHTML. После того как вы познакомитесь с базовыми определениями элемен' тов, можете приступать к работе с примерами'приложениями. Выполнение неко' торых заданий предполагает внесение изменений в исходный текст программы, чтобы итоговый документ наиболее полно соответствовал вашим требованиям. Просмотреть окончательный вариант вы сможете с помощью Web'браузера.
www.books-shop.com
||{.
Введение
Материал данной книги расположен по принципу «от простого к сложному». На начальном этапе вы изучаете базовые понятия XHTML и способы создания ос' новных страниц. Это отправная точка в работе с такими фундаментальными поня' тиями XHTML, как DTD, схемы и таблицы стилей, основанных на XML. Затем анализируются проекты, обсуждаемые на форумах рабочих групп W3C: механиз' мы модульного структурирования XHTML'документов, профили документов и устройств и др.
Структура книги Книга построена таким образом, чтобы вы могли без труда найти уроки, соот' ветствующие вашему уровню знаний. Ниже представлено описание каждой логи' ческой части книги, включая обзор глав. Часть I. Изучение основ XHTML Глава 1, «Основы XHTML», содержит базовые понятия, необходимые при рабо' те с XHTML'документами. В главе 2, «Дополнение структуры семантикой», обсуж' дается значение, которым можно наделить структурные элементы для их использо' вания и представления. Глава 3, «Работа с изображениями», описывает процесс включения графических элементов в XHTML'документы. В главе 4, «Сбор данных с помощью форм», рассматриваются методы ввода данных пользователями, а в гла' ве 5, «Работа с таблицами», ' способы описания структуры таблиц. В главе б, «При' менение фреймов», описываются возможности разбиения содержимого страниц на фреймы и приводятся правила, которые нужно соблюдать при работе с фреймами. В главе 7, «Универсальная доступность в Internet», рассказывается о универсальном проектировании, обеспечивающем доступ в Internet людям с физическими недостат' ками, а также пользователям, применяющим устройства с ограниченными возмож' ностями просмотра данных. В главе 8, «Проверка состоятельности XHTML'доку' ментов», представлены инструменты для тестирования документов. Наконец, в главе 9, «Современная реализация языка XHTML», рассматриваются эффектив' ные способы использования XHTML в современных браузерах и сайтах Internet. Часть II. Стиль и структура XHTML В главе 10, «XHTML ' переход к XML», анализируются свойства XML, облег' чающие разметку, и их применение в XHTML Глава 11, «Применение каскадных таблиц стилей», представляет краткий обзор структуры языка каскадных таблиц стилей CSS и его интеграции с XHTML В главе 12, «Язык XSL как способ зада' ния стилей», рассматривается расширяемый язык таблиц стилей XSL (Extensible Stylesheet Language). В главе 13, «Описание типа документа», определяются соб' ственные типы данных в документе. Часть III. Создание модульных структур Глава 14, «Модули в XHTML», начинается с обзора текущей работы в консор' циуме W3C и анализа понятий, позволяющих объединять словари. В главе 15, «Создание собственных XHTML'модулей», рассматривается последовательность описания ваших собственных элементов и атрибутов, а также их сочетания со
www.books-shop.com
Об авторах настоящего издания стандартными XHTML'модулями. В главе 16, «Комбинирование собственных мо' дулей с XHTML», рассказывается о методах их сбора и использования как нового типа документа. Часть IV. Будущее XHTML Глава 17, «Приложение XHTML Basic», представляет собой обзор существую' щих способов использования возможностей языка XHTML Basic DTD. В главе 18, «Профилирование XHTML'документов», приведены основные методы, обеспечи' вающие выбор, обработку и преобразование информации в соответствии с кон' кретными потребностями устройств поиска. В главе 19, «Дальнейшее развитие XHTML», обсуждаются программа и планы корпораций, занятых проблемами ши' роковещания, интегрирования информационных XHTML'структур в общий по' ток передаваемых данных, а также внедрением теле' и радиовещания непосред' ственно в Web.
Принятые обозначения Чтобы упростить восприятие материала, в настоящем издании используются следующие обозначения. Курсивом выделяются базовые термины XHTML. Полужирным шрифтом помечены названия элементов интерфейса. Моноширинным шрифтом набраны компьютерные данные: команды (опера' торы языка); имена файлов; тэги; фрагменты программ. Подчеркиванием выделены URL (универсальные локаторы ресурсов), адреса Web'сайтов и группы новостей. Примечание
Так обозначены дополнительные сведения по конкретной теме.
Совет
Информация, необходимая читателю в процессе освоения мате) риала.
Внимание!
Фрагменты текста, на которые нужно обратить особое внимание.
Пример. Примеры, иллюстрирующие теоретические положения.
Об авторах настоящего издания Энн Наварро на протяжении последних пяти лет является ведущим исполни' тельным специалистом ассоциации HTML'дизайнеров ' HTML Writers Guild, объединяющей разработчиков Web'приложений, а также активным членом рабо' чей группы W3C's HTML Working Group, занимающейся проблемами примене' ния языков разметки для построения Web'приложений и написанием рекоменда' ций по XHTML. Кроме того, Энн руководит частной консалтинговой компанией в Internet ' WebGeek, Inc. Перу Энн Наварро принадлежат книги, посвященные
www.books-shop.com
Введение проблемам практического применения языков XML и HTML, в частности «HTML by Example» (HTML в примерах), опубликованная в 1999 году издательством Que. 12 и 19 главы этой книги написаны Эндрю Ваттом (Andrew H. Watt), незави' симым консультантом, специалистом по Web'технологиям, в частности по языкам XML, XHTML, Domino и Java. Эндрю Ватт является автором раздела «Вопросы применения технологий XHTML и XML, платиновая версия» и Java 2.
Благодарности В процесс написания этой книги было вовлечено много людей. За поддержку, советы и консультации я выражаю им самую глубокую признательность. Прежде всего надо поблагодарить выпускающего редактора Тодда Грина (Todd Green), литературного редактора Сип Диксон (Sean Dixon), а также Сосайти Смит (Sossity Smith), Карен Шилдс (Karen Shields), Женни Кларк (Jeanne Clarck), Кевина Фал' чера (Kevin Fulcher), Ларри Связи (Larry Sweazy) и всю издательскую команду из Макмиллана (Macmillan, USA). Спасибо моим агентам Нейлу Салкинду (Neil Salkind) и Дэвиду Рогелбергу (David Rogelberg), всем сотрудникам компании Studio В Productions, которые ис' кусно управляли деловой стороной процесса. Особая благодарность ' техническому редактору Шейну Маккерону (Shane McCarron), моему большому другу и коллеге по рабочей группе HTML. Без его помощи эта книга вряд ли приобрела бы строгую логическую организацию. И наконец, огромное спасибо моему мужу Дейву (Dave), который следил за делами в компании WebGeek в моменты, когда мое внимание было приковано к тексту книги.
От автора Работая над книгами, я трачу массу сил и времени и надеюсь, что мои читате' ли оценят точность, а главное, пользу приведенной информации. Но чтобы узнать, достигла ли я своей цели, необходима обратная связь. Я готова выслушать любые вопросы, пожелания и критические отзывы, касающиеся затронутых в книге про' блем, представленных в ней примеров, найденных ошибок, ' словом, обсудить все, что так или иначе связано с настоящим изданием. Я сделаю все возможное для того, чтобы предоставить читателю проверенные ответы, либо укажу источник, где следует искать нужную информацию. Я также смогу направить вас к специалис' там, имеющим больший опыт в той или иной области. Пожалуйста, отправляйте сообщения по адресу:
[email protected]. Мне очень важно знать, что все, о чем говорилось в книге, оказалось полезным, а изложение не вызвало нареканий. Если вы, прочитав главу, пришли к выводу, что ее основная идея осталась нераскрытой или малопонятной, обратитесь на Web'сайт, посвященный данной книге, ' http://www.webgeek.com./books/xhtmlbyexample/. Здесь будут размещены обновленные примеры, а также ответы на вопросы чита' телей.
www.books-shop.com
Часть I Изучение основ XHTML Глава 1. Основы XHTML Глава 2. Дополнение структуры семантикой Глава 3. Работа с изображениями
Глава 4. Сбор данных с помощью форм Глава 5. Работа с таблицами Глава 6. Применение фреймов Глава 7. Универсальная доступность в Internet Глава 8. Проверка состоятельности XHTMLдокументов Глава 9. Современная реализация языка XHTML
www.books-shop.com
Глава 1. Основы XHTML На первый взгляд документы XHTML очень похожи на документы HTML. Однако в отличие от языка HTML, который базируется на SGML (Standard Generalized Markup Language), XHTML основан на XML (extensible Markup Language). Специалисты консорциума W3C сразу обратили внимание на проблему перехо' да между HTML и XML. Разработчики Web, производители программного обеспе' чения, а также авторские коллективы, участвовавшие в создании основополагающих рекомендаций HTML и XML, анализировали возможность перенесения HTML в мир XML, чтобы сократить время, необходимое для изучения языка. В результате был создан язык, служащий переходным звеном между HTML и XML, ' XHTML. Он соответствует понятию правильности языка XML, требующего полного и упо' рядоченного синтаксиса документа. XML также вводит несколько атрибутов для элементов, размещенных в секции заголовка документа (ниже каждый из них рас' сматривается отдельно). Кроме того, здесь будет представлен краткий обзор струк' турных понятий для XHTML'документов. Итак, в данной главе вы познакомитесь: а а а а а
с тремя типами документов, используемых в XHTML 1.0; с пространством имен XML; с методами интерпретации умалчиваемых значений языка; с способами добавления метаданных в документ; с различиями между встроенными элементами и элементами блочного уровня.
Правильность и состоятельность XHTML*документов Основное требование, предъявляемое к XHTML'документам, ' правильность (well'formedness), то есть запись всех элементов без синтаксических ошибок: про' белы между элементами отсутствуют там, где они запрещены, значения атрибутов всегда заключаются в кавычки и т.д. Состоятельность (validity) обязательна при разработке документов на языке XHTML, в отличие от документов XML. Она означает, что синтаксис XHTML'документов должен соответствовать определению типа документа (document type definitions ' DTD), разработанным специально для этих документов. Нельзя пользоваться режимом вложения элементов друг в друга, если правилами DTD это запрещено. Величины атрибутов должны принадлежать определенному для них диапазону значений, а сам документ обязан подчиняться ос' тальным ограничениям и требованиям, прописанным в правилах DTD.
www.books-shop.com
Выбор типа XHTML*документа В XHTML существуют три различных варианта DTD. Ответив на вопросы, приведенные в данной главе, вы сможете выбрать вариант, наиболее соответству' ющий вашим целям.
Выбор типа XHTML*документа Прежде чем приступить к созданию документа XHTML или HTML 4, опреде' лите его тип. Для этого ответьте на следующие вопросы: а будете ли вы использовать в документе фреймы? Если да, стоит обратиться к XHTML 1.0 Frameset DTD; намерены ли вы применять CSS или другие формы таблиц стилей (напри' мер, XSL) для представления элементов данных? В таком случае можно вос' пользоваться XHTML 1.0 Strict для размещения всей информации о пред' ставлении элементов в таблице стилей. Версия XHTML 1.0 Transitional будет наиболее удобна, если вы собираетесь смешивать элементы представ' ления, атрибуты и таблицы стилей; а воспользуетесь ли вы элементами, имеющими свойственные только им сти' ли, например тэгом для курсива, а не тэгом <em> для выделения опре' деленных элементов текста? При утвердительном ответе вам следует при' менять версию XHTML 1.0 Transitional. Пример. Вопросы и ответы можно схематично представить в виде «дерева решений» (рис. 1.1). Перечисленные вопросы являются основными в процессе поиска решения. Для того чтобы правильно выбрать версию языка XHTML, внимательно изучите каж дый тип документа.
Версия XHTML 1.0 Strict XHTML 1.0 Strict не содержит полной информации о представлении элемен' тов документа, как и родственный язык HTML 4.0. Если в XHTML'документе не' обходимы стили, просмотр и отображение, соответствующие инструкции переда' ются браузеру при помощи таблицы стилей. Представление элементов может быть простым, например выбор цвета для отображения текста или заголовка документа либо выравнивания при размещении изображений. Кроме указанных опций, к дан' ным о представлении элементов документа относят рекомендуемый набор шриф' тов, стилей и размеров, а также визуальные свойства таблиц ' толщину границы, интервал между ячейками и отступ от границ ячеек. Все перечисленные возмож' ности представления удалены из языка XHTML 1.0 Strict: в нем нет элементов или атрибутов, управляющих их представлением, а инструкции передаются в браузер посредством таблицы стилей. Пример. Служебная записка, содержащая поля для отдельных слов и фраз, которые должны выделяться в общей структуре текста. Заголовки полей: То (Кому), From (От кого) и Re (Приложение) обычно записывают жирным шрифтом. Название перио дического издания всегда обозначается курсивом.
www.books-shop.com
Основы XHTML
Рис. 1.1. «Дерево решений»
Если служебная записка составлялась с применением обычного текстового ре' дактора, документ, вероятнее всего, будет выглядеть следующим образом: Memorandum То: Joe Cline From: Marshall Jansen Re: статья из журнала Business Week
Joe, Attached is a copy of a recent Business Week article focusing on the success of e'com' merce in our industry, with a mention of our award winning Web site! Please circulate amongst your staff. Best, Marshall (Джо, высылаю в качестве приложения копию статьи из последнего выпуска журнала Week», основная идея которой ' подчеркнуть преимущества и эффективность сетевой электронной системы коммерческих сделок для нашего производства. В статье в числе победителей упоминается наш Web'сайт! Пожалуй' ста, познакомьтесь со статьей и обсудите ее в своем кругу. С наилучшими пожеланиями,
Маршалл)
www.books-shop.com
Выбор типа В необходимо сделать разметку, как показано в листин' ге 1.1. Экранная форма готового документа примет вид, показанный на рис. 1.2. Листинг
Файл memo.html
Joe Cline
From: Marshall Jansen
Re: Week article
Attached is a of a recent Business article focusing on the success of ecommerce in our industry, with a mention of our award winning Web site! Please circulate amongst your
Marshall
Рис. 1.2. Пример XHTMLдокумента Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ
[email protected] Основы XHTML Примечание
Вероятно, вы обратили внимание, что название файла в заголовке листинга записано как Язык XHTML не определил собственный и оставил без изменений соглашения по присвоению имен, для языка HTML. все будут расширение
В данном примере для выделения соответствующих элементов текста жирным шрифтом и курсивом используются тэги и . Стоит напомнить, что в вер' сии языка XHML 1.0 Strict задание представления в элементах и атрибутах недо' пустимо. Заменой тэгов и соответственно на и <strong> можно соотнести примененные инструкции с правилами Strict'версии языка: ' Joe Cline
' Marshall Jansen
'
article
Attached is a copy of a recent <em>Business Week article focusing on the success of e'commerce in our industry, with a mention of our award winning Web s i t e ! Please circulate amongst your
Экранная форма документа, полученная после внесения изменений в исходный код проекта, примет вид, представленный на рис. Здесь тэги курсива и жирного шрифта заменены тэгами выделения (emphasis и strong). Обратите внимание: структуры документов на рис. 1.2 и 1.3 при использовании программы Netscape Navigator выглядят одинаково. Вид документа на экране не из' менится и при применении другого типа браузера, например Internet Explorer. Это результат соглашения между разработчиками браузеров: и при отображении документа стандартно преобразуются в курсив и жирный шрифт. Термин «стандартное уместен, поскольку в спецификации XHTML не требуется обозначать эти элементы курсивом или жирным шрифтом. Структура языка предписывает лишь их выделение на общем фоне текста и раз' личие между собой. Следовательно, пользовательский агент (браузер) и любая другая программа просмотра может применять соответствующую цветовую гам' му, больший размер шрифта или комбинацию данных методов, не нарушая пра' вил, установленных спецификацией языка.
Версия XHTML 1.0 Transitional Идея создания переходного (transitional) варианта языка для типизированных документов возникла при разработке версии HTML 4.0 и была направлена на вы' полнение следующего правила: элементы представления и сопутствующие им атри' буты в документах становятся устаревшими (deprecated). Для достижения анало' гичного результата существуют другие, более эффективные методы. Применение тэгов и их атрибутов корректно в рамках переходной версии языка.
www.books-shop.com
Выбор типа
Рис. 1.З. Пример документа версии XHTML Атрибут представления документа управляет равнивание, ширина, размер. Рассмотрим
I div |
I
I
Представленная запись соответствует выбору из р, элементов из компонента heading, элемента div, элементов из компонентов l i s t s и blocktext, элемен' та или table.
www.books-shop.com
Основы XHTML Заметим, что формализованное описание моделей содержания может доволь' но быстро превратиться в сложную структуру. В большинстве случаев у разработ' чика нет необходимости проводить синтаксический анализ формальных опреде' лений самостоятельно: для этого существуют специализированные инструменты проверки, один из которых рассмотрен в главе 8. Приведенная программа помо' жет вам проверить соответствие разработанного документа описанию DTD. Практически все объекты блочного уровня являются элементами, способны' ми хранить другие элементы того же уровня; они также содержат встроенные эле' менты и символьные данные.
Встроенные элементы могут хранить символьные данные (текст, заключенный между начальным и конечным тэгами) и другие встроенные элементы (например, выделения жирным шрифтом), но не элементы блочного уровня. Пример. Иногда встречаются документы, в которых слова помечены одновременно курсивом и жирным шрифтом. Для формирования такого документа вкладываются встроенные элементы. В предыдущем примере можно использовать выделение жир ным шрифтом для названия журнала: is a copy of a recent <strongxem>Business a r t i c l e focusing on the success of e'commerce in our industry, with a mention of our award winning Web s i t e ! Please circulate amongst your
После применения обоих стилей к данным между тэгами документ примет вид, соот ветствующий рис. Для большинства элементов порядок их вложения друг в друга особого значе' ния не имеет. Однако порядок следования закрывающих тэгов должен быть об' ратным относительно открывающих. Так, в рассмотренном примере тэг предшествует Следовательно, первым завершающим тэгом станет с его помощью закрывается самый внутренний тэг вложения; затем внешний за' вершающий тэг замкнет полную структуру вложений. Если заверша' ющие структуру дескрипторы расставлены неверно, считается, что документ сфор' мирован неправильно.
Резюме В главе 1 вы познакомились с основной структурой узна' ли, что каждый из них должен принадлежать одному из трех типов, определяемых версией языка и содержательной частью самого документа. Любой XHTML'документ должен включать по меньшей мере четыре из пяти элементов, определяемых до его видимого содержания. К ним относятся: описание типа, корневой элемент, заголовок и элемент названия. Метатэги ' необязательные элементы, в случае их объявления присутствующие в заголовке. Элементы блочного уровня иногда содержат встроенные элементы либо дан' ные; они предназначены для создания общей структуры ' каркаса документа.
www.books-shop.com
Резюме
Рис. 1.4. Пример
с вложенными встроенными элементами
Встроенные элементы могут включать в себя другие встроенные элементы либо данные; они применяются для формирования завершенного вида, добавления де' талей к общей структуре документа. Глава 2 посвящена проблемам добавления семантики к структуре вашего до' кумента, обеспечения целевой направленности документа за счет выбора уровней заголовков, организации данных в виде списков и выделения важных фрагментов.
www.books-shop.com
2. Дополнение структуры семантикой В главе 1 вы познакомились со структурой языков HTML и XHTML, а также с ба' зовыми элементами, необходимыми для создания документа. Здесь вы получите представление о функциональном назначении свойств различных компонентов языка, методах и причинах определения элементов структур. В данной главе рас' сматриваются следующие вопросы: а влияние семантики на поведение XHTML; а создание структуры документа с помощью заголовков; а упорядочивание и группирование элементов документа с применением списков; а выделение данных посредством структур.
Смысл семантики Одна из основных проблем, с которыми могут столкнуться разработчики Web' страниц при переходе от HTML к языку XML, ' это отсутствие семантики у эле' ментов. Семантика (semantics) ' набор описаний некоторого объекта, имеющих об' щепринятое толкование и полностью характеризующих его. Данное определение особенно подходит для описаний внешнего вида объекта. Например, стол представ' ляет собой предмет с плоской горизонтальной поверхностью, поддерживаемой на некотором расстоянии от пола с помощью отдельных элементов, называемых нож' ками. В США стол будет иметь то же функциональное назначение, что и, скажем, в Кении, Непале или Чили. Набор свойств, характеризующих этот предмет, то есть его семантика, не изменяется. Применительно к XHTML данная концепция означает следующее. Известно, что абзац представляет собой неразрывный текстовый блок, визуально выделен' ный в общей структуре текста (так, в данной книге каждый абзац начинается с но' вой строки, причем первая строка записывается с отступом от левого края). Эле' мент , указывающий на абзац, наделяется аналогичной семантикой: этот тэг подобен папке для хранения текста. Большинство элементов XHTML имеет семантику, которая вводится либо стан' дартом языка XHTML, либо первыми рекомендациями по применению HTML. Еще раз отметим, что основу структуры XHTML составляют базовые положения ранних версий HTML.
www.books-shop.com
Смысл семантики
Формирование структуры документа с помощью заголовков Заголовок в структуре HTML является элементом, который разработчики зача' стую применяют не по назначению. Между тем заголовки необходимы для выделе' ния композиционных частей внутри документа. Разделы, определенные на стадии проектирования, соответствуют требованиям, которые предъявляются к формату конечного визуального отображения документа: основные заголовки, подзаголовки второго и третьего уровня и т.д. Обратите внимание на формат оглавления (table of contents ' ТОС) этой кни' ги. Его структура достаточно Номера глав вынесены перед основ' ными заголовками, при этом каждый следующий уровень отслеживается с приме' нением соответствующей системы подзаголовков. Например, название главы 1, «Основы XHTML», примет вид: < c o n f i r m Chapter 1 ТОС entry, copy here as seen in real then plug into запись для главы отобразить ее здесь так, как она показана в оглавлении, затем перейти к следующим
Эту запись можно преобразовать в стандартную форму, применив следующую нотацию: XHTML Fundamentals
(Основы XHTML)
А. В. С.
Пример. Если разработчик намерен перевести весь текст главы 1 в формат он, всего, сохранит структуру данных оглавления. Для этого используется система XHTMLзаголовков, причем начинать нужно с заголовка пер вого уровня :
...текст... и т.д.
Многие авторы документов на HTML выбирают уровень заголовка с помощью размера шрифта либо внешнего вида элемента для его демонстрации браузером. Подобные действия приводят к удалению информации о структуре документа и дают семантику представления элементам, которые не должны ее иметь.
Группированиеиупорядочиваниеданных посредством списков Иногда определенная семантика закрепляется за информацией, сгруппирован' ной особым образом. Например, состав семьи можно представить в виде следую' щего списка:
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Дополнение структуры семантикой Дейв; а Энн; а Линда. Элементы этой структуры не требуют упорядочивания, но ее представление в виде множества зависит от способа группирования входящих в нее данных. Объекты, принадлежащие группе, обычно отображаются в виде списка. Для раз' деления элементов применяются маркеры, порядковые номера, буквы алфавита, запятые, пробелы либо другие подходящие символы или элементы представле' ния. Пример. Необходимо помнить о том, что список имеет и семантику, и структуру. От личительной чертой списка являются не только символы, разделяющие его. Функ циональное назначение данного элемента структуры языка объединение объектов в группу и представление отдельных элементов списка в группе. В языке XHTML сохранены три основных типа списков HTML 4: неупорядо' ченный, упорядоченный и список определений.
Неупорядоченные списки Неупорядоченный список представляет собой совокупность данных, отдель' ные элементы которой не ранжируются и не имеют положения. Монеты в кошель' ке располагаются хаотично, поэтому могут быть описаны посредством неупорядо' ченного списка. Пусть множество состоит из следующих элементов: пять монет по двадцать пять центов, две по десять, одна монета достоинством в пять центов и се' мипенсовик. Базовый синтаксис для неупорядоченного списка будет иметь вид:
Обратите внимание, что в данном примере для каждого элемента списка у от' крывающего тэга есть соответствующий закрывающий тэг. Это отвечает требова' нию правильности документа XHTML В совместимом с языком XHTML браузере элементы, принадлежащие списку, должны разделяться неупорядоченным образом. Для изображения таких списков обычно используются маркеры в виде точек (рис. 2.1).
Изменение типа разделителя
элемента списка
Если документ создается с применением версий языка XHTML Transitional или Frameset, инструкцию представления для разделителей разрешается выбрать с помощью атрибута type. В табл. показаны возможные значения данного ат' рибута.
www.books-shop.com
Группирование и упорядочивание данных
Рис. Таблица
Типичное представление неупорядоченных списков посредством маркеров в виде точек
Перечень типов маркеров для неупорядоченного списка
Значение атрибута
Представление на экране
По умолчанию (тип не указан) square circle disc
Закрашенный круг Небольшой закрашенный квадрат Незакрашенный круг Закрашенный круг
Пример. В примере показано использование умалчиваемого, круглого и квадратно го типов разделителей: тип списка по
тип списка
www.books-shop.com
I
Дополнение структуры
Третий тип списка
На рис. 2.2 представлен вид документа после выполнения инструкций.
Рис. 2.2. Три типа неупорядоченных списков
Компактное оформление списка Второй атрибут для неупорядоченных списков ' compact. Он предлагает агенту пользователя минимизировать высоту линий и отступы между линиями при отображении списка. Пример. В языке HTML 4 compact был логическим значение которого задавалось наличием или отсутствием атрибута у элемента. Следовательно, запись тэга в виде
эквивалентна записи Поскольку на данном этапе перечислены все подзаголовки раздела «Группи' рование и упорядочивание данных посредством списков», можно закрыть и ука' занную тему, и список, который она предваряет: Теперь в проект необходимо вписать еще один основной заголовок для раздела «Методы выделения текстовых блоков» и перечислить его пункты: выделения текстовых блоков встроенных структур блочного Последняя запись соответствует четвертому основному разделу ' «Резюме». Затем следует инструкция о завершении списка, пронумерованного римскими цифрами, а также всех остальных уровней, сформированных данной структурой. Полная последовательность дана в листинге 2.1. На рис. 2.6 показана экранная форма завершенного документа. Листинг
Программа создания документа с вложенными списками
. Размер шрифтов и стиль задаются с помощью CSS или других языков стилей.
Выделение структур блочного ровня Для выделения больших текстовых фрагментов в XHTML сохранен тэг (выделение блока), хорошо знакомый пользователям HTML 4. Он предназначен для выделения блока данных, заключенного в кавычки. По' скольку данный тэг является элементом блочного уровня, его можно использо' вать при дополнительной стилизации текста на встроенном уровне. Пример. Предположим, вам нужно составить обзорный материал о Шек спира, включив туда фрагменты его произведений, например монолог из трагедии «Юлий Цезарь». Для этого лучше всего подходит элемент : Remember the ides of March remember: Did not great Julius bleed for sake? What villain touch'd his body, that did stab, and not for justice? shall one of us that struck the foremost man of all this world but for supporting shall we now contaminate our fingers with base bribes, and sell the mighty space of our large honours for so much trash as may be grasped thus? I had rather be a dog, and bay the moon, than such a Roman. Представление выделенных фрагментов в спецификациях языков HTML и XHTML не регламентируется; это полностью зависит от браузера. Традицион' ным является смещение фрагмента'вставки относительно обеих границ документа (рис. 2.9). В некоторых браузерах предоставляются дополнительные возможности: применение курсива или других типов шрифтов, изменение цвета.
www.books-shop.com
Резюме Не с тэга дву) стороннего смещения в процессе демонстрации для структур, имеющих общее назначение. Такой способ представления доку) мента в спецификациях языка XHTML не регламентирован. Бра) узеры (агенты могут другие виды смещения текстовых элементов.
Рис. 2.9. Выделенный фрагмент текста
Резюме В данной главе были рассмотрены основные структурные элементы, предо' ставляемые XHTML. Вы с методами правильной организации структуры документа при помощи элементов оглавления, а также с базовыми и вложенными списками, которые соответствуют требованиям правильности до' кумента на XHTML. Представлен перечень способов выделения отдельных слов и фраз текста, а также целых текстовых блоков с использованием соответствую' щих тэгов. В следующей главе рассказывается о методах включения в документ изобра' жений и дается обзор популярных средств взаимодействия с пользователями —
www.books-shop.com
Глава 3. Работа с Обычный пользователь, характеризуя World Wide Web, скажет: «Кар' тинки и тексты через Internet». Определение сети как среды, существующей ис' ключительно для обмена текстовыми документами, дадут, пожалуй, только те, кто познакомился с Internet до года. Подготовка публикаций с применением на' стольных редакционно'издательских средств постепенно стала основным видом пользовательской деятельности. Это занятие поначалу увлекло и множество не' профессионалов, которые с удовольствием погрузились в работу с цифровыми изображениями. Однако оказалось, что создание изображений для Internet достаточно сложно. Количество графических форматов, поддерживаемых браузерами Web, значитель' но меньше, чем для MS Publisher или FrameMaker. Кроме разрешение и цвето' вая палитра монитора могут представить рисунок совсем не таким, каким он будет после распечатки на принтере. В этой главе рассматриваются следующие темы: а а а а а
форматы изображений, поддерживаемые для работы в режиме online; форматы, наиболее удобные для каждого типа графики; способ включения картинок в структуру Web'страницы; методы создания ссылок с использованием рисунков; наложение активных зон на изображения для формирования интерактивных карт.
Форматы графических данных для Web Долгое время Web'браузеры поддерживали только два формата изображе' ний ' GIF и JPEG, сейчас к ним добавлен третий ' PNG. В данном разделе про' анализированы достоинства и недостатки каждого формата, дан обзор популяр' ных инструментов для редактирования изображений.
Формат изображений GIF Для нефотографических изображений наиболее распространенным является формат обмена графическими данными (Graphics Interchange Format — GIF). Он от' носится к форматам с картой битов (bit'map): с изображения пиксел за пикселом снимается копия ' карта битов. Ее можно сжимать, если соседние пикселы имеют одинаковые значения цвета. Сжатый графический файл занимает значительно мень' ше места при хранении на сервере; кроме того, сокращается ширина полосы пропус' кания, необходимая для передачи этого файла пользователям.
www.books-shop.com
Форматы графических данных для Web Изображения в формате GIF имеют ряд ограничений по применению. Прежде всего, недостаточный объем палитры, поскольку максимальное количество уни' кальных цветов в изображении равно 256. Однако это число не является постоян' ным множеством. Палитра может состоять из любых 256 цветов, оптимально со' четаемых внутри изображения. Данный формат наиболее удобен для графических объектов с большими монохромными областями, например логотипов, кнопок и заголовков. Однако компания, разработавшая алгоритм сжатия LZW, который необхо' дим для получения формата GIF, заявила о том, что любой производитель про' грамм, обеспечивающих возможность применения данного формата в издатель' ской деятельности, обязан получить у нее разрешение на этот род деятельности. Специалисты W3C создали собственный открытый (не требующий выплаты ко' миссионных в качестве гонорара автору) формат для графических данных, по' лучивший название формат переносимых по сети графических данных Network Graphics ' PNG), но по сравнению с GIF он не столь широко распро' странен. Более подробную информацию можно на W3C http://www.w3.org/Graphics/PNG/. Описание формата PNG представлено также в разделе ) самый современный фор) мат Web».
Формат изображений JPEG JPEG ' это аббревиатура названия группы, придумавшей данный формат, ' объединенная группа экспертов по обработке фотографических изображений (Joint Photographic Experts Group). Такой формат предназначен специально для хранения фотографических изображений. По сравнению с форматом GIF, чья палитра огра' ничивается 256 красками, форматы JPEG (сокращенно JPG) могут использовать до 16,7 млн цветов. Алгоритм для его сжатия известен как механизм с потерями (lossy technique): часть информации в процессе сжатия данных выборочно отбрасывается. Ком' прессия низкого уровня позволяет сохранить качество изображения, высокого ' избавиться от лишних данных. Применение сжатия низкого уровня не оказывает значительного влияния на качество картинки, особенно если вывод осуществля' ется на монитор с относительно небольшим разрешением.
PNG / самый современный формат Web Стремясь совместить в одном формате преимущества GIF и JPEG, группа W3C создала новый формат изображений ' PNG, обеспечивающий, кроме того, ряд дополнительных возможностей, в частности высокое качество переносимых графических изображений в Web. Собственная поддержка данного формата появи' лась в Netscape Navigator 4.5 и Internet Explorer 4.
www.books-shop.com
Работа с изображениями
редакторы для Web Стоимость программных средств редактирования графических данных колеб' лется от нуля (в случае свободной поставки) до 500 долларов. Конечно, чтобы со' здать хорошо оформленный сайт, необязательно тратить значительные суммы. Од' нако следует помнить, что бесплатных либо относительно дешевых пакетов потребует от вас дополнительных усилий и некоторого таланта художни' ка. Маловероятно и то, что подобные инструменты будут обладать таким же бога' тым набором свойств и методов, каким снабжены более профессиональные прило' жения. В последнее время пользователям, работающим в ОС Windows, стало проще подобрать высококачественные программные средства редактирования графи' ческих данных. Достаточно назвать некоторые из них: Microsoft Paint ' базовый редактор, поставляемый с операционной систе' мой Windows. Его возможности ограничиваются поддержкой форматов файлов с картой битов, GIF и JPEG, но он удобен для начинающих дизай' неров; JASC Paint Shop Pro ' программа, поначалу принадлежавшая к классу услов' но бесплатных (распространяемых по принципу «попробуй, прежде чем ку' Сейчас пользователю бесплатно предлагается полнофункциональная 30'дневная версия программы JASC, позволяющая протестировать пакет до того, как будет оплачена постоянная лицензия; a Macromedia Fireworks ' программа, интегрируемая со всем семейством про' дуктов компании Macromedia. Поддерживается операционными системами Windows и Р Adobe Photoshop — программа, наиболее распространенная среди компью' терных художников, однако из'за высокой стоимости она остается недоступ' ной большинству рядовых пользователей. Поддерживается операционными системами Windows и
Добавление графики в документ Элемент'рисунок в структуре языка XHTML описан как встроенный объект. Его можно размещать внутри таких элементов блочного уровня, как абзацы, то есть рисунок будет отображен на той «линии» документа, где установлен его тэг. Минимальный синтаксис, необходимый для описания картинки, включает два ат' рибута: src для определения источника файла'изображения ' URL и alt для аль' тернативного текстового варианта, описывающего само изображение: <map <area alt <area alt
14, 66, 69" of
/> 104, 43" />
www.books-shop.com
Работа с изображениями
Рис.
Ввод данных для новой
<area alt <area 214" <area
зоны
122, 303, 147" of
/> alt
157. 315. 138. 398, 173, 336, of /> 223, 501, 374"
of Hawaii" />
Резюме В данной главе вы познакомились с методами включения графических изоб' ражений в Web'документы. Были рассмотрены способы выравнивания и размеще' ния рисунков на странице, а также использование изображения в качестве элемен' тов связи и карт. В следующей главе будут представлены методы получения данных от посети' разработанных вами сайтов языка Perl для создания — про' граммы для выполнения процесса генерации и выдачи формы.
www.books-shop.com
Глава 4. Сбор данных с помощью форм Бурное развитие экономики, основанной на применении сетевых технологий, сви' детельствует о том, что успех Web как коммерческой среды обусловлен в основ' ном возможностью получения данных от посетителей сайтов. Информационная поддержка, предоставление услуг и продажа разнообразной продукции через сеть ' вклад в ежегодный миллиардный онлайновый товарооборот. Любая транз' акция начинается с применения простой формы. Формы (forms) объединяют не только элементы и содержимое ментов. В них входят дополнительные коды программ и скрипты для сбора пользо' вательских данных, доставка их владельцу сайта по электронной почте, сохранение данных на Web'сервере и непосредственная запись в базу данных. В настоящей главе рассматриваются следующие вопросы: а использование управляющих элементов форм; а обработка содержимого формы; Р реализация простейшего скрипта на языке программирования
Управляющие элементы форм XHTML поддерживает десять управляющих элементов (controls), используе' мых в формах для ввода информации, выбора необходимых данных и запрограм' мированного действия. Это элементы ввода текстовых данных (boxes), кнопки (buttons) меню (menus). Каждый из элементов управления обладает уникальными свойствами, которые будут подробно рассмотрены ниже.
Элемент form Любая форма начинается с элемента блочного уровня Он включает все необходимые элементы управления, данные, относящиеся к элементам (напри' мер, метки), а также положение программ или скриптов для обработки данных формы. Минимальный набор параметров для элемента содержит два атри' бута: method (метод) и (действие). Его синтаксис представлен ниже:
...содержимое
формы...
www.books-shop.com
Сбор данных с помощью форм Атрибут method может принимать два значения: get (получить данные) либо post (сохранить данные). Они определяют способ отправки данных, введенных в форме, на сервер (подробнее об этом рассказывается в разделе «Методы обра' ботки данных Значение атрибута action ' полная запись для URL программы (или скрип' та), используемой при обработке данных.
Элементы ввода для формы Существует десять типов элементов для ввода данных: a text boxes ' элементы для размещения текста; Р password ' пароль; a check boxes ' элементы, с помощью которых пользователь принимает про' стое решение типа «да/нет». Исходные данные ' запись, сделанная дизай' нером сайта; a radio buttons ' группа взаимоисключающих кнопок; a select groups ' элемент для выбора из группы; a text areas ' области для размещения текстовой информации; a hidden controls — скрытые элементы управления; a upload c o n t r o l s — элементы управления загрузкой файловых данных; a buttons ' кнопки управления; image controls — графические элементы. Имеется множество атрибутов, используемых всеми перечисленными элемен' тами управления, ' см. табл. Таблица Атрибут type name value checked
Атрибуты, доступные для всех элементов ввода Применение Определяет тип создаваемого элемента ввода Идентифицирующая строка символов, соответствует имени переменной на сервере Содержит значение, введенное пользователем либо заданное по умолчанию автором документа Свойство выбора по умолчанию (используется главным образом для компонен тов radio select groups)
disabled
Элемент управления виден, но его невозможно модифицировать
readonly
Пользователь не может изменить значение по умолчанию. Элемент доступен только для чтения
size
Числовое значение, применяется для установки размеров визуального отобра жения элемента
maxlength
Всегда числовая величина, устанавливает максимальное значение символов при вводе
src
Универсальный идентификатор ресурса URI
alt
Альтернативный текст
usemap
Универсальный идентификатор ресурса для изображениякарты
www.books-shop.com
Управляющие элементы форм Таблица
Атрибуты, доступные для всех элементов ввода (окончание)
Атрибут
Применение Числовое значение, определяет порядок активизации элементов управления, если пользователь для перемещения между ними применяет клавишу Tab
accesskey
Отдельный символ на клавиатуре, который может использоваться для активизации элемента управления Атрибуты, необходимые при написании скрипта
onchange accept
Применяется совместно с элементом управления для выбора файла, указывает тип допустимых файлов
align
Визуальное выравнивание элемента управления
Наиболее популярны атрибуты type (тип), name мер) и (максимальная длина). Элемент ввода
(раз'
box
Самый распространенный элемент формы ' text box (текстовый блок), при' меняемый для ввода текста (рис. Для данного элемента необходимы только два атрибута: type и name, однако на практике используется еще один особен' но полезный при работе с множеством элементов ввода для достижения универсаль' ности отображения. Элемент box был создан с помощью следующей конструкции: введите ваше имя:
Рис.
Простой
управления text box
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Сбор данных с помощью форм В представленной записи input является «пустым» элементом, на это указы' вает слэш перед закрывающей скобкой тэга. После получения инструкции «установить максимальный размер входной по' следовательности равным 20» большинство браузеров сформирует размеры эле' мента для записи текста, чтобы уместить в нем последовательность из 20 символов моноширинного шрифта. Например, если в браузере установлен шрифт Courier с высотой символа, равной 8, то визуальные размеры элемента box будут зна' чительно меньше любой последовательности того же документа, для которой установлен шрифт Bold с высотой символа 14. Если необходимо проверить количество введенных символов, в документ для данного элемента следует добавить атрибут maxlength.
Элемент ввода password Элемент управления p a s s w o r d (пароль) аналогичен элементу text box. Единственное отличие заключается в том, что данные в процессе их ввода закры' ваются маскирующими символами, например звездочками (*, asterisk). Пароли особенно важны для обеспечения режима визуальной защиты и при вводе некото' рой конфиденциальной информации (например, номера кредитной карты). Этот элемент создается с применением уже описанной синтаксической кон' струкции, но значение атрибута type " t e x t " меняется на "password":
Ввод при пересылке с
символов пароля обычно маскируется, однако входными элементами формы эти дан) не шифруются. информацию в про) цессе пересылки можно, например, с соединения через SSL.
Элемент ввода check box Это первый из двух элементов ввода, обеспечивающих возможность выбора опций в группе. Название check box происходит от традиционной интерпрета' ции элемента программой просмотра. Это «контейнер» для размещения текстовых данных, выбор которых приводит к установке маркера перед элементом. В большинстве случаев элемент check box записывается так: cheese" />
На рис. 4.3 показано последовательное размещение описанных элементов check boxes без дополнительных элементов форматирования между ними. На основании пользовательского выбора скрипт возвратит нечто похожее на следу' ющую строку: toppings=pepperoni&toppings=extra%20cheese&toppings=onions
Рис. 4.3. Группа элементов управления check boxes
www.books-shop.com
элементы форм Элемент ввода radio button Следующий метод объединения альтернатив ограничивает выбор одним вари' антом. Этот элемент управления получил название radio button group (группа зависимых кнопок'переключателей). Все элементы, входящие в данную группу, должны иметь одинаковое имя. На окончательный результат влияет только атрибут value. Например, выбор способов и времени доставки (shipping) продукции на электронной страничке сайта может быть описан следующим образом: Ground" /> UPS Ground
/> 2nd Day Air />
|
Вложенные таблицы Можно заменить таблицу с элементами покрытия таблицей, содержащей дру' гие элементы. Это называется вложенностью (nesting). Обычно вложенные эле' менты применяются там, где макет сайта организован в виде большой таблицы. Панель для навигации ' отдельная колонка, которую размещают слева в виде списка; основное содержание сайта находится в другой, большей по размеру ячей' ке справа. В данном случае структурированная информация должна располагать' ся в правой ячейке. Рассмотрим в качестве примера страницу Web'сайта, где говорится о текущих и ближайших презентациях на книжных ярмарках и о других важных мероприя' тиях. Формат страницы подобен описанной выше структуре. Макет начинается с таблицы, состоящей из одной строки и двух колонок:
This Web site was created as convenient way to share my favorite recipes. They have been arranged by category in the list below. Feel free to use as many as you wish, but if you send them along, please do give the original author (noted in each file)
Bon Appetit!
Soups href Ссылки во фрейме навигации указывают на документы во фреймах для отобра' жения содержательной информации. Следовательно, значение атрибута target должно указывать на этот фрейм (листинг 6.4). Листинг 6.4. Документ nav.html . Добавив закрывающий тэг, вы исправите допущенную ошибку. В процес' се работы программа проверки зафиксировала запись открывающего дескрип' тора При дальнейшем просмотре документа программа отметила элемент, который приведет к ошибке внутри открывающего тэга Им оказался за' крывающий тэг body. С этого момента анализ возникшей ситуации и последова' тельность действий по ее разрешению в соответствии с алгоритмом программы можно описать следующим образом: предыдущий элемент не был закрыт. Причина остановки состоит в присутствии в этой точке закрывающего дес' криптора body и отсутствии закрывающего тэга для Покажем разработчи' ку и первую ошибочную На рис. 8.9 показаны элементы списка исправленных ошибок. Исправлением опечатки, связанной с неправильным выбором регистра для записи тэга
, разработчик добавил требуемый в этом месте тэг ' Следующая ошибка (рис. которую необходимо исправить, связана с про' пуском закрывающего тэга В сообщении указывается, что отсутствует за' крывающий тэг, а далее в списке ошибок определено место открывающего тэга, для которого нет закрывающего. Последний пункт списка свидетельствует о том, что исходный элемент не был закрыт. Ошибка уже исправлена, поскольку вы заменили закрывающий тэг Для успешной работы с программой проверки дизайнер должен понимать особенности данного инструмента. Поиск ошибок осуществляется достаточно примитивно. Например, программа проверки разделяет два события: отсутствие закрывающего тэга и пропуск открывающего ' хотя на самом деле это одна ошибка. Таким образом, программа указывает все последствия одной опе' чатки. Чтобы уменьшить объем отчета, следует перепроверять исходный код пос' ле внесения очередного исправления.
Сообщения о несуществующих ошибках Ошибки, которые рассматривались до сих пор, найти и отсортировать достаточ' но легко. Процесс проверки затрудняется, когда программа вводит разработчика
www.books-shop.com
Проверка состоятельности
Рис. 8.9. Продолжение списка ошибок, обнаруженных программой проверки в заблуждение либо выдает странный и непонятный отчет. В этом разделе пред' ставлены пример программы и отчет об ошибках, который на первый взгляд ли' шен смысла. Пример. Исходный документ, показанный в листинге 8.2, похож на разработку ка лендаря, описанную в главе 5. Здесь содержатся три специфические ошибки, кото рые должна обнаружить программа проверки. Листинг 8.2. Программа September 2000 <meta
Navarro
www.books-shop.com
Сообщения о несуществующих ошибках
Рис.
Продолжение списка ошибок, обнаруженных программой проверки
on
+
+
//
www.books-shop.com
I
Современная реализация языка XHTML
Проблема заключается в том, что по правилам XML фрагмент должен иденти' фицироваться атрибутом типа ID, которому в версии HTML 4.01 соответствует ат' рибут Однако в современных браузерах для ввода идентификатора применяется атрибут name. Для того чтобы оба типа систем могли поддерживать соответствую' щее соединение, авторам XHTML'документов следует применять и name, и id. В данном примере значения обоих атрибутов (name совпадают:
Проанализируем данную синтаксическую конструкцию. Открывающий тэг text>, закрывающий text>. Когда один тэг вкладывается в описание другого, дителем, а вложенный (дочерний) ' потомком.
тэг становится ро'
В следующем примере элемент будет родителем элемента <paragraph>: в пролог XMLдокумента. При использовании браузера Internet Explorer 5.0 таблица стилей будет ассоциирована с Предположим, что таблица стилей размещается по адресу, указанному в инструкции обработки, и разрешена для применения. Тогда исходный XMLдокумент будет преобразован в соответствии с описаниями, содержащимися в данной таблице. Отметим, что в первых демон страционных версиях браузера Netscape 6 XSLTпроцессоры отсутствовали. Для связывания XML'документа с каскадными таблицами стилей следует за' писать инструкцию типа:
www.books-shop.com
в язык XSLT Неоднозначность толкования данного термина отчасти обусловлена различия' ми в терминологии, разработанной непосредственно консорциумом W3C. Напри' мер, в одной из его рекомендаций допускается применение XSLT отдельно от XSL, а в другом документе указывается, что XSLT является составной частью XSL. Еще одна причина путаницы состоит в том, что после завершения работ над XSL'FO (XSL Formatting Objects ' механизм форматирования объектов языка XSL) этот механизм предполагалось использовать вместе с XSLT. Ситуация осложняется тем, что в настоящее время существует несколько вер' сий языка XSL производства компании Microsoft, лишь частично совместимых со стандартами W3C. Первая версия языка стилей компании Microsoft, которая под' держивалась браузером Internet Explorer 5.0, уже вышла из употребления. Сейчас имеется рабочая версия программного обеспечения, Preview Release, которая наибо' лее совместима со стандартами W3C. В данной главе термины XSLT и XSL'FO применяются по отношению к стан' дартам, закрепленным в рекомендации W3C Extensible Stylesheet Languages Trans' formations Recommendation и в рабочей версии языка таблиц стилей Extensible Stylesheet Language Working Draft. Язык XSLT преобразует документ'источник в выходной документ, записанный на некотором диалекте языка (например, XHTML). Метод XSL'FO применяет к измененному документу информацию о формате, управляя способом его отображения в браузерах настольных или мо' бильных компьютеров либо при печати. Поскольку в настоящее время однозначного определения термина XSL нет, ниже он будет использоваться только с соответствующими пояснениями.
Преобразования XSLT Таблицы стилей XSLT содержат набор инструкций для процессора XSLT, в ко' тором указывается, каким образом из исходного XML'документа и создается новый документ. Чтобы узнать, какая таблица стилей будет применена к XML'документу, существует две возможности. Во'первых, внутри документов типа XML и XHTML может присутствовать ссылка, связывающая исходный доку' мент с таблицей преобразования XSLT, иногда называемой таблицей стилей. Во'вто' рых, для этого применяется командная строка. Программа Instant Saxon, о которой будет рассказано ниже, использует последний метод. В результате обработки процессором XSLT содержимое исходного документа изменяется. В данной главе XSLT'преобразование рассматривается с позиций под' готовки к последующему отображению документа, что для приложений электрон' ной коммерции имеет особое значение. В частности, XSLT позволяет преобразо' вать XML'документ бизнес'приложения в документ такого формата, с которым покупатели или продавцы привыкли иметь дело, обеспечивая тем самым электрон' ный обмен данными. Чтобы понять суть преобразования, необходимо изучить алгоритм работы про' цессора XSLT.
www.books-shop.com
Язык
как способ задания стилей
а исходного документа (или XHTML); соответствующая стилей (также являющейся документом XML); результирующего документа в готовом для представления формате ' доку' менты XML, HTML, XHTML либо текстовый файл. Результирующую древовидную структуру, например документ XHTML, можно отобразить в Web'браузере или сохранить на диске. Для отладки такой структуры дополнительно применяется каскадная таблица стилей. Примеры обоих механизмов обработки выходного документа приведены в конце данной главы. приложений, связанных с XSLT'преобразованиями, применяет' ся при создании сложных систем электронной коммерции. Для этих систем, веро' ятно, потребуется режим, когда множество исходных XML'документов станет об' рабатываться с помощью одной таблицы стилей, содержащей группу модулей. Таким образом, результирующее дерево нельзя будет отобразить или сохранить на диске. Но даже в этом случае его можно использовать в качестве исходного XML' документа для последующих преобразований. Документы содержат символы пробелов, табуляции, перехода на новую строку и возврата каретки. Существует множество способов обработки и включения этих символов в конечный документ. Необхо) димая информация представлена в соответствующих разделах реко) мендаций консорциума W3C ) XML 1.0 и XSLT 1.0 Recommendations.
имен XML постепенно объединяет все большее количество независимых и совместимых в работе технологий. Одна из самых необходимых технологий, от' вечающих за совместимость программных продуктов, называется XML)простран) ство имен. Язык XHTML поддерживает модули элементов и возможность построения новых элементов для их последующего использования в структуре ментов (см. главы Однако это может стать причиной конфликта, если раз' работчики модулей используют в разных проектах одно и то же имя элемента. Язык XML, а следовательно, и XHTML, решает данную проблему с помощью пространств имен. Приведем пример из повседневной жизни. Допустим, несколь' ких людей из вашего окружения зовут одинаково — Эндрю. Но их будет легко раз' личить, если кроме имени воспользоваться еще и фамилией: Эндрю Смит, Эндрю Эндрю Ватт. В структуре XML подобный механизм применяется при разрешении ситуации с одинаковыми именами для элементов XHTML (XML), принадлежащих различ' ным модулям, но используемых в едином XHTML' или XML'документе. Пример. В документе необходимо различать два элемента с одинаковыми именами Одному из них можно присвоить полное имя Данный элемент является частью Существует множество других префиксов для обозначения остальных элементов . Следовательно, конфликтной ситуации, обусловленной наличием одинаковых имен, избежать достаточно просто.
www.books-shop.com
Введение в язык XSLT Для установления взаимосвязи между XSLT'таблицами и XML'файлом необ' ходима команда: :
Представленная запись эквивалентна следующему определению:
Другими словами, элементы и transform> дарте языка таблиц стилей (или таблиц преобразования стилей рекомендация Recommendation» поддерживает два элемента с единым значением) имеют одинаковый смысл. XMLпространства имен применяются для явного описания элементов XSLT, напри мер и т.д. Данные пространства внутри дре вовидной структуры узлов наделяются собственным смыслом (см. XSLT 1.0 и XPath Recommendations).
Стандарт XPath Для создания работающего XSLT'приложения дизайнеру следует, по меньшей мере, знать основы языка XML'маршрутов (XML Path Language ' XPath). Чтобы понять механизм совместной работы XSLT и XPath, язык XSLT следует воспри' нимать как метод описания алгоритма изменения узла в исходной древовидной
www.books-shop.com
Язык XSL как способ задания стилей <section title= "Введение в язык <section <section объектов с помощью <section
таблиц стилей
Далее приводится список остальных разделов Если текущим контекстным узлом является , то для поиска элемента , потомка элемента , можно использовать следующее XPath'
которое является полной формой укороченной записи: chapter
В данном примере запись : служит ребром. В укороченном синтаксисе ее можно опустить, поскольку это запись по Проверка узла — В синтаксисе этого XPath'маршрута предикаты отсутствуют. обрабатывает полную и укороченную запись одинаково (конеч' но, речь идет лишь о корректных формах). Иногда выбор синтаксиса определяется только формой, которую предпочитает разработчик. Полная форма записи доста' точна, короткая — необходима. Для некоторых маршрутов укороченная запись от' сутствует, следовательно, полная запись является необходимой и достаточной. В нашем примере все потомки элемента ' элементы . По' этому, если контекстным является узел, относящийся к элементу достичь аналогичного результата можно с помощью следующей полной записи: либо посредством укороченного варианта синтаксиса: * Записью «звездочки» осуществляется выбор всех прямых потомков контекст' ного узла. Обратите внимание, что этот элемент не выбирает потомков для пря' мых потомков конкретного родителя. Наравне с выражениями для выбора элемен' тов в языке XPath существуют выражения для выбора атрибутов, однако их мы рассматривать не будем.
Формы представления маршрута Пример. Вы уже знакомы с относительной формой указания маршрута посредством контекстного узла. В языке XPath предусмотрен также синтаксис выражений, позволя ющий применять абсолютную форму адресации. Однако абсолютные маршруты можно отнести к категории относительных, если рассматривать их с позиции корне вого узла древовидной На примере предыдущего исходного кода можно показать несколько вариантов записи использующих абсолютную форму записи маршрута: О ' ?> в
www.books-shop.com
Стандарт иметь узел пространства имен для каждого объявления пространства имен, сделанного в области видимости данного элемента; Р узлы инструкций обработки данных (processing instruction nodes) ' каждой исполняемой инструкции, заключенной внутри исходного документа, назна' чается соответствующий узел (кроме инструкций, содержащихся в сегменте объявления типа документа); узлы комментариев (comment nodes) ' для каждого комментария внутри ис' ходного XML'документа создается соответствующий узел (кроме коммен' тариев, размещаемых внутри объявления типа документа): 12
Маршруты В языке XPath существует термин маршрут (location path). Маршрут может иметь две формы представления: абсолютную, когда в качестве точки отсчета бе' рется корневой узел древовидной структуры, и относительную, когда за пункт от' правления принимается контекстный узел. Маршрут содержит один или несколько шагов (location steps), которые в запи' си отделяются друг от друга слэшами (/). Каждый шаг состоит из трех частей: ребра (axis) ' определяют отношения в дереве между узлами, выбранны' ми шагом, и контекстным узлом. Примером ребра могут служить родитель и потомок; проверка узла (node test) ' описывает тип узла и расширенные имена узлов, выбранных шагом; Q и более предикатов (zero or more predicates) ' может содержать ноль или несколько логических выражений. Предикаты используются для уточнения множества узлов, выбранных маршрутом. В языке XPath маршрут записывается в виде специального выражения. Он воз' вращает множество узлов, отобранных в результате выполнения этого выражения. Маршруты могут также возвращать значения логического, числового, а при некото' рых условиях ' строкового типа.
Язык XML позволяет применять различные способы описания для достиже' ния конкретной цели. Например, для указания маршрута к конкретному объекту можно использовать два типа синтаксиса. Сокращенный синтаксис обеспечивает более быструю запись XPath'выражений. Пример. Сравним несколько XPathвыражений щенной и полной формах:
записанных в сокра
I center I
www.books-shop.com
Правила описания типа документа XHTML DTD Допустим, необходимо описать его для некоторого элемента р, тогда список зна' чений для атрибута принимает следующий вид: р align (left I center I Более детально компоненты будут рассмотрены в разделах «Параметрические компоненты» и «Планирование глобальных компонентов и атрибутов». Здесь мы лишь отметим, что обычно компоненты применяются для представления допол' нительного содержания документа или объектов. Например, URI является компо' нентом, атрибут src элемента имеет компонентный тип.
Правила описания типа документа XHTML DTD Проанализируем уже существующий документ подобного вида. Поскольку в главе 16 вы будете работать с правилами описаний типов XHTML'документов, вам понадобится знание характерных модулей. Самым простым DTD XHTML' документом является описание XHTML 1.0 Strict DTD, которое можно получить по адресу http://www.w3.org/TR/xhtmll/DTD/xhtml'strict.dtd. Пример. В начало помещаются некоторые информационные комментарии: ин формация о разработчике, дата ревизии документа, глобальные и системные иденти фикаторы. После сведений о версии продукта идет сегмент объявлений для множества компонентов. В нем содержатся данные о символьной мнемонике, именах, импорти рованных в данный документ из рекомендаций RFC (Requests for Comments запросы на комментарии: серия документов IETF, начатая в году и содержащая описания набора протоколов Internet и связанную с ними информацию), общие атрибуты, ком поненты, созданные для представления групп имен элементов. Объявления элемен тов и атрибутов представлены в секции, закомментированной как Document Structure (структура документа) см. рис. Сначала приводятся описания элементов и ат рибутов, которые включаются в основные компоненты структуры. Корневой элемент для XHTML описывается так: html (head, html #FIXED >
Эти записи расшифровываются следующим образом: элемент html должен содержать единственный элемент head и единственный элемент Он может включать атри буты, описываемые параметрическим компонентом (где I internationalization международный стандарт); число 18 определяет количество символов перед послед ним N, а также атрибут xmlns. Каждая дополнительная секция имеет комментарий, элементы которого располага ются с обеих сторон, ограничивая тем самым секцию (см. рис. Кроме того, документ для удобства пользователя снабжен дополнительными комментариями.
www.books-shop.com
Описание типа документа В том же документе раскрыты описания компонентов phrase,
misc:
%phrase "em I strong I I code I q I sub I sup I samp I kbd I var I cite I abbr I acronym I select I textarea I label I I del I script I Описание элемента
примет вид:
I a I br I span I bdo I objects I applet I img I map I iframe I tt I i I b I big I small I u I s I strike I font I basefont I em I strong I dfn I code I q I sub I sup I samp 1 kbd I var I cite I abbr I acronym I input I select I textarea I label ! button I ins I del I script I noscript)*>
Теперь можно перейти к объявлению
списка атрибутов элемента
> Компонент attrs определен следующим образом:
> Продолжим действия, предпринятые на предыдущих этапах, применительно к атри бутам. Начнем с компонента coreattrs : "id
class style title
% coreattrs ID ttlMPLIED CDATA ttlMPLIED ttlMPLIED"
>
Добавив к существующей записи ATTLIST эти определения, получим: id class style title
ID CDATA
ttlMPLIED ttlMPLIED ttlMPLIED ttlMPLIED
www.books-shop.com
Правила описания типа документа XHTML DTD Следовательно, там, где в определении требуется атрибут align (выравнивание изображения фрагментов текста), вместо его полного описания достаточно поста вить символ %, ним имя соответствующего компонентапараметра. Именно так сделано для элемента
>
Здесь присутствуют еще два компонентапараметра: Inline и attrs. Один из них при меняется для замещения описаний элемента, другой для замещения списка значе ний атрибутов. Параметрические описания в XHTML обеспечивают удобство анализа правил описаний типов данных. Рассмотрим каждый параметр и результирующую структуру объявлений. Первый компонент, inline, который отвечает за модель содержания для элемента определен следующим образом:
|
I
Компонент inline отражает только модель содержания, выбор между отсутствием и множеством для элементов либо модель, представленную компонентами Inline или misc. Заменив компонент Inline его расширением, получим следующее объявление для элемента
I
I
Теперь обратимся к компоненту inline: "a I
I
I
I
Раскрыв все включения, получим результирующее объявление для элемента в виде:
I a I
I
I
I
I
На следующем этапе дадим полное определение компонента special: %special I span I
I object I applet I img I map I
В последней записи дополнительные компоненты отсутствуют, а представленные элементы полностью раскрывают содержимое компонента special. Следовательно, объявление элемента принимает вид: (#PCDATA I a I br I span I bdo I object I applet I img I map I | I I >
Далее необходимо раскрыть компонент f ontstyle. Его описание в XHTML DTD рас полагается сразу за объявлением компонента I i | b I big I small I
I s I strike I font I
basefont
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Описание типа документа Параметр events раскрывается следующим образом: % events "onclick ondblclick
onmouseover onmousemove onmouseout onkeypress onkeydown
ttIMPLIED ttlMPLIED ttlMPLIED ttlMPLIED ttlMPLIED #IMPLIED ttlMPLIED ttlMPLIED"
> В представленных записях необходимо раскрыть только содержимое компонента Script: %Script Включим полученные результаты в представленное описание
ID CDATA ttlMPLIED CDATA ttlMPLIED CDATA ttlMPLIED NMTOKEN #IMPLIED NMTOKEN dir ttlMPLIED onclick CDATA #IMPLIED ondblclick CDATA ttlMPLIED onmousedown CDATA ttIMPLIED onmouseup CDATA onmouseover CDATA ttIMPLIED onmousemove CDATA onmouseout CDATA onkeypress CDATA onkeydown CDATA onkeyup CDATA
> На заключительном этапе следует расшифровать запись для атрибута и включить ее в объявление ATTLIST: %TextAlign "align Раскрытые описания элемента ный вид:
I center I
ttlMPLIED">
и его атрибутов ATTLIST приобретают завершен*
www.books-shop.com
описания типа документа XHTML DTD
>
Анализируя представление компонента coreattrs, на следующем шаге необходи мо раскрыть содержимое его составляющих Stylesheet и Text: % Stylesheet % Text Можно записать: id class style title
ID CDATA CDATA CDATA
>
Раскроем содержимое %
dir
ttlMPLIED"
>
В этих записях необходимо раскрыть только компонент % LanguageCode В правилах описания типов наложение дополнительных ограниче) ний на тип кроме тех, которые диктуются требования) ми по присвоению имен, невозможно. Однако в комментариях указывается, что ярлык должен кодировкам списка языков, представленных в документе Расширенная запись для ATTLIST принимает вид:
ID ttlMPLIED CDATA CDATA #IMPLIED CDATA #IMPLIED NMTOKEN NMTOKEN #IMPLIED
>
www.books-shop.com
Описание типа документа не означает, что, прежде чем объявить конкретный элемент или список атрибу' тов, для них необходимо создать множество сложных описаний компонентов. На практике это происходит следующим образом. Как только разработчик за' мечает, что ему приходится постоянно повторять некоторые выражения, то для сохранения места в проекте, сокращения времени на его отладку и улучшения чи' таемости самого документа в процессе анализа он обращается к параметризован' ным компонентам. После реализации необходимого компонента нужно вернуться к началу документа и уже там объявить его. Естественно, данный процесс являет' ся итерационным.
Резюме В этой главе вы познакомились с правилами чтения определения типа доку' мента (DTD), для описания которого используется расширенная форма Бэкуса' Наура, и научились объявлять входящие в состав любого документа элементы и списки атрибутов. Вы убедились, что компоненты являются мощным средством для упрощения описаний элементов. Далее будет рассмотрен другой механизм описания правил языка ' XML'схемы.
www.books-shop.com
Правила описания типа документа XHTML DTD I a I br I span I bdo I objects I applet I img I map I iframe I tt I i I b I big I small I u I s I strike I font I basefont I em I strong I dfn I code I q I sub I sup I samp I kbd I var I cite I abbr I acronym I input I select I textarea I label I button I ins I del I script I
CDATA CDATA CDATA CDATA CDATA onmousemove CDATA CDATA onkeypress CDATA CDATA onkeyup CDATA align (left I center I
«IMPLIED
>
Вернемся к параметризованной версии она удобнее и проще:
>
Аналогичный процесс раскрытия сути параметризованного описания объектов можно провести для любого элемента или атрибута, представленных в описании типов XHTML DTD либо данных конкретного приложения.
Планирование глобальных компонентов и атрибутов В структуре XHTML параметризованные описания компонентов широко рас' пространены, однако использовать этот механизм в более простых приложениях совершенно необязательно, а порой и нежелательно. Рассматривая окончательный вариант DTD, можно сказать, что объявление компонентов должно предшествовать их применению в качестве аргументов опера' торов или инструкций внутри определения типов документов. Конечно, сказанное
www.books-shop.com
Глава 14. Модули в XHTML Язык HTML, несомненно, является мощным средством создания документов в World Wide Web. Его основное преимущество в том, что каждая версия языка со' держит множество новых возможностей. Однако область его применения ограни' чивалась элементами и атрибутами, представленными в рекомендациях по HTML. Для создания более совершенных приложений, описания новых структур и их свойств требовалось выйти за пределы HTML. В данной главе рассказывается: а р а а
о принципах работы модулей; о методах группировки элементов в абстрактные модули; о реализации абстрактного модуля в правилах описания типов документа; о способе объединения предопределенных модулей в новое описание типов документа.
Как
модули
Язык XML более гибок, чем HTML, однако значительно усложняет работу, поскольку забота об описании любой части документа лежит на плечах дизайне' ра. XHTML был задуман как переходное звено между этими языками. Для до' стижения данной цели требуются средства, позволяющие добавлять или запре' щать конкретные множества и избавляющие дизайнеров от рутинной работы. К таким механизмам относятся модули XHTML (XHTML Modularization). Мо' дульное конструирование предоставляет строительные блоки, которые можно комбинировать для построения семейства новых языков.
Определение
модулей
Первым шагом для снятия ограничений, имеющихся в версии XHTML 1.0, было разделение элементов на логические группы. Каждая из них включала в себя элементы с похожей семантикой, по тому же критерию одна группа отделялась от другой. Эти группы получили название абстрактных модулей (abstract modules), поскольку в их определении отсутствует информация для машинной обработки: мо' дули описываются обычным языком. Выражения, для построения абстрактных модулей XHTML, не являются элементами грамматики XHTML, однако они похожи на соглашения, которые применяются для описаний типов документа в XML. Дизайнеры, работающие с XML, оценят удобство такого представления.
www.books-shop.com
Часть III модульных структур Глава 14.
Модули в XHTML
Глава 15.
Создание собственных
Глава 16.
Комбинирование собственных модулей с XHTML
www.books-shop.com
Модули в XHTML a IDREF ' ссылка на экземпляр элемента, атрибут которого имеет указанный ID; a IDREFS ' перечень ссылок ID. Его элементы разделены только запятыми; a NAME ' имя. Тип, похожий на ID, но в данном случае требование уникально' сти необязательно; a ' ярлык. Имя, состоящее из буквенно'цифровых символов. Допол' нительно можно использовать следующий символьный набор: . (точка); , (запятая); ' (дефис); _ (символ подчеркивания); : (двоеточие); a ' список ярлыков типа NMTOKEN, отделяемых друг от друга про' белами; a PCDATA ' обрабатываемые символьные данные с любыми внедренными компонентами. Буквенно)цифровые символы для данных типа NMTOKEN необяза) должны взяты из английского или другого конкретно) го языка. Любой символ, представленный в любом мировом языке, является частью указанного множества. Модули в XHTML определяют 19 новых типов данных по сравнению с типа' ми, приведенными в стандарте XML (табл. 14.2). Большинство описаний взято из документов RFC (Requests for Comments ' запросы на комментарии), опублико' ванных группой Internet Engineering Task Force (IETF), которая занимается во' просами стандартизации в Internet. Полный перечень документов группы IETF доступен по адресу ftp.isi.edu/in)notes/rfc)index.txt. Таблица 14.2. Типы данных, определенные в стандарте XML
Тип данных
Описание
character
Отдельный символ (любого алфавита)
charset
Кодировка символов в соответствии с RFC2045 (например, USACSII, ISO88591) Список символов, как определено charset. Элементы списка отделяются друг от друга пробелами Описание цвета в соответствии со спецификацией в SRGB. Может быть представлено значением с префиксом # либо одним из 16 наименований (детальная информация представлена в приложении) Тип среды в соответствии со спецификацией RFC2045 Список типов сред в соответствии со спецификацией RFC2045. Элементы списка отделяются друг от друга запятыми Информация о дате и времени Имя фрейма, используемого в качестве получателя при загрузке документа или при других действиях в этом фрейме Код, определяющий язык в соответствии со спецификацией RFC1766 (например, en английский, f r французский)
Color
FrameTarget
www.books-shop.com
Как работают модули Для совместимости с моделью содержания элементов и выполнения требова' ний к представлению данных и атрибутов вводится ряд специальных синтакси' ческих соглашений. Соответствие абстрактного описания модуля схемам по их кон) струированию, принятым в XHTML (XHTML Modularization Recom) mendation), необязательно. Однако авторы модулей должны созда) вать структуры, которые легко анализировать и использовать, обеспечивая, кроме того, дизайнеров справочными по) собиями. Рассмотрим определение модуля List в «XHTML Modularization Recom' mendation» (см. раздел 5.2.4, «List Module», посвященный элементам списка) ' табл. 14.1. Таблица
Элементы и атрибуты,
Элемент (список
Атрибуты определений)
dt (выделяемый элемент)
Common
в модуле списков Минимальная модель содержания (dt I dd) +
Common
dd (описание выделенного элемента) Common
I Inline) *
( PCDATA I
*
(упорядоченный список)
Common
li+
(неупорядоченный список)
Common
li +
списка)
common
PCDATA I inline) *
Данный модуль также вводит понятие множества содержания списка (content set list) с минимальной моделью содержания (dl I ol I ul) мно) жеству потокового содержания (flow content) модуля Text. Приведенное ранее определение объяснить достаточно просто. Модуль содер' жит используемые для создания и описания упорядоченных и неупорядоченных списков. В таблице перечислены все элементы, состоящие в мо' дуле на правах членов, их разрешенные атрибуты и минимальные модели содержа' ния (для каждого элемента в отдельности).
Просмотр
допустимых атрибутов
Чтобы не создавать список допустимых атрибутов для каждого элемента, в пра' вилах модульного конструирования в XHTML вводятся коллекции атрибутов (attribute collections). Прежде чем приступить к рассмотрению атрибутов, содер' жащихся внутри каждого такого множества, необходимо изучить типы допусти' мых атрибутов. В рекомендации XML 1.0 определены восемь типов данных, обра' зующих основу для всех типов, допустимых в языке XHTML: CDATA — символьные данные. Здесь может быть представлен любой символ, кроме ID ' уникальный идентификатор для конкретного экземпляра элемента. Только один атрибут элемента может иметь такой тип: его значение внутри документа должно быть уникальным;
www.books-shop.com
I
Модули в XHTML
Рассмотрим первый элемент модуля списков ' Его минимальная модель содержания описывается выражением вида | +. Оно расшифровывается следующим образом: элемент dl должен содержать хотя бы один элемент dt и/или элемент dd. Индикатор появления (символ +) указывает, что внутри элемента dl может размещаться один либо несколько элементов dt и dd. Как множество допустимых атрибутов нередко описывается коллекцией, так и минимальная модель содержания представима в качестве коллекции элементов, называемой множеством содержания. Минимальная модель элемента dt, опреде' ляемая записью I *, является именно такой коллекцией. Эта мо' дель указывает, что элемент dt способен включать обрабатываемые символьные данные и любые элементы в множество содержания Любая из составля' ющих элемента dt может присутствовать ноль и более раз. В описании модуля Text множество содержания Inline определяется следу' ющими элементами: abbr, acronym, br, cite, code, em, kbd, q, samp, span, strong, var. описание модуля содержится в приложении А на сайте Там же можно найти ссылку на его реализацию Продолжим рассмотрение модуля List, обратившись к его реализации в DTD.
Модули DTD или схемы Реализация абстрактного модуля описывается в виде фрагмента правил DTD. Фрагменты DTD от абстрактных модулей, которые впоследствии составят новый тип документа, объединяются в одно определение. Полученный тип становится новым элементом в совокупности типов XHTML'документов (XHTML Family Member Document Type) и может использоваться для проверки состоятельности документа с помощью анализатора или программ типа W3C Validation Service (см. главу 8). Консорциум предполагает в модули на языке XML )Schema, но пока этот язык находится в стадии раз) работки, модули в XHTML создаются на базе правил описания типов (DTD). Описание модульных фрагментов в DTD основано на использовании пара' метрических компонентов. Для представления абстрактных составляющих мо' дулей шесть категорий компонентов, каждая из которых подчи' няется специальному соглашению по применению наименований и определяется суффиксом: а . mod ' параметрические компоненты, представляющие DTD'модуль. Мо' гут храниться в отдельных файлах, которые идентифицируются таким же суффиксом;
www.books-shop.com
Как
модули
Таблица 14.2. Типы данных, определенные в стандарте
Тип данных Length
Описание Значение, указываемое в пикселах либо в процентах от доступного про странства по горизонтали и вертикали Одно имя или список имен из определенного множества типов ссылок. Полный список типов можно найти в приложении Список типов сред, его элементы разделяются запятыми. Перечень распоз наваемых дескрипторов представлен в приложении Выражение может быть указано в абсолютных величинах (тип Length) или в относительных. Относительная величина задается выражением вида где i integer (целое). Каждая относительная длина получает свободную площадь, которая будет пропорциональна целой величине, предшествую щей в записи символу * (он эквивалентен Например, запись 1* , 3* устанавливает деление свободного пространства в соотношении
Number
Один или несколько цифровых символов
Pixels
Целое значение, указывающее количество пикселов
Script
Данные этого типа должны быть переданы интерпретатору языка скриптов, они не рассматриваются как текст на языке XHTML
Text
Произвольные текстовые данные, которые могут быть прочитаны пользова телем Универсальный идентификатор ресурса, как определено в Список универсальных идентификаторов ресурсов. Элементы списка отде ляются друг от друга пробелами
Обратимся к определению модуля List. Каждый из допустимых компонентов атрибута ссылается на коллекцию атрибута Common (общая). Она содержит сле' дующие виды других коллекций: Core (ядро), Events (события), I18N (междуна' родный стандарт) и Style (стиль) ' см. табл. 14.3. Таблица 14.3. Атрибуты, составляющие коллекцию Common Наименование коллекции
Атрибуты
Core (основная)
class
(совместимость с международными языками) Events (события, обрабатываемые скриптами)
id (ID), title (CDATA)
onclick (Script),
(Script), (Script), (Script), onmousemove (Script), (Script), onkeypress (Script), (Script), (Script)
Style (стиль)
Минимальная
содержания
Модель содержания описывает элементы или данные, присутствующие в дру' гом элементе. В данной секции определения абстрактного модуля сохранен син' таксис XML, используемый в DTD (см. главу 13).
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Модули в Ниже приведены составные имена параметрических компонентов для каждо' го элемента, входящего в состав модуля. Составное имя включает в себя имя эле' мента и суффикс . qname. Например, составное имя параметрического компонен' та, представляющего элемент принимает вид qname. % "dl" > % > % "dd" > % > % > % > В следующей секции полное описание элемента dl сводится к объявлению од' ного параметрического компонента: Определение списка (Definition List) % "INCLUDE" >
I
)+" >
>
Прочитать это описание достаточно легко, если раскрывать его по алгебраи' ческому правилу освобождения от скобок. Сначала рассматривается параметри' ческий компонент При описании два параметри' ческих компонента . qname, используемые для элементов dt и dl. Расширенная форма синтаксиса, примененного к данным элементам, имеет вид: %
>
Объявление элемента, следующее непосредственно за параметром определяет сам элемент. Если его раскрыть, оно будет выглядеть так: dl >
content,
Вернемся к началу секции. Параметрический компонент описы' вается таким образом, чтобы включать и объявление параметрического компонен' та content, и объявление элемента, которое сведет полное описание к одно' му компоненту. Если используется запись типа: "INCLUDE" > тогда в модуль помещается не только элемент dl, но и остальная информация, ко' торая в расширенном виде необходима анализатору. Определение списка атрибутов элемента dl происходит по той же схеме. Пе' речень атрибутов описывается одним параметрическим компонентом и включает' ся в модуль с помощью ключевого слова INCLUDE. Ссылка на коллекцию атрибу' тов Common, которая может находиться в любом месте завершенного описания осуществляется посредством параметрического компонента, в записи кото' рого должен присутствовать суффикс . attrib: % dl.attlist "INCLUDE" >
www.books-shop.com
Как работают модули a
' в больших модулях можно включать или исключать модули DTD, используя условные секции. Управляют модулем, представленным па' раметрическим компонентом с указанным суффиксом, с помощью ключевых СЛОВ IGNORE И INCLUDE; . content ' компоненты с данным суффиксом используются для парамет' ризации модели содержания типа элементов; a ' элементы, принадлежащие к одному классу, описываются пара' метрическими компонентами с указанным суффиксом; . mix ' элементы, относящиеся к различным классам, могут быть представ' лены единственным параметрическим компонентом с таким суффиксом; . attrib — группа имен ярлыков, которая соответствует одной или несколь' ким завершенным спецификациям атрибутов внутри объявления Может быть описана параметрическими компонентами, принадлежащими данной категории. Рассмотрим применение указанных компонентов в одном из предопределен' ных модулей ' модуле List (см. также главу 16). Модуль Рекомендациями W3C определено, что модули начинаются с комментариев, имени файла, условий авторского права и даты последней редакции документа: XHTML Модуль списков Файл: XHTML является преобразованием HTML в модульное приложение XML. Создан в 19982000 годах специалистами консорциума W3C (MIT, Все права защищены. Последняя редакция: $Id: v 1.7 2000/07/03 13:46:01 shane Exp$ SMI Затем следуют публичные и системные идентификаторы, использованные для данного модуля и даты последней редакции: Этот модуль зарегистрирован открытым и системным PUBLIC SYSTEM
XHTML Lists
(отсутствуют) Следующий сегмент комментариев кратко описывает назначение данного модуля:
Списки dt, dd, В данном модуле объявляются типы элементов списка
и используемые ими атрибуты.
www.books-shop.com
Модули в XHTML dt: Определение понятия (Definition Term) % "INCLUDE" >
( #PCDATA I
> >
> [ #PCDATA I
> >
Завершение описания элемента
% dd.attlist "INCLUDE" > [
> ]]> [ > Завершение описания элемента % ol.attlist "INCLUDE" >
> Завершение описания компонента ol.attlist Маркированный список (Unordered List, bullet % > > ELEMENT >
www.books-shop.com
Как работают модули
> Завершение описания компонента
Аналогичным образом происходит параметризация объявлений элементов и их атрибутов для остальных элементов, включенных в модуль. Полное описание модуля приведено в листинге 14.1. Листинг
Представление модуля
'
XHTML Модуль списков Файл: XHTML является преобразованием HTML в модульное приложение XML. Создан в 19982000 годах специалистами консорциума W3C (MIT, Все права Последняя редакция: $Id: v 1.7 2000/07/03 13:46:01 Exp$ SMI Этот модуль зарегистрирован открытым и системным PUBLIC SYSTEM
XHTML Lists
Списки dt, В данном модуле объявляются типы элементов списка и используемые ими атрибуты % % % dd.qname % % ul.qname % dl: Определение %
"dl" > "dt" > "dd" > "ol" > "ul" > "li" > списка (Definition List) > | >
>
> Завершение описания компонента dl.attlist
www.books-shop.com
Модули в %
>
Зарезервировано для будущего применения с профилями документов > % > Возможности интернационализации Этот компонент используется для объявления элементов и которые служат для поддержки Выберите ключевое слово (INCLUDE либо IGNORE) в соответствии с требованиями собственного проекта языка разметки % "IGNORE" > ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Описание модели содержания. Помните о возможности модификации данной модели или ее замены путем внесения изменений в следующее объявление ENTITY
PUBLIC SYSTEM
XHTML
Document Model >
Место для переопределения созданного ранее каркаса документа > Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, перед объявлением каркаса %
"IGNORE" >
% "IGNORE" > Модульное построение каркаса % "INCLUDE" > % PUBLIC
XHTML 1.1 Modular Framework >
>
www.books-shop.com
Комбинирование предопределенных модулей ]]> % "INCLUDE" >
( #PCDATA I
)*
> >
Завершение описания элемента % li.attlist "INCLUDE" >
> Завершение описания компонента li.attlist ]]>
Комбинирование предопределенных модулей Преимущество заключается в относительной простоте их объединения в любое количество новых языков. Web'дизайнер редко нуждается в создании новых модулей, однако при добавлении и исключении уже определен' ных модулей такая возможность не покажется излишней (см. главу 16).
Драйверы DTD / средство связывания модулей Специалистами консорциума W3C разработан шаблон новых типов докумен' тов DTD, основанный на модулях XHTML (см. листинг 14.2). Полное описание этого шаблона можно
по адресу
Листинг 14.2. Шаблон описания типов
>
>
www.books-shop.com
Модули в XHTML Первые изменения, которые необходимо внести, касаются наименования фай' ла, формального публичного идентификатора нового языка и пространства имен, связанного с данным языком: Шаблон правил описания типов документа (DTD) Файл: TableML.dtd >
/EN"
>
%
>
В данном примере мы не станем вводить новые модули в структуру языка раз' метки: секция для внесения изменений в модель документа остается прежней. До' бавим в описание DTD базовый модуль таблиц. Это необходимо сделать сразу после комментария: «Здесь можно размещать ваши собственные модули»: Здесь можно размещать ваши собственные модули. Применяйте базовые формы описаний, представленные выше. Обратите внимание на включение в файл каталога для каждого задействованного вами модуля открытого (public В этом месте разрешается также использовать модули, определенные стандартами W3C ''>
Начало описания базового модуля по форме не отличается от описаний осталь' ных модулей. Специфические отличия, связанные с реализацией базового модуля, представлены в документе по (Modularization document), ко) торый можно по адресу
Базовый модуль таблиц
"INCLUDE" > XHTML 1.1 Basic Tables
Окончательный вариант описания правил DTD представлен в листинге 14.3.
www.books-shop.com
Комбинирование предопределенных модулей
Завершение описания модуля % "INCLUDE" > % PUBLIC
XHTML 1.1 Basic Text >
Hypertext Module (Модуль % % PUBLIC
обязательный
обязательный > "INCLUDE" >
XHTML 1.1 Hypertext >
Lists Module (Модуль списков) обязательный % "INCLUDE" > % PUBLIC
XHTML 1.1 Lists >
Здесь можно размещать ваши собственные модули. Применяйте базовые формы представленные Обратите внимание на включение в файл каталога для каждого задействованного вами модуля открытого (public В этом месте разрешается также использовать модули, определенные стандартами W3C Document Structure Module (Модуль структуры документа) обязательный > % "INCLUDE" > % PUBLIC
XHTML 1.1 Lists >
Завершение описания шаблона DTD Используя файл с шаблоном DTD, можно рассмотреть механизм связывания различных модулей для создания нового языков разметки. В следующем примере мы объединим базовые модули, обязательные для лю' бого члена XHTML'семейства языков, и добавим предписанный стандартом W3C базовый модуль таблиц (Basic Tables Module).
www.books-shop.com
Модули в XHTML %
"IGNORE" >
"IGNORE" >
% PUBLIC
XHTML
Modular Framework >
Место для переопределения описаний, следующих за построением каркаса > Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, после объявления каркаса %
"IGNORE" >
Завершение описания модуля % PUBLIC
Модуль гипертекста % % PUBLIC
>
XHTML 1.1 Basic Text >
"INCLUDE" >
XHTML 1.1 Hypertext >
Модуль списков (обязательный) % PUBLIC
XHTML 1.1 Lists >
www.books-shop.com
Комбинирование предопределенных модулей Листинг 14.3. Правила типов языка разметки таблиц ''> Файл: > Шаблон правил описания типов (DTD) Здесь представлен файл управления Вы можете изменять его по своему желанию, но обратите внимание на комментарии относительно порядка следования описаний используйте для регистрации следующий публичный
%
XHTMLTABLEML
>
Зарезервировано для применения с пространством имен % > % XLinkns.attrib
>
>
% >
"IGNORE" >
PUBLIC SYSTEM
XHTML
Document Model >
Место для переопределения созданного ранее каркаса документа
>
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
XHTML Резюме В данной главе вы познакомились с методами логического группирования эле' ментов XHTML с одинаковой семантикой. Каждая простейшая группа формиру' ет абстрактный модуль, описание которого начинается с кратких рекомендаций по его использованию, таблицы содержащихся элементов, перечня допустимых атри' бутов и минимальной модели содержания. Любой абстрактный модуль имеет со' ответствующую реализацию DTD, которая при объединении с остальными моду' лями позволяет создать полный DTD, применяемый для представления нового языка. В следующей главе рассказывается о технологии модульного построения, по' зволяющей создать абстрактный модуль и соответствующую ему DTD'реализа' цию. Вы научитесь разрабатывать модель содержания, а также описывать состав' ные имена, параметрические компоненты, объявления для элементов и списка атрибутов.
www.books-shop.com
Комбинирование предопределенных модулей Здесь можно размещать ваши собственные модули. Применяйте базовые формы описаний, представленные Обратите внимание на включение в файл каталога для каждого задействованного вами модуля открытого (public . В этом месте разрешается также использовать модули, определенные стандартами Базовый модуль таблиц % % PUBLIC
"INCLUDE" >
XHTML 1.1 Basic Tables >
Модуль структуры документа (обязательный) % "INCLUDE" >
XHTML 1.1 Document Structure >
Применение модульных DTD в Web Пример. Применение окончательного варианта модульных правил DTD в собственных Webдокументах не сложнее процесса реализации любых других описаний DTD. Не обходимо дать соответствующую ссылку на эти правила в объявлении пра вильно оформив публичный общий (PUBLIC) и системный (SYSTEM) идентификаторы. Например, документ, использующий шаблон языка разметки будет выглядеть следующим образом:
''>
XHTML Recipe
В секции использовано несколько соглашений. Так, имя подмодуля содержит суффикс . mod, соотнесенный с суффиксом параметрического компонента, который потребуется позднее ' в процессе связывания компонентов модулей для идентифи' кации элемента. Следующее соглашение касается формального публичного идентификатора (Formal Public Identifier ' FPI), имеющего специальную форму записи. Строка всегда начинается с символов после которых указывается владелец модуля (в данном случае ' компания WebGeek, Затем вновь последовательность сим' волов / слово ELEMENT (обязательно заглавными буквами), заголовок и версия модуля. Завершает запись идентификатора FPI еще одна пара символов / /: XHTML Recipe Qnames
Системный идентификатор ' это URI, по адресу которого размещено содер' жимое файла. Выражение для него может представлять либо полную, либо сокра' щенную форму записи (сокращенный вариант относится к описанию локального URI). В следующем примере использован полный вариант: :
URI, применяемый для представления пространства имен, необязательно дол' жен иметь содержание. Поэтому обращение к нему вряд ли приведет к результату, который можно получить, адресуясь к URL. Следующая запись соответствует началу описания параметрических компонен' тов, задействованных в модуле XHTML Framework. Эти параметры предназнача' ются для построения окончательной формы правил описания типов документа. Пер' вые множества независимо от того, являются они в новом модуле элементами или нет, используют составные пространства имен. По умолчанию значение данной оп' ции устанавливается равным В нашем модуле компоненту компонент
соответствует параметрический
www.books-shop.com
Создание модуля с помощью правил DTD рецептов описывает структуру разметки документа, который содержит методы и перечень ингредиентов, необходимых для приготовления кон' кретного блюда. В табл. представлены элементы и атрибуты, описанные в дан' ном модуле. Таблица Элементы, атрибуты и минимальные модели содержания для проектируемого модуля
Минимальная модель содержания
Элементы
Атрибуты
recipe ingredients
Common, CDATA, Common
ingredient prep
Common, quantity, unit, item Common
category
ingredients, prep EMPTY I Flow) +
При обращении к данному модулю элемент добавляется в блок мно' жества содержания. Он определяет множество содержания с минималь' ной моделью ingredients, prep ' и добавляет ее в набор поскольку они оба описываются текстовым модулем.
Создание модуля с помощью правил DTD Реализация правил, описывающих тип документа, обычно представлена двумя модулями: составных имен module) и объявлений (Declaration module).
Работа с модулями QName ' это XML'термин, характеризующий составные имена (qualified names). Они понадобятся, если пространства имен XML будут использоваться для зада' ния различий между элементами, принадлежащими различным языкам разметки. Например, в структуре XHTML существует элемент t i t l e , который применяет' ся для заголовка документа. В других языках тот же элемент служит для указания ученого звания некоторого лица или для обращения к кому'либо, то есть замещает слова типа «доктор», «ваше преподобие» и даже «Ее Величество». Пространство имен XML указывает на принадлежность определенного эле' мента какому'либо языку с помощью префикса, который следует за его именем. Таким образом, описание элемента t i t l e , языку XHTML, в ви' де составного имени принимает вид title. Модуль QName содержит параметрические компоненты, применяемые для хра' нения составных имен тех элементов, которые должны быть описаны в модуле объявлений. Такая структура является гарантией того, что в конкретных условиях данные элементы будут представлены собственными составными именами. Более имен XML описываются в докумен) тах сайта, размещенного по адресу http://www.w3.org/TR/REC)
www.books-shop.com
Создание собственных такого параметра прибавляется суффикс . qname. Значения этого компонента все' гда будут иметь следующий вид: Здесь строка идентифика' ции модуля заменяет слово Module, а слово name ' место для записи имени эле' мента, например: Таким образом, необходимо ввести следующие записи:
основного модуля завершено. Полностью он
Описание подраздела QNames для нового mod
рецептов) модуль составных имен >
PUBLIC SYSTEM
XHTML Recipe
#FIXED ]]>
— Модуль рецептов сайта
www.books-shop.com
Создание модуля с помощью правил DTD Параметрический компонент с указателем создается для разреше' ния возможности переопределения. Экземпляр документа настраивается таким образом, что наименования всех элементов получают префикс. Далее находится объявление рабочего пространства имен. Работа с ним, воз' можно, окажется наиболее сложной. Это пространство включено в проект со сле' дующей целью. Модули XHTML позволяют определить конфигурации, где тра' диционные правила описания типов документа XML могут использоваться как с поддержкой пространств имен XML, так и без нее. Данный механизм, называе' мый обход пространства имен (namespace hack) определяет последовательность шагов, которые позволяют разрабатывать типы документов, соответствующих тре' бованиям пространства имен XML. Методы достижения этих целей можно пред' ставить следующим образом: а каждый элемент, описанный в модуле, имеет символическое имя; а по желанию разработчика именам элементов можно присвоить префикс, со' ответствующий идентификатору области видимости для данных имен; а идентификатору пространства имен разрешается присваивать любое значе' ние, соответствующее URI пространства имен ' неповторяющемуся иден' тификатору; а независимо от решения автора ' использовать пространство имен или отка' заться от него, если структура документа является корректной, ' документ считается состоятельным. Пространства имен выглядят несколько неопределенно. Возможно, по этой причине они не очень широко используются разработчиками Web'документов. Од' нако с увеличением количества коллекций элементов, создаваемых для XHTML' модулей, пространства имен потребуются, чтобы включить связанную с элемен' том или атрибутом семантику и избежать коллизий между именами. Вернемся к нашему примеру. Информация, представленная в начале файла подраздела, была закомментирована, то есть вступительная часть предназначалась для пользователя, а не для компьютера. Начальная фраза выглядит так:
www.books-shop.com
Создание >
> EMPTY>
quantity CDATA #REQUIRED unit CDATA item CDATA
> (PCDATA I
>
Полное описание подраздела объявлений представлено в листинге 15.2. Листинг Полное описание подмодуля объявлений —
рецептов сайта WebGeek
XHTMLWebGeek Recipe 1.0//EN
Модуль рецептов, размещенный на сайте компании WebGeek
Этот модуль определяет структурные компоненты Webстраницы, посвященной кулинарным рецептам
>
> ]]>
"xmlns
www.books-shop.com
Создание модуля с помощью правил DTD
*
XHTMLWebGeek Recipe
>
Следующая секция также отводится под комментарии. Здесь называется имя файла, указывается список элементов, которые будут объявлены, дается базовое определение назначения модуля: Модуль
размещенный на сайте компании WebGeek
Этот модуль определяет структурные компоненты посвященной кулинарным рецептам
В первой декларативной секции названы и описаны параметрические компонен' ты, используемые внутри списка атрибутов ATTLIST, для каждого объявляемого элемента. Параметры необходимы для управления присвоением префиксов всем ат' рибутам, если модуль применяется для создания правил автономного (standalone) определения типов документа. После объединения с модулем каркаса XHTML зна' чения параметрических компонентов будут переопределены с помощью глобально' го атрибута attrib:
> ]]>
tfFIXED >
Теперь каждый элемент определяется посредством параметрических компо' нентов, описанных в подмодуле вместе с любыми требуемыми определе' ниями
title CDATA category CDATA #IMPLIED
>
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Глава 16. Комбинирование собственных модулей с XHTML Изучая модули XHTML, вы познакомились с процессом их создания и определе' нием моделей содержания. Для построения нового языка разметки, основанного на XHTML, необходимо объединить написанный вами модуль с существующими модулями W3C. Завершающий этап разработки нового языка состоит в формировании оконча' тельного варианта правил описания типа документа, входящих в DTD. Область действия правил DTD ' это формализованное пространство, объединяющее все созданные вами и предписанные XHTML'модулями, это структура, которая по' зволяет проводить проверку состоятельности всех документов, созданных в рам' ках нового языка. В этой главе вы познакомитесь: а с методами, которые дают каркасу модульного приложения возможность включать необходимые базовые структуры; а с процедурой помещения собственного модуля в шаблон модульной струк' туры правил DTD; с механизмом, который позволяет редактировать шаблон в соответствии с выбранными способами структурирования документа; а с механизмом создания нового документа, построенного на базе окончатель' ного варианта DTD.
Модуль XHTML Modular Framework Если вы хотите, чтобы созданные вами проекты было легко адаптировать к но' вым требованиям, используйте модуль XHTML Modular Framework. Этот модуль предоставляет структуру для базовых компонентов, куда их необходимо встроить, чтобы схема модульного конструирования в XHTML заработала. Описание дан' ного модуля представлено в листинге 16.1. Листинг
Модуль XHTML Modular Framework
>
Модуль XHTML Modular Framework > Файл: XHTML, по является преобразованным в модульное приложение Время создания: 19982000, W3C (MIT, авторские права защищены.
Редакция:
v 1.7 2 0 0 0 / 0 7 / 0 3
www.books-shop.com
Резюме
title CDATA category CDATA >
EMPTY>
quantity CDATA unit CDATA #REQUIRED item CDATA ttREQUIRED >
(PCDATA I
>
>
Резюме Материал данной главы завершает описание отбора типов данных, хранящих' ся в новых элементах. Здесь проанализированы способы использования этой ин' формации внутри документа и спланирована модель содержания для создаваемых элементов. На основе абстрактных определений построены два подмодуля: (пространство имен) и Declaration (объявления), которые параметризуют и опре' деляют элементы и атрибуты, применяемые для хранения данных. В следующей главе названные подмодули будут включены в расширенные пра' вила DTD для создания языка Family ' расширения языка XHTML. На их основе можно строить Web'страницы, доступные с любого компьютера глобальной сети.
www.books-shop.com
Комбинирование модулей с XHTML %
"IGNORE" > [
% PUBLIC
XHTML Intrinsic Events > %
"INCLUDE" > [
% PUBLIC
XHTML Common Attributes >
% > %
"INCLUDE" >
Реализация модели документа объявлена в модуле управления правилами DTD >
"INCLUDE" >
% PUBLIC
XHTML Character Entities >
''>
Первый сегмент содержит стандартное описание имен файлов, информацию об авторских правах и примечания, связанные с публичным и системным иденти' фикаторами, а именно: PUBLIC
XHTML Modular Framework SYSTEM
Следующая запись указывает на назначение модуля ' в частности, на поддержку компонентов DTD, которые необходимы для всех языков, совместимых с XHTML: нотации (notations) ' соглашения, используемые в различных языках, и часть определений, описанных в XHTML, включая CDATA, FPI и др.; а типы данных (data types) ' определение термов, например: длина, число, пикселы и т.д.; пространство составных имен (namespace'qualified names). Позволяет приме' нять составные имена для внесения отличий между именами XHTML и дру' гих языков разметки;
www.books-shop.com
Модуль XHTML Modular Framework 13:45:27 shane Exp $ SMI Настоящий модуль правил DTD описывается публичным и системным PUBLIC SYSTEM
XHTML Modular Framework
(отсутствует) Модуль Modular Framework Данное приложение подставляет необходимые для поддержки модели модульного конструирования в XHTML, а (соглашения, используемые в языках) +datatypes (определение типов данных) names квалифицированные пространствами имен) attributes (общие атрибуты) model (модель документа) +character entities (символьные компоненты) Модуль Intrinsic Events по умолчанию исключен. Он указан в данном поскольку должен быть подставлен перед модулем Attributes, но после модуля Datatypes "INCLUDE" >
PUBLIC
XHTML Base Architecture
%
"INCLUDE" >
% PUBLIC
XHTML Notations >
%
"INCLUDE" >
% PUBLIC
XHTML Datatypes > %
"INCLUDE" >
% PUBLIC
XHTML Qualified Names
www.books-shop.com
Комбинирование
с XHTML
Здесь представлен файл управления структурой. Вы можете изменять его по своему усмотрению, но обратите внимание на комментарии относительно порядка следования описаний используйте для регистрации следующий публичный XHTML %
XHTML
% > Введите все внешние пространства имен, на которые ссылаются правила данного DTD > > Определите файл моделей содержания для использования в данном каркасе Поддержка двунаправленного текста (справа налево и слева Этот компонент используется для объявления элементов и с помощью которых осуществляется многоязыковая поддержка документа. Установите значение параметрического компонента INCLUDE или IGNORE в соответствии с требованиями собственного языка разметки
> %
"IGNORE" >
Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, перед объявлением каркаса
> %
"IGNORE" >
>]]>
"IGNORE" >
Модуль Modular Framework
%
"INCLUDE"
www.books-shop.com
Интегрирование нового модуля а общие атрибуты (common attributes) ' определение множеств атрибутов, на которые ссылаются существующие и добавленные модули XHTML; документа (document model) — модель, подставленная модулем Document Model. Напомним, что данный модуль объявляется в модуле DTD driver; а компоненты символов (character entities). Позволяет применять в проектах следующие системы кодировки: Latin Symbol, Special Character; а поддержка событий (support for intrinsic events). По умолчанию данная воз' можность исключена. Редактировать перечисленные компоненты совершенно необязательно. Ска' жем только, что модуль Modular Framework предоставляет базовые компоненты, которые необходимы для создания законченного языка разметки, принадлежаще' го к семейству XHTML. Теперь, поскольку вы познакомились практически со всеми элементами моза' ики правил DTD, можно приступать к созданию правил описания типа документа для вашего собственного языка.
Интегрирование нового модуля Чтобы язык соответствовал базовому стандарту XHTML, необходимо соблюс' ти пять условий: а тип документа определяется на основе технологий консорциума W3C (в на' стоящий момент ' DTD); а выбор уникального идентификатора для типа документа проводится с со' блюдением установленных правил наименований; а язык содержит как минимум следующие типы модулей: структура (Structure), гипертекст (Hypertext), базовый текст (Basic Text), списки (List); ни один из предопределенных стандартом W3C модулей не сокращается и не расчленяется. Минимально необходимая модель содержания должна вклю' чать весь перечень элементов и атрибутов; а любой новый элемент или атрибут определяется в собственном простран' стве имен. Консорциум W3C разработал шаблон правил описаний типа документа, кото' рый может применяться в качестве руководства для построения совместимых пра' вил DTD (листинг 16.2). Этот шаблон можно также
Листинг 16.2.
в онлайновом режиме по адре)
шаблон правил DTD New DTD Template
9
www.books-shop.com
Комбинирование модулей с XHTML
Как обычно, первым сегментом будет большой блок комментариев, представ' ляющих имя файла и информацию об идентификаторах:
>
Первый компонент определил публичный идентификатор:
XHTML Recipe
>
Далее следует описать компонент и включить составные имена подмодулей, которые были приведены в главе 15. % SYSTEM
>
Поскольку дополнительные пространства имен не нужны, следующие строки изменять не требуется: Новых пространств имен нет ''> > Определите файл модели содержания для использования в каркасе ''>
%
>
Данный элемент ссылается на модуль определения модели содержания, которую нужно создать. Для модуля рецептов она имеет самую общую форму: это представ' ление с помощью синтаксиса правил DTD минимальной модели, указанной в описа' нии абстрактного модуля, которое содержит расширения, необходимые для включе' ния элемента корня ' ipe. Данный элемент служит указателем типа содержания. Поскольку recipe выступает в качестве дополнения к множеству блоковых элементов, его часть, необходимо включить в описание параметрического компонента extra: "I
Изменения, которые необходимо внести в модуль общей модели содержания, коснутся также публичных и системных идентификаторов, имени файла и про' странства имен. Это отражено в листинге 16.3, в первом сегменте файла с расши' рением
www.books-shop.com
Интегрирование нового модуля % PUBLIC
XHTML 1.1 Modular Framework
Место для переопределения описаний, следующих за определением каркаса >
"IGNORE" >
% PUBLIC
>
XHTML 1.1 Text >
Модуль гипертекста (обязательный) % "INCLUDE" >
>
Модуль списков
> "INCLUDE" >
% PUBLIC
XHTML
Lists
Здесь можно размещать ваши собственные модули. Применяйте базовые формы описаний, представленные выше. Обратите внимание на включение в файл каталога для каждого задействованного вами модуля public В этом месте разрешается также использовать модули, определенные консорциумом Модуль структуры документа % "INCLUDE" > % PUBLIC
XHTML 1.1 Document Structure >
www.books-shop.com
Комбинирование модулей с XHTML % %
> % числе
включает все
элементы, в том
% %
>
Элементы блочного уровня
>
% I I
I I
I >
% % %
|
I I
I
> > >
>
> данный класс включает все элементы блочного уровня, используемые в качестве компонентов в смешанных структурах % % % %
>
включает все элементы блочного уровня, а также
> % I I % Все элементы содержания % включает все текстовые потоки блочные и внутристроковые элементы % I I I %
www.books-shop.com
Интегрирование нового модуля Листинг
Завершенная форма модуля модели содержания Recipe
Описание модели содержания для % I
> > элементы
>
% % % "I I I
I I
I I I
> I
I I
>
% % I I I I I I > ENTITY % class > % > % > % % % % % >
% % % >
включает все несвязанные внутристроковые
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Комбинирование модулей с XHTML PUBLIC
Модуль гипертекста % % PUBLIC
Модуль списков % % PUBLIC
XHTML 1.1 Text >
"INCLUDE" >
XHTML 1.1 Hypertext >
"INCLUDE" >
XHTML 1.1 Lists >
На данном этапе в правила описания типов документа вводятся новые элементы: Модуль рецептов % SYSTEM
>
Наконец, необходимо включить модуль структуры: Модуль структуры документа % "INCLUDE" >
Если перечислены все свойства, которые необходимо поддерживать в проекте, работу можно считать завершенной. Однако для получения окончательной фор мы документа следует добавить еще ряд модулей: изображения (Images), метадан ные и таблицы стилей (Stylesheet). Они вводятся перед завер шающим модулем описания структуры: Модуль изображений % PUBLIC
XHTML Images
Модуль метаданных документа % PUBLIC XHTML
www.books-shop.com
Интегрирование нового модуля
''>
Далее следует строка описания профилей документа. На данном этапе мы не работаем с ними, поэтому содержательная часть строки остается пустой: Зарезервировано для будущего использования с профилями документов ''> % Для упрощения структуры документа двусторонняя поддержка в описании языка запрещена: Здесь поддержки двунаправленного текста нет > % Сегмент, предваряющий описание каркаса, останется без изменений; обработ' ка событий не поддерживается. Информацию о месте вставки сегмента, предше' ствующего описанию каркаса, можно просто удалить (в описании эти инструкции сопровождаются соответствующими комментариями). Модуль событий также по' мечен значением Эту часть можно удалить Место для вставки сегмента переопределения описаний, предваряющих объявление каркаса > Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, перед объявлением каркаса >
%
"IGNORE" >
Если в вашем проекте необходим модуль событий, его следует описывать здесь. В данном случае он исключен > % "IGNORE" > Теперь каркас и необходимые модули описаны и находятся на своих местах. Нам не нужно использовать сегмент переопределения данных, следующих за кар' касом, поэтому в следующих строках его нет. Это единственное изменение, кото' рое требуется в данном сегменте: Модуль Modular Framework
"INCLUDE" >
% PUBLIC
XHTML 1.1 Modular Framework 1.0//EN >
Текстовый модуль
"INCLUDE" >
%
www.books-shop.com
Комбинирование модулей с XHTML Модульное построение рамок % "INCLUDE" > % PUBLIC
XHTML 1.1 Modular Framework
Текстовый модуль (обязательный) % "INCLUDE" > % PUBLIC
Модуль гипертекста % % PUBLIC
Модуль списков % % PUBLIC
XHTML
>
Text
> "INCLUDE" >
XHTML 1.1 Hypertext
> "INCLUDE" >
XHTML 1.1 Lists
Модуль рецептов % SYSTEM Модуль изображений % PUBLIC
>
>
XHTML Images
Модуль метаданных документа % PUBLIC XHTML
>
Модуль XHTMLтаблиц стилей % PUBLIC XHTML Stylesheets
>
www.books-shop.com
Правила определения типов Модуль % PUBLIC
стилей XHTML Stylesheets >
Модуль структуры документа % "INCLUDE" > [ % PUBLIC XHTML 1.1 Document Structure >
Правила определения типов Окончательный вариант программы, куда вошли все предварительные резуль таты, полученные при работе с материалами трех последних глав, представлен в листинге 16.4. Листинг 16.4. Правила описания типов данных разметки Recipe Правила описания типов данных для Recipe Файл: Это управляющая программа для файла Пожалуйста, используйте следующее формализованное описание открытого регистрирующее данный файл: XHTML Recipe Используйте следующее пространство имен для уникальных элементов приложения recipe (recipeunique
> % Зарезервировано для будущего использования с профилями документов
www.books-shop.com
Комбинирование модулей с XHTML
Рис.
Файл рецептов показан в Internet Explorer в режиме
На рис. 16.1 показан файл recipe.xml после его обработки XML'процессором браузера Internet Explorer. Чтобы отобразить данный файл в полностью, необходимо до' полнить данными в виде стилей при помощи методов примене' ния стилей к новым элементам, с которыми вы познакомились в главе 12.
Резюме В этой главе рассказывалось возможности включения разработанного вами XHTML'модуля (см. главу 15) в новый язык разметки, имеющий собственное мно' жество правил определения типов документа (DTD). Также был проанализирован документ, созданный на основе этого языка. В главе 17 рассматриваются дополнительные приложения модулей в XHTML, в частности подмножество XHTML для небольших устройств ' XHTML Basic.
www.books-shop.com
Применение нового типа документа структуры документа %
"INCLUDE" >
% PUBLIC
XHTML
Document Structure >
Окончание файла правил описания типа документа для Recipe >
Применение нового типа документа Применение типа DOCTYPE, созданного нами, так же просто, как применение любого типа DOCTYPE, предлагаемого консорциумом W3C. Этот тип следует объ' явить в начале собственного например: /> sugar" />
<prep> carrots and cut into bitesize pieces as preferred (e.g. circles, Stream or boil in insalted water until
www.books-shop.com
Глава 17. Приложение XHTML Basic Когда говорят о гибкости расширяемых языков, подобных XHTML, обычно за' бывают о главном. Применяя это свойство в проектах, не всегда нужно что'либо добавлять в язык, достаточно выбрать его подмножество. XHTML Basic ' это первый член семейства XHTML, разработанный консор' циумом W3C для реализации такого подхода. Его цель ' создание платформы для развития приложений, применяющихся в устройствах с ограниченным объемом ресурсов. В этой главе рассказывается: а о методах, которые позволяют устройствам с ограниченными ресурсами по' лучить доступ в Internet; а о типах устройств, наиболее популярных в пользовательской среде; а о способах преобразования конкретного HTML'документа в формат прило' жения XHTML Basic; о механизмах обеспечения соответствия документов типа Basic дру' гим типам документов XHTML.
Использование XHTML в устройствах с ограниченными ресурсами В числе самых удивительных реалий современной жизни можно назвать то, что в пространстве телекоммуникаций, образованном проводными каналами свя' зи, информационные ресурсы Internet доступны практически из любой точки мира. Страницы Web'сайтов пополняются данными, поступающими, например, от альпинистов, покоряющих Эверест, или от исследователей мирового океана. Вы можете отправить сообщение по электронной почте, совершая полет на высоте нескольких тысяч километров. Реализация принципа «доступ из любой точки Земли» связана главным обра' зом с применением настольных и переносных компьютерных систем. С развитием беспроводных систем обмена данными, с появлением компьютеров, имеющих ма' логабаритные терминалы (типа Palm либо PDA), и даже сотовых телефонов пользоваться ресурсами сети Internet стало еще проще.
Миниатюризация компьютерных Производители переносных компьютерных систем стремятся к тому, чтобы каждая новая модель была миниатюрнее прежней. Однако устройства, о которых
www.books-shop.com
Часть IV Будущее XHTML Глава
Приложение XHTML Basic
Глава 18.
Профилирование
Глава 19.
Дальнейшее
XHTML
www.books-shop.com
Приложение XHTML Basic Таблица Перечень обязательных включенных в состав XHTML Basic Модуль
Элементы
Structure Module (модуль структуры)
html, head, title, body
Text Module (модуль текста)
abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h2, h3, h4, h5, h6, kbd, p, q, samp, span, strong, var
Hypertext Module (модуль гипертекста)
a
List Module (модуль списка)
dt, dd
на основе XHTML Basic Пример. Рассмотрим представление информации на уже существующем Webсай те, чтобы определить, какие действия необходимы для преобразования этих данных в формат XHTML Basic. рис. 17.1 показан сайт Orion's Domain, домашняя страница которого является состоятельным документом версии Transitional. Исход ный текст для построения документа приведен в листинге
Рис.
Сайт Orion's Domain, созданный на основе HTML 4.0 Transitional
www.books-shop.com
Использование подмножества XHTML Basic говорится в настоящей главе, характеризуются не только небольшими размера' ми: их операционные системы оптимизированы для работы с такой аппаратной конфигурацией. Компании 3Com и Palm Computing совместно разработали ОС PalmOS, кото' рая устанавливается на наиболее популярной модели компьютеров PDA ' Palm Pilot. Компания Microsoft в свою очередь выпустила операционную систему Windows СЕ. Преимущество WinCE в том, что она может работать на обоих типах устройств типа Palm ' управляемых при помощи пера либо клавиатуры типа hand' Обычно область памяти этих машин, отведенная под пользовательские про' граммы, составляет от 2 до 16 Мб и предназначена только для хранения данных. Следовательно, необходимое программное обеспечение должно занимать здесь значительно меньше места, чем в настольных компьютерах. Кроме того, возмож' ности программ будут ограниченными, что вызвано небольшим объемом памяти. Например, в Web'браузере может отсутствовать виртуальная машина Java либо не будут работать скрипты или таблицы стилей; вероятно, не будет поддерживаться расширенная функциональность Web, в частности обработка изображений, звуко' вой информации или анимационных приложений типа Shockwave и SMIL.
Нетрадиционное применение Нетрадиционным, во всяком случае для подавляющего большинства компью' теров, будет их применение для доступа не только в сеть Internet.
Беспроводной доступ Системы беспроводного доступа в Internet являются самым динамичным сег' ментом пользовательского рынка услуг. Так, от 60 до 70% населения Швеции и Фин' ляндии используют в повседневной жизни сотовые телефоны, к этому уровню при' ближается и Япония.
Устройства с ограниченными ресурсами Внешний вид и режим работы устройств с ограниченными ресурсами обычно неотличим от аналогичных параметров стандартного компьютера, однако их функ' ции сводятся к решению конкретных задач. К этой категории относят, например, Web'телеприемники (WebTV), которые предназначены для приложений электрон' ной почты либо для электронной почты, дополненной выходом в Web, и устройства с ограниченными возможностями доступа в онлайновом режиме.
Использование
XHTML Basic
Как указывалось ранее, XHTML Basic является одной из реализаций механиз' ма модульного конструирования в XHTML. В главе 16 это понятие было введено для определения типа документа, построенного с применением как минимум че' тырех обязательных модулей XHTML: структурного, текстового, гипертекстового и модуля списка. В табл. 17.1 перечислены элементы, входящие в состав каждого из них.
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Приложение XHTML Basic Stories and essays I've written over the years | Domain Apollo Smile.
Street Fighter II These are few of my favorite
/>
www.books-shop.com
Приложение XHTML Basic
Резюме В этой главе вы узнали о разнообразных типах оборудования, с помощью кото' рого можно получить доступ в Internet, познакомились с уникальными характерис' тиками программного обеспечения некоторых устройств, а также с типами докумен' тов, для обработки которых предназначены эти устройства. Здесь рассказывалось о механизме поэтапного преобразования исходного HTML'документа в формат XHTML Basic, полученный результат сравнивался с исходным документом и с вер' сией XHTML 1.0 Strict. В следующей главе рассматривается новый способ описания и обработки XHTML'документов посредством методов профилирования.
www.books-shop.com
Создание документа на основе XHTML Basic
в наш клуб можно без
В этой записи реализованы требования стандарта XHTML 1.0: наименования атрибута и элемента введены строчными буквами, а в конце строки стоит слэш (он обязателен для пустых элементов). Далее следует перечисление ключевых слов с применением элемента keywords:
www.books-shop.com
Метаданные а назвать инструментарий, задействованный в процессе создания страницы; а привести дату последней редакции документа. Элементы а могут применяться также для контроля процесса компьютер' ной обработки документа. Они обеспечивают: а инструкции для индексирующих роботов; а подсказки клиентам о том, когда следует обновить документ, размещенный в кэш'памяти; а указание даты, когда срок хранения документа истекает; а ключевые слова, которые используются для поиска необходимых данных. Итак, метаданные могут быть как общего, так и специального типа. В Web'доку' менты разработчик обычно включает информацию о владельце приложения (в при' веденном ниже примере ' собственные имя и фамилию), дату проверки документа либо дату последней его редакции, простейшую запись об авторских правах и анно' тацию. Пример <meta <meta <meta
/> июня 2000 г." /> сентября 2000 г." />
<meta <meta
июня 2000 г., WebGeek,
/>
по применению метаданных в Webдокументах" /> <meta 31 октября 2000 г. 00:00:01 по Гринвичу" /> <meta 1 gen false comment 0800" r (n 0 s 0 v 0 1
North America Server" for on />
Остальные элементы а, в частности два последних элемента в примере, обычно служат исходными данными для обработки процессорами поиска, браузе' рами или другими автоматизированными системами. Значение атрибута указывает браузеру дату и время, когда копию документа, хра' нимую в памяти, следует заменить. Обновленную страницу браузер в указанное время должен запросить у сервера. Последний элемент а примера предоставля' ет информацию для сервиса ранжирования приложений, которые могут использо' ваться прокси'системами либо другими устройствами, оборудованными фильтрами содержания, чтобы запретить доступ к неактуальным данным. ранжирования разработана Ассоциацией по документов в Internet (Internet Content Rating Association). Доступ к службе можно по адресу
www.books-shop.com
Профилирование Выше уже говорилось, что часть элементов предназначенных для обмена между компьютерами, вместо атрибута name использует http'equiv. Дело в том, что в начале развития Internet, когда доставка страниц осуществлялась только по' средством протокола передачи гипертекста (HyperText Transfer Protocol ' HTTP), клиент, инициировавший запрос, и сервер, высылавший ответ, использовали для обмена данными дополнительную информацию в заголовках HTTP'пакетов. Эти служебные данные представляли собой дополнительные биты, помещаемые перед информацией для обмена. В нашем случае, чтобы построить HTTP'заголовки от' кликов между сервером и клиентом, в качестве значения атрибута http'equiv эле' мента meta следует применить одно из свойств. В табл. 18.1 приводится несколько общих свойств, принадлежащих атрибуту http'equiv. В листинге 18.1 показано, как эти свойства применяются в заголовке Таблица
Экземпляры свойств и значений атрибута httpequiv
Свойство
Значения атрибута «содержание»
Назначение
Expires
Date/time (дата/время)
Contenttype
Media type (тип носителя данных и кодировка символов для текста)
Инструкция для кэш*памя* ти: запрос новой копии документа после указанных времени и даты Инициализация встраивае* мых в браузер программ и/или кодировок символов Установка базового языка для создания скриптов Установка базового языка таблиц стилей Контроль обращений к кэш*памяти в HTTP
Type ContentStyle Type Pragma
Листинг
Scripting Language Identifier (идентификатор языка скриптов) Style Language Identifier (идентификатор языка таблиц стилей) nocache (не кэшировать)
Пример использования набора
<meta
/> 2000, WebGeek, Inc." /> применения
<meta />
metadata, descriptions" /> <meta 31 декабря, 2000 23:59:59 по Гринвичу" /> /> /> <meta
/>
www.books-shop.com
Метаданные
Рис.
Домашняя страница сайта Gainesville
<meta games, computer game, computer online gaming, free game, f r e e online online card card bingo, poker, s l o t s , b l a c k j a c k , f r e e s t u f f , f r e e , lottery, sweepstake, sweepstakes, t r i v i a , free money, casino" />
Всего атрибут content данного элемента содержит 26 слов ' минимальное значение множества. ключевых слов приведенного примера содержит не слова, но и словосочетания. В общем списке ключевые сло) вообразования разделяются запятыми. Примечание
информацию, связанную с алгоритмами работы сетевых агентов, вы найдете на сайте Search Engine Watch, разме) щенном по адресу http://searchenginewatch.intemet.com/webmasters/ по указанным темам можно сво) бодно, однако доступ к другим информационным источникам сай) та потребуется
www.books-shop.com
Профилирование
Нерешенные вопросы Выше были рассмотрены способы описания содержания документа, инициа' лизация таких специфических данных, как указание автора и авторских прав, вре' мени создания и изменения документа; описаны расширенные методы компьютер' ной обработки страницы. В среде Web'дизайнеров часто можно услышать критические отзывы об отсут' ствии процедур жесткого контроля над представлением собственных сайтов. Воз' можно, разработчики препятствуют попыткам браузера изобразить не полный до' кумент, а только ту часть, которую программа просмотра понимает. Они скорее согласятся потерять часть посетителей, чем подкорректировать способ представ' ления содержимого страницы. Другие предпочитают заменить «не справившийся с задачей» браузер на другую версию агента, также не модифицируя настроек до' кумента. В настоящее время XHTML не поддерживает механизм жесткого контроля процесса передачи содержимого страницы. На запрос клиента сервер выдает все имеющиеся данные. Следовательно, режим и качество отображения информации определяются только производительностью клиента, стратегией и алгоритмом принятия решения, прописанным в программе разработчиками. Кроме того, клиент не может сообщить серверу, что формат графических изоб' ражений GIF будет обработан, а формат PNG ' нет, либо что используемый браузер не понимает код языка JavaScript. Процедуры и настройки должны быть аппаратно и программно (если иметь в виду клиента) независимы. Пользователю с ослаблен' ным зрением необходимо предоставлять возможность увеличить шрифт изображе' ния, причем сохранить эту процедуру независимо от изменений шрифта документа браузером.
Резюме В этой главе рассказывалось о методах описания документов, о синтаксисе, ис' пользуемом для указания исходных данных документа, таких как дата создания и последней редакции. Вы узнали, что элемент meta может применяться с атрибу' том name для поддержки любого количества и типов свойств документа, а атрибут используется для формирования HTTP'заголовков откликов. Далее будут рассмотрены проекты В предыдущих раз' делах уже делались попытки применить профилирование документов с помощью технологии СС/РР, теперь новые разработки в этой области будут описаны более детально. Вы познакомитесь с проектами, объединяющими Web и телевидение: вероятно, скоро появятся технологии типа «радиовещание в сети Internet» или «встраивание Web'документов в программы телевидения». Заключительная часть главы посвящена расширенным возможностям новых Web'компонентов, так на' зываемых Х'форм, разработкой которых заняты специалисты одной из рабочих групп W3C.
www.books-shop.com
Метаданные
|
метаданных Разработка эффективных упрощается, если дизайнер приме' няет специализированные инструменты. В табл. 18.2 указаны два сайта, где пред' ставлены необходимые программы. Таблица 18.2. Инструментарий для построения и редактирования метаэлементов Имя и адрес сайта
Элементы
Builder 2, http://vancouverwebpages.com/
Поддерживает генератор для наиболее часто используемых метаэлементов, при работе формы. Предоставляет полный вариант значений для атрибутов name и httpequiv, а также описание их применения Современный набор инструментов для построения и редактирования метаданных
Dublin Core Metadata Initiative Tools Page, http://Durl.ora/DC/tools/index.htm
Одним из наиболее популярных сайтов является Reggie Metadata Editor. Здесь можно выбрать схему построения метаданных, синтаксис для форматирования вы' ходных документов, например HTML 4.0, RDF либо иных. После определения всех необходимых опций пользователю предлагается детализировать общие свой' ства применяемых метаданных. Соответствующее меню показано на рис. 18.2.
Рис. 18.2. Сайт Reggie Metadata Editor
www.books-shop.com
Дальнейшее развитие XHTML
Рис.
Простая страница приложения
Итак, данные заголовка в настоящий момент указывают на тип используемого браузера. Технология СС/РР поможет получить дополнительную информацию, ко' торая позволит серверу создать страницу, соответствующую настройкам браузера пользователя, а также просмотреть полный комплекс технических возможностей браузера. Кроме того, она даст возможность учесть личные предпочтения владель' ца браузера ' конкретный способ отображения данных. Браузер для мобильного устройства по сравнению с браузером настольного компьютера имеет целый ряд существенных ограничений, негативно сказываю' щихся на результатах его работы. Разрешающая способность экрана мобильного устройства (обычно пикселов) в несколько раз ниже, чем у обычного мо' нитора (в среднем 1024x768 пикселов). Кроме монохромный экран никогда не сможет конкурировать с полноцветной картинкой, а ограниченный набор сим' волов клавиатуры несравним со стандартным или расширенным набором. Объем оперативной памяти мобильных устройств заметно меньше по сравнению с обыч' ными ПК. К тому же скорость передачи данных по беспроводным каналам значи' тельно ниже скорости передачи по проводным линиям, и такая ситуация в бли' жайшее время не изменится. К примеру, неудобство передачи обычному браузеру мобильного устройства анимируемого изображения в формате 500x500 пикселов у пользователя обычно
www.books-shop.com
Глава 19. Дальнейшее развитие XHTML В этой главе рассказывается о проектах Web'стандартов, которые, несомненно, окажут сильное влияние на структуру и приложения языка XHTML; некоторые из них являются дальнейшим развитием действующих либо утверждаемых вер' сий XHTML. Изучение новых возможностей ' увлекательное занятие. Мы предлагаем вам разобраться в основных концепциях, чтобы получить представление о динамике развития стандартов. Поскольку в данной главе приводится предварительная ин' формация, необходимо сверять прочитанное с текущими версиями документов, на которые даются ссылки: тогда вы сможете без труда находить основные измене' ния в их описаниях. Для рассмотрения выбраны те проекты, которые, с нашей точ' ки зрения, в будущем максимально повлияют на способы получения информации из Internet. Вы познакомитесь: а с технологией СС/РР (Composite Capabilities/Preferences Profiles ' ком' плексная оценка возможностей/конкретные требования потребителя), ко' торая позволит Web'серверам настроить вывод документов на тот тип бра' узера, который выбрал пользователь; а с проектами объединения телевидения и Web. Такая интеграция должна рас' ширить информационные ресурсы обоих «партнеров»; а с новым поколением Web'форм, построенных на базе языка XML и полу' чивших собственное название ' XForms.
Технология СС/РР Реализация доступа в Web с помощью мобильных устройств предоставляет пользователям множество новых возможностей. Мы говорим это искренне, не для рекламы, поскольку сегодня ее и так достаточно. Однако есть и неразрешенные технические проблемы. Одна из них состоит в разработке механизма совместимости Web'страницы («карты» на мобильных браузерах), переданной сервером сети, с настройками браузера получателя. Мож' но не только организовать такое взаимодействие с помощью элемента header (за' головок) HTTP'сообщения, но и получить информацию из этого заголовка. На рис. 19.1 показана информация, отображаемая одним из доступных в настоящий момент методов: применение простой страницы JavaServer, которая по' лучает доступ к данным, хранимым в заголовке Пакета HTTP.
www.books-shop.com
Дальнейшее развитие XHTML Терминология СС/РР Чтобы Web'сервер определял возможности различных браузеров, которые мо' гут получить доступ к его ресурсам, были разработаны новые концепции. Разуме' ется, появилась и новая терминология. Ниже приведены термины, применяющие' ся для области размещения браузера: а профиль агента Agent Profile) ' описание потенциаль' ных возможностей и настроек устройства клиента или агента пользователя ' браузера; а атрибуты (Attributes) ' характеристики или возможности агента пользова' теля, совокупность которых образует профиль агента. Например, разреша' ющая способность экрана пользовательского терминала; а указание (Hint) ' выражение, описывающее предпочтения браузера. Указа' ние в форме подсказки будет поступать на сервер'источник. Маловероятно, что это требование всегда будет выполняться. Например, для браузера более предпочтительным может стать язык XHTML, а не HTML. Для представления серверной стороны используются следующие термины: а
(Origin Server) ' Web'сервер, который является источни' ком информации для агента пользователя; а аутентификация (Authentication) ' подтверждение достоверности инфор' мации о паре пользователь/браузер; выбор содержания (Content Selection) — выбор документа для последующей обработки. Критерием отбора служит соответствие агента пользователя структуре СС/РР.
Некоторые термины применимы и к клиенту, и к браузеру: (Capability) ' атрибуты получателя сообщений. Этот термин используется и по отношению к потенциальным возможностям сер' вера, если речь идет о типах сообщений, которые он может обрабатывать; а согласование по содержанию Negotiation) ' процесс обмена данны' ми между сервером'источником и агентом пользователя, основная цель ко' торого — предоставить браузеру возможность выбрать множество наиболее доступных форматов содержания из имеющихся на сервере. терминология СС/РР представлена в документах, перечис) ленных в конце данной главы. Профиль СС/РР определяет клиентскую часть (или агента пользователя) с помощью перечня СС/РР'атрибутов или возможностей (features). Каждая воз' можность идентифицируется именем, записанным в формате URI. Набор таких имен, используемый для описания клиента, называется словарем (vocabulary). Структура СС/РР содержит небольшое количество основных характеристик, формирующих базовый словарь СС/РР. Уже принято решение о поддержке расши' ренных словарей. Здесь можно провести аналогию с расширениями, поддерживае' мыми механизмом модульного конструирования, о котором рассказывалось в гла' вах 14 и 16. Стандартизация расширенных словарей возможна для следующих
www.books-shop.com
Технология СС/РР вызывает только раздражение, а уж повторить этот процесс не решится никто. Но есть и другая проблема: может оказаться, что пользователю просто нечего пере' дать. Мобильному устройству необходимо обеспечить доступ к содержанию спе' циального типа. Формат данных должен быть представлен таким образом, чтобы ограниченные возможности агентов пользователя не приводили к малопонятно' му, лишь частично видимому изображению. Поскольку применение мобильных браузеров позволяет увеличить деловую ак' тивность, нужен метод, настройку браузера с содержанием, которое он будет обрабатывать. Цель этой технологии ' обеспечить браузеры мобильных устройств (а в дальнейшем и любой тип агента) такими типами Web'страниц либо приложениями с другим форматом содержания, которые соответствуют текущим возможностям используемого браузера. Для поддержки описанного механизма бра' узер должен передать серверу информацию о себе. В свою очередь, Web'сервер дол' жен определить достоверность полученных данных и подготовить соответствую' щий тип документа. Такой подход к разрешению проблемы совместимости источника и получателя лежит в основе технологии СС/РР. Можно применить другой способ, использующий модули данных: браузер об' рабатывает только понятные ему сведения. Этот механизм предполагается ис' пользовать в основном для браузеров телевизионных приемников, настройки ко' торых не позволяют передавать Web'серверу информацию о ресурсах.
Метаданные и формат описания ресурса Метаданные ' это данные об информации, содержащейся, например, внутри документа XML. Обратите внимание: метаданные не являются содержанием до' кумента, а описывают одну или несколько его характеристик. Сначала примене' ние метаданных в приложениях Web ограничивалось введением тэгов в заголовки HTML'документов, чуть позже ' и в документы XHTML. Конфигурация браузера обычно определяется с помощью формата описания ре' сурса (Resource Description Framework ' RDF), который составляет основу боль' шинства работ W3C, связанных с представлением метаданных. Более специфич' ным является применение RDF в качестве фундамента для технологии СС/РР. RDF — это модель представления именованных свойств и их значений. Все структуры, описанные в RDF, состоят из ресурсов, которые могут включать в себя отдельные Web'страницы либо их коллекцию. Любой ресурс характеризуется свой' ством, определяющим перечень допустимых значений, типы ресурсов, которые оно может описать, и его отношения с другими свойствами. Предложение RDF содер' жит конкретный ресурс, сопровождаемый именованным свойством и его значени' ем. Хотя внутри RDF применяется язык XML, содержание описываемых Web' ресурсов может представляться и в любом другом формате. RDF также является основой для технологии СС/РР, семантику которой он использует. Более описание можно найти в рекомендации Re) source Description Framework (RDF) Schema Specification no адре) су
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭ[email protected]
Дальнейшее развитие XHTML рекомендации по построению профилей можно получить, обратившись по адресу Оба механизма ' СС/РР и профилирование XHTML'документов ' можно рассматривать в качестве участников процесса согласования по содержанию, где потенциальные возможности агента пользователя и требования к нему сравни' ваются с производительностью и доступными версиями документов, размещен' ных на сервере'источнике. После определения профиля предпочтений агента пользователя разрешается дополнительно включить возможности XML/XHTML. Например, в некоторых случаях допустимо динамическое создание подходящей по формату Web'страни' цы. Для этого используются XSLT'преобразования и технологии форматирования объектов, описанные в главе
Документы консорциума
технологии СС/РР
Технология СС/РР входит в число работ, проводимых в рамках консорциума, по определению условий доступа к информационным ресурсам для мобильных устройств ' Mobile Access Activity. В настоящее время для рассмотрения предло' жено четыре рабочих документа, связанных с технологией СС/РР. Доступны сле' дующие актуальные версии: a Composite Capabilities/Preferences Profiles: Requirements and Architecture (требования и архитектура) ' a Composite Capabilities/Preferences Profiles: Structure (структура) ' a CC/PP Attribute Vocabularies (сборник описаний атрибутов) ' a Composite Capabilities/Preferences Profiles: Terminology and Abbreviations (тер' минология и список аббревиатур) Изучая документы, размещенные по данным адресам, обратите внимание, что вверху каждой страницы поддерживается связь с последней редакцией (Latest Version). Это соединение позволит вам узнать о возможной модификации содер' жания. Ниже представлены этапы становления документа, утвержденные консорциу' мом W3C (в порядке роста значимости): а рабочие документы (Working Drafts) ' документы, которые разрешается из' менять радикально. Концепции или решения могут добавляться или исклю' чаться: они только намечают путь для достижения необходимого результа' та. Когда рабочий документ приобретает завершенную форму, выпускается его сигнальный вариант ' Last Call. Если технология оказывается излишне сложной качество принятых решений сомнительно, работа над доку' ментом будет продолжена;
www.books-shop.com
Технология СС/РР типов оборудования: графических устройств, устройств передачи речевых сооб' щений и устройств беспроводного доступа. Термины словарей СС/РР предполагается построить на основе синтаксиса пространств имен URI (см. раздел «Пространство имен с типом локально' го атрибута. Тогда запись атрибута примет следующий общий вид:
Текущие документы являются рабочими, поэтому формат записи измениться.
расширяемость и распределенная структура Стандарт СС/РР должен быть гибким, поскольку нельзя предсказать все из' менения в структурах будущих агентов пользователя. Та же причина заставляет разработчиков стремиться сделать его расширяемым: необходимо иметь возмож' ность добавлять новые типы профиля. Кроме того, стандарт обязательно должен быть распределенным, поскольку централизованная регистрация может оказаться уязвимой для системных нарушений. Речь идет о возникновении условий, противо' речащих основополагающим принципам Internet: неустойчивая работа всей сети при нарушении физических соединений либо при возникновении других проблем в ка' кой'либо из ее областей.
Документы СС/РР На сегодняшний день имеются только рабочие документы по стандарту СС/РР, полное описание протоколов и возможных средств для передачи профи' лей настройки пока не завершено. Рабочая группа консорциума W3C еще не вы' пустила ни одного документа с формализованным представлением требований. Существует документ, где кратко излагаются условия применения стандарта и да' ется обзор требований к нему, которые, возможно, войдут в окончательный вари' ант описания. В рабочем документе говорится о необходимости создания процедур защиты, однако детальное рассмотрение условий безопасной работы ' отдельный вопрос формализованного описания.
Совместное применение СС/РР и языков XML и XHTML Существует несколько вариантов интеграции языков XML и XHTML в стан' дарт СС/РР. Основу описания СС/РР составляет формат описания ресурса (RDF), созданный на основе XML. Разумеется, из сказанного не следует, что данные СС/РР будут записаны в формате XML, но сам протокол СС/РР (во всяком случае, окончательный вариант), вероятно, станет доступным в совместимой с XML форме. Технология СС/РР позволяет идентифицировать потенциальные возможнос' ти агента и предпочтения пользователя по работе с этим агентом. В профилях до' кументов XHTML указывается функциональность, оптимальная для их представ' ления. Следовательно, СС/РР и профили можно сопоставить, когда сервер'источник выбирает оптимальный тип содержания, которое необхо' димо доставить агенту пользователя.
www.books-shop.com
Дальнейшее развитие XHTML Возникают и вопросы технической реализации. Например, необходимо со' здать XML'совместимый формат для инкапсуляции данных о местоположении объекта. Решением проблемы может стать язык разметки для данных о местопо' ложении объекта — Navigation Markup Language (NVML), предложенный фир' мой Fujitsu в июне 1999 года. С документом можно www.w3.ors/Submission/1999/10/.
по адресу
В консорциуме обсуждается и другой вариант решения ' документ (Point Of Interest eXchange) Language Specification» (Спецификация языка обме' на требуемыми данными), разработанный в мае 1999 года. Данный документ можно найти в Internet no адресу www.w3.ore/Submission/1999/06/.
СС/РР и Web*ориентированное телевидение Ниже описывается рабочий вариант сценария доступа в Web, основанный на применении ресурсов телевизионной сети и поддерживаемый технологией СС/РР. В соответствии с этой программой сервер передает широковещательный сигнал, который включает минимальный набор содержания. Такой режим объясняется тем, что у телевизионного браузера может отсутствовать процедура передачи соб' ственного специализированного профиля серверу'источнику.
Телевидение и Web В настоящее время появилось несколько проектов, связанных с интегрирова' нием телевидения и Web. Эта интеграция будет расширяться по мере увеличения числа географических областей, охваченных цифровыми телевизионными систе' мами. По существу, такие разработки разделяются на две основные категории: применение соответствующего телевизионного оборудования для просмот' ра ресурсов Web; а дополнение телевещания Web'содержанием, позволяющим поддерживать интерактивное взаимодействие.
Телевизионные системы для просмотра ресурсов Web Механизм применения телевизионных устройств для обращения к информа' ционным ресурсам Web уже отработан. Такую возможность напри' мер, программа WebTV компании Microsoft. Программе TVWeb (это название является общим для обозначения телеви' зионного оборудования, применяющегося в качестве устройств просмотра Web, а кроме того, отличает новую технологию от WebTV), вероятнее всего, не пона' добится полный набор функций XHTML: она ограничится настройкой несколь' ких отобранных модулей, входящих в спецификацию Modularized XHTML.
www.books-shop.com
Технология СС/РР а рекомендация)кандидат (Candidate Recommendation) ' продвижение доку' мента на этот уровень означает, что его рабочие версии считаются полнос' тью завершенными. На данном этапе рекомендация передается организаци' ям, внешним по отношению к рабочим группам или консорциуму W3C, с просьбой оценить документ; а (Proposed Recommendation) ' если документ по' лучил положительные отзывы на стадии кандидата, он подвергается допол' нительной проверке. В самом худшем случае он может быть возвращен на уровень рабочего документа; а рекомендация (Recommendation) ' последний этап. Документ с данным ста' тусом становится зафиксированным стандартом (до тех пор, пока не будет формально установлена заменяющая его версия) для всех практических приложений. Поскольку консорциум W3C не является межправительствен' ной организацией, он не может присваивать своим документам наименова' ние «стандарт», поэтому используется определение «рекомендация». Реко' мендации устойчивы к изменениям, их допустимо применять в качестве первоисточника.
Использование браузера может идентифицировать личность пользователя и его местоположение, что делает актуальной проблему безопасной работы, поскольку в некоторых случаях пользователю необходимо скрыть свою личность или местона' хождение. Рассмотрим достоинства и недостатки систем, функциональность которых зависит от наличия данных о вашем текущем местонахождении. Представьте, что в электронную схему вашего автомобиля встроен компьютер с браузером, поддер' живающим обработку речевых данных, который может определить ваше местопо' ложение и выработать несколько вариантов движения до заданного конечного пунк' та. Это может быть прогулочный маршрут, наикратчайший путь, дорога, свободная от автомобильных пробок, и т.д. Согласитесь: в том, что ваш агент способен переда' вать точные координаты места и получать в ответ данные, необходимые для пере' движения, есть определенная выгода. То же касается получения сведений об отелях во время путешествия либо какой'то другой информации по вашему выбору. Но поскольку развитие, управление и эксплуатация таких систем требуют зна' чительных затрат, сети, вероятно, будут обслуживаться людьми. Следовательно, со' трудники фирмы'провайдера могут получить доступ к данным о вашем текущем ме' стоположении, а такая ситуация расценивается как вмешательство в частную жизнь. На первый взгляд, если вы не нарушаете закон и вам нечего скрывать, это не страшно, однако проанализируем возможные последствия подобного вмешатель' ства. Допустим, вы находитесь на трассе в трехстах километрах от дома и переда' ли свои координаты, чтобы получить данные о движущемся впереди потоке. А те' перь предположим, что эта информация перехвачена злоумышленником либо попала в руки недобросовестного Web'оператора: несложно подсчитать, что у вора есть по меньшей мере четыре часа, чтобы забраться к вам в дом. Таким образом, сервис, связанный с определением ваших географических координат, становится поводом для преступления против вас.
www.books-shop.com
Дальнейшее развитие XHTML Несмотря на то что этот способ обеспечивает высокий уровень производитель' ности, применение HTML/XHTML'форм имеет ряд ограничений. Поэтому спе' циалисты консорциума сочли необходимым разработать более совершенные фор' мы для сбора информации ' XForms. Ожидается, что они будут совместимы со стандартом XML. Пример. находятся в стадии разработки, поэтому представленный ниже пример, демонстрирующий простую реализацию регистрационной формы, исполь зует синтаксис, который впоследствии может быть изменен. Пример взят из рабоче го документа консорциума: 123 Maple Street Mill Valley <state>CA 90952
www.books-shop.com
СС/РР и Web*ориентированное телевидение
|
Если удастся совместить наиболее популярные телевизионные стандарты с отобранными для TVWeb модулями XHTML, то серверы'источники в дальней' шем смогут обслуживать документы по умолчанию.
Дополнение телепрограмм Наполнить телевизионные программы Web'содержанием можно множеством способов. Например, в трансляцию спортивного репортажа допустимо включить некоторую зону экрана, активизируемую манипулятором для получения инфор' мации о командах и спортсменах'участниках. Учитывая ограниченные ресурсы не' которых телевизионных систем, для отображения этих данных разрешается ис' пользовать выделенный набор XHTML'модулей. Альтернативным вариантом является сопровождение телевизионного широко' вещательного сигнала фоновой информацией, при этом не требуется активизиро' вать агента. Однако у такой схемы существует очевидный недостаток: в текстовую область могут попасть рекламные блоки, имеющие отношение к теме телепередачи. Кроме того, необходимо установить размер экрана Web'зоны достаточным для качественного изображения, но не мешающим восприятию основной телевизионной программы. Конечно, обработка сигнала телеприемниками не идет ни в какое сравнение с соответствующими возможностями обычных персональных компьютеров, поэто' му с помощью телевизионного оборудования можно получить только часть содер' жимого сетевого ресурса. Особенность механизма состоит в том, что ряд модулей XHTML используется телевизионной системой по выбору. XHTML является компонентом языка BXML (BML) ' Broadcast Markup Language (язык разметки для систем радиовещания), который был предложен в качестве стандарта Ассоциацией по радиопромышленности и производству (Association of Radio Industries and Businesses ' До недавнего времени управление телевизором осуществлялось посредством дистанционного пульта для переключения программ. Однако возможность выби' рать отдельные области экрана для получения необходимой информации суще' ственно расширяет перспективы развития телевидения. В дальнейшем увеличение полосы пропускания в средах передачи Web'информации значительно сблизит обе системы, сделав их различие неощутимым.
Структуры XForms HTML'формы были введены в Web в 1993 году. Эти формы, иногда дополняе' мые формами XHTML, в большинстве Web'сайтов играют главную роль при переда' че данных от пользователей к различным службам, основанным на технологии Web. Универсальная форма регистрации является эффективным средством передачи персональных данных о пользователе для получения им права доступа к информа' ционным ресурсам либо для осуществления онлайновых заказов. На большинстве коммерческих сайтов для сбора отдельных данных в полный онлайновый заказ ис' пользуются формы HTML/XHTML. В качестве примеров можно привести процес' сы сбора заказов на книги и другие товары на сайтах Amazon.com и Barnes & Noble.
www.books-shop.com
Дальнейшее развитие XHTML создаются на базе XML, для управления процессом представления документов они могут использовать каскадные таблицы стилей, а также расширяемый язык таблиц стилей (XSLT и XSL'FO). Естественно предположить, что возможности XForms будут неодинаковыми для различных платформ. Мобильные устройства с небольшим экраном освоят элементарные функции, предлагаемые новой технологией. Обладатели мощных компьютеров, подключенных к Internet по высокоскоростному широкополосному каналу смогут добиться исполнения сложных графических и мультимедийных приложений. Одновременно с предоставлением расширенных возможностей вывода инфор' мации, новая технология, вероятно, будет поддерживать аналогичные функции вво' да данных пользователем, например посредством браузера с синтезом речи. Такой комплекс аппаратно'программных средств окажется полезным, в частности, цен' трам обработки вызовов по телефону, администрация которых стремится оградить своих сотрудников от бесконечно повторяющихся заказов. У большей части современных форм HTML и XHTML отсутствует функция исправления ошибок. Кроме того, пользователи не могут создавать собственные скрипты, которые позволяют выявить опечатки, допущенные при вводе данных. В технологию XForms специально включены стандартные средства верификации, сокращающие количество ошибок в записи почтовых индексов и номеров теле' фонов. В электронной коммерции проверка корректности ввода номеров кредит' ных карт может стать основой построения комплексной системы обнаружения и устранения ошибок. Более высокая эффективность механизма XForms по срав' нению с методами написания традиционных форм, дополненная функцией со' здания пользовательских сценариев, позволит сократить время и стоимость раз' работки. Новые возможности считывания информации могут стать результатом применения объектной модели XML'документов с данными В некоторых ситуациях необходимо прервать процесс заполнения формы и воз' вратиться к нему позже. Поясним на примере. Допустим, вам необходимо в онлай' новом режиме заполнить декларацию о доходах либо ответить на вопросы договора о страховании, но вы не можете закончить этот процесс из'за отсутствия ряда дан' ных. Следуя алгоритму существующей версии, вы обязаны либо выслать запол' ненную форму, либо прекратить процесс и потерять выполненную часть работы. Применение XForms позволяет прервать ввод информации, сохранив результа' ты уже сделанных операций. Приложения XForms наследуют концепции технологии клиент/сервер, поэто' му формы можно разделить на три категории: по представлению данных, их логи' ческой обработке и хранению. Такая организация соответствует n'звенной модели сервера (распределение объектов по множеству серверов приложений для разде' ления вычислительной нагрузки). Работа над XForms, вероятно, приведет к последовательной реализации раз' личных модулей, началом которой станет построение модуля'ядра. Такое приме' нение модулей в технологии XForms тесно связано с концепциями модульного проектирования в XHTML (см. часть III). На этом мы закончим обзор расширений языков XML и XHTML.
www.books-shop.com
Структуры XForms Name: