ББК 32.973.26-018.1
Б97
Бумфрей Ф., Диренцо О., Дакетт Й. и др.
Б97 XML. Новые перспективы WWW. Пер. с англ. – М.: ДМК. – 688 с.: ил.
(Серия «Для программистов»).
ISBN 5-93700-007-2
В книге в сжатой форме излагаются основы XML – расширяемого
языка разметки, а также приводятся примеры его практического использования.
На сегодняшний день этот язык считается самым перспективным
средством создания Web-документов. Широки его возможности и в качестве
средства работы с базами данных и мощного механизма преобразования
формата сообщения. Главные достоинства XML – гибкость, свобода в создании
самых разнообразных тэгов, способность объединять информацию
из различных источников в единый непротиворечивый документ. С языком
XML тесно связаны самые новейшие разработки в Web-технологиях, такие
как XML-схемы и пространства имен.
ББК 32.973.26-018.1
Authorized translation from English Language Edition published by Wrox Press Ltd. Original
copyright © Wrox Press, «XML Applications», by F. Boumphrey, O. Direnzo, J. Duckett et al.
Translation by DMK Press.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то
ни было форме и какими бы то ни было средствами без письменного разрешения владельцев
авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность
технических ошибок все равно существует, издательство не может гарантировать абсолютную
точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности
за возможные ошибки, связанные с использованием книги.
ISBN 1-861001-9-08 (англ.) Copyright © Wrox Press
ISBN 5-93700-007-2 (рус.) © Перевод на русский язык, оформление ДМК
Стр.5
Содержание
Об авторах .............................................................................................. 14
Предисловие переводчика .................................................................... 17
Введение в XML ...................................................................................... 19
Глава 1. Складываем мозаику XML ........................................... 40
Биты и части ....................................................................................... 40
Определение типа документа .......................................................... 41
Правильные и состоятельные документы .......................................... 43
Таблицы стилей ................................................................................ 44
Расширяемый язык таблиц стилей XSL ............................................. 50
Анализаторы ..................................................................................... 52
Создание ссылок в XML .................................................................... 55
Комментарии в XML .......................................................................... 57
Новые птенцы в нашем гнезде ......................................................... 57
Пространства имен XML ................................................................... 58
XMLсхемы ....................................................................................... 59
Просмотр XMLфайлов ..................................................................... 61
XML в реальном мире ........................................................................ 65
Формат определения канала ............................................................ 65
Химический язык разметки .............................................................. 65
Открытый финансовый обмен .......................................................... 66
Заключение ........................................................................................ 67
Глава 2. Правильные и состоятельные документы ............. 69
Правильные документы .................................................................... 69
Приступаем к созданию документа ................................................... 70
Элементы ......................................................................................... 71
Атрибуты .......................................................................................... 75
Компоненты ...................................................................................... 76
Отложенный разбор участков данных ............................................... 86
DTD: состоятельный документ ......................................................... 88
Объявление XML ............................................................................... 89
Описание типа документа ................................................................. 90
Стр.6
XML. Новые перспективы WWW
Определение типа документа ........................................................... 91
Описание элементов ........................................................................ 92
Описание списка атрибутов ............................................................ 101
Описание компонентов .................................................................. 112
Команды приложений .................................................................... 118
Условные разделы .......................................................................... 121
Стиль описания ................................................................................ 122
Заключение ...................................................................................... 124
Глава 3. XMLсхемы ....................................................................... 125
Определение типа документа XML как схема ............................... 127
XMLсхема: общие вопросы ........................................................... 128
Трудности написания хорошего DTD ............................................... 128
Нерасширяемость DTD ................................................................... 128
DTD плохо описывает данные XML .................................................. 128
DTD не поддерживает пространства имен ...................................... 130
Ограничения описательной способности DTD ................................ 130
DTD и содержание элемента по умолчанию .................................... 130
Проверка определения типа документа ........................................ 130
Создание базы данных при помощи XML ...................................... 132
XMLданные: предлагаемое решение .......................................... 135
Простейший пример XMLданных ................................................... 135
Более сложный пример XMLданных ............................................... 138
Cвойства XMLданных .................................................................... 147
Типы данных ................................................................................... 150
Описание содержания документа ................................................. 151
Описание содержания документа – начнем с простого ................... 153
Узлы DCD и типы ресурсов ............................................................. 155
Как элементы и атрибуты рассматриваются в DCD ......................... 155
Заключение ...................................................................................... 162
Глава 4. Пространства имен ....................................................... 163
О чем говорится в этой главе ......................................................... 164
Что такое пространство имен ......................................................... 164
Идентификация и описание пространств имен ............................ 166
Синтаксис пространств имен .......................................................... 166
Описание пространств имен ........................................................... 166
Пространства имен и область действия .......................................... 168
Атрибуты и пространства имен ....................................................... 169
Вывод элементов из области действия .......................................... 170
Зачем нужны пространства имен ................................................... 171
Уникальное определение элементов и атрибутов ........................... 171
Повторное использование схем ...................................................... 171
Обучение агента пользователя ....................................................... 172
Стр.7
Содержание
Чего не может пространство имен ................................................ 173
Ожидаемое поведение агента пользователя ............................... 174
Применение пространств имен ..................................................... 174
Таблицы стилей в Internet Explorer 5 ............................................... 174
Расширяемый язык таблиц стилей .................................................. 176
Формат описания ресурсов RDF ..................................................... 178
Заключение ...................................................................................... 180
Глава 5. Ссылки и указатели в XML ......................................... 181
Формирование ссылок в HTML ...................................................... 182
Простые ссылки .............................................................................. 182
Немного терминологии ................................................................... 182
Различие между связыванием и адресацией ................................... 183
Указатели в HTML ............................................................................ 183
Простые ссылки в XML .................................................................... 185
Определение тэгов ссылки ............................................................. 185
Атрибуты, предлагаемые спецификацией XLink .............................. 187
Атрибут xml:attribute ........................................................................ 189
Совместимые с XLink агенты пользователя .................................. 190
Обзор терминологии ....................................................................... 190
Расширенные ссылки ...................................................................... 193
Встроенные расширенные ссылки .................................................. 194
Внешние расширенные ссылки ....................................................... 196
Использование внешних расширенных ссылок ........................... 198
Малая сеть intranet .......................................................................... 198
Большая сеть intranet ...................................................................... 199
Поведение агента пользователя...................................................... 200
Дистанционное комментирование документов ............................... 201
Обслуживание ссылок ..................................................................... 202
Xуказатели ...................................................................................... 203
Синтаксис локатора ........................................................................ 205
Синтаксис Xуказателей ................................................................ 207
Абсолютное место .......................................................................... 208
Относительное указание места ....................................................... 209
Ключевые слова относительного указания ...................................... 210
Использование ключевых слов ........................................................ 211
Указание с помощью атрибута ........................................................ 213
Интервальный терм места ............................................................... 214
Строковый терм места .................................................................... 214
Xуказатели и определение типа документа ................................ 215
Заключение ...................................................................................... 216
Глава 6. Объектная модель документа XML ......................... 217
О чем говорится в этой главе ......................................................... 217
Общее представление о моделях документа ............................... 218
Стр.8
XML. Новые перспективы WWW
Дерево XMLдокумента ................................................................... 220
Документ XML как совокупность объектов .................................... 221
Объекты XML .................................................................................. 222
Возможные свойства ...................................................................... 222
Типы узловых объектов ................................................................... 223
Интерфейс приложения для объектной модели документа ........ 223
Значение общепринятого интерфейса приложения ........................ 224
Язык определения интерфейсов группы управления объектами ..... 224
Статус объектной модели документа .............................................. 226
Интерфейсы объектной модели документа .................................. 227
XML в браузере IE5 .......................................................................... 233
Островок XML ................................................................................. 233
Элемент ActiveX для XML ................................................................. 234
Примеры интерфейсов объектной модели документа ................ 235
Интерфейсы Document и Node ........................................................ 235
Интерфейс Node ............................................................................. 236
Интерфейс Document ..................................................................... 241
Методы интерфейсов Node и Document .......................................... 246
Интерфейс CharacterData ............................................................... 248
Интерфейс Attr ............................................................................... 250
Интерфейс Element ......................................................................... 251
Интерфейс узла Text ....................................................................... 255
Интерфейс Comment ...................................................................... 255
Интерфейс Processing Instruction .................................................... 255
Интерфейс DocumentType .............................................................. 256
Интерфейс Notation ........................................................................ 257
Интерфейс Entity ............................................................................ 257
Интерфейс EntityReference ............................................................. 257
Некоторые простые реализации .................................................... 258
Основной рекурсивный цикл ........................................................... 258
Простое оформление стилями ........................................................ 260
Простые таблицы ............................................................................ 262
Подготовка слайдов ........................................................................ 264
Другие примеры ............................................................................. 273
XML и поисковые машины .............................................................. 274
Заключение ...................................................................................... 274
Глава 7. Просмотр XMLдокументов ....................................... 275
HTML в сравнении с XML ................................................................. 275
Таблицы стилей .............................................................................. 276
Потоковые объекты ........................................................................ 277
Стр.9
Содержание
Просмотр в браузере ...................................................................... 278
Способы демонстрации XMLфайлов .............................................. 279
Демонстрация на различных устройствах ....................................... 279
Демонстрация приложениями пользователя .................................. 279
Каскадные таблицы стилей ............................................................ 280
Что такое каскадная таблица стилей CSS ........................................ 280
Простое правило стиля CSS ............................................................ 280
Соединение таблицы стилей и документа ....................................... 282
Правило стиля ................................................................................ 283
Свойства и значения ....................................................................... 285
Формы правил каскадных таблиц стилей ........................................ 287
Каскадирование и наследование .................................................... 290
Рамки ............................................................................................. 291
Классы ............................................................................................ 294
Преобразование XMLдокументов ................................................. 299
Преобразование вручную ............................................................... 299
Использование анализатора XMLparse.exe ..................................... 300
Преобразование XML со «старой» таблицей стилей XSL .................. 305
Язык Spice ........................................................................................ 305
Концепции языка Spice ................................................................... 306
Потоковые объекты языка Spice ...................................................... 308
Режимы и непоследовательное воспроизведение .......................... 310
Таблицы стилей, зависящие от системы воспроизведения ............ 312
Графика .......................................................................................... 313
Присоединение таблиц стилей Spice .............................................. 313
Уровень разработанности языка Spice ............................................ 314
Заключение ...................................................................................... 314
Глава 8. Расширяемый язык таблиц стилей XSL ............... 315
О чем говорится в этой главе ......................................................... 316
Краткий обзор .................................................................................. 316
Здравствуй, XSL! .............................................................................. 317
Потоковые объекты ......................................................................... 318
Что представляют собой шаблоны XSL ......................................... 318
Построение дерева XSL .................................................................. 320
Построение результирующего дерева из исходного ...................... 324
Пространства имен и таблицы стилей XSL ................................... 327
Атрибуты элемента xsl:stylesheet .................................................... 329
Правила шаблона таблиц стилей XSL ............................................ 330
Разрешение конфликтов сопоставлений ........................................ 335
Форматирующие объекты, задающие размещение .................... 336
Простые форматирующие объекты ................................................. 336
Стр.10
10
XML. Новые перспективы WWW
Потоковые объекты содержимого ................................................. 337
Применение стилей ........................................................................ 340
Преобразование CSS в XSL ............................................................. 341
Простая обработка ........................................................................ 341
Утраченные форматирующие объекты ............................................ 342
Сложное применение стилей .......................................................... 343
Обработка пробельных литер ......................................................... 344
Пространство имен CSS ................................................................. 344
Будущее языка XSL ......................................................................... 346
Заключение ...................................................................................... 346
Глава 9. XML и уровни данных ................................................... 348
Методы доставки XMLдокументов ............................................... 349
Электронный список телефонов ................................................... 350
Создание XML на SQLсервере ....................................................... 351
Использование SQL Server Web Assistant ........................................ 354
Создание XMLданных в промежуточных системах ......................... 367
HTMLформа для обновления списка телефонов ............................ 375
Заключение ...................................................................................... 382
Глава 10. XML на стороне сервера ........................................... 383
Причины использования XML на сервере ..................................... 383
Клиенты: агенты, браузеры и другие ............................................. 385
Система хранения технических статей ......................................... 385
Клиент ............................................................................................ 386
Сервер ........................................................................................... 388
Публикация статей .......................................................................... 392
Рассмотрение архитектуры ядра .................................................. 393
Компромиссы в системе клиентсервер ......................................... 394
Вопросы передачи данных .............................................................. 395
Создание XMLфайла на стороне клиента ................................... 397
Пользовательский интерфейс ......................................................... 397
Оформление параметров поиска .................................................... 398
Обработка XMLдокумента, возвращенного сервером .................... 400
Управление XML в Active Server Pages ........................................... 401
Глобальные объекты сервера .......................................................... 402
Загрузка XMLстроки ...................................................................... 402
Получение корня дерева разбора ................................................... 403
Подготовка ресурсов базы данных .................................................. 403
Обход дерева разбора .................................................................... 404
Извлечение параметров ................................................................. 405
Получение ответов на запросы пользователя ................................. 407
Стр.11
Содержание
11
Как реагирует клиент ...................................................................... 410
Подготовка XMLфайла к разбору на стороне клиента .................... 410
Подготовка к работе с результатами ............................................... 412
Заполнение таблицы ...................................................................... 414
Представление материалов ........................................................... 416
ASP для презентации ...................................................................... 417
Как работает XSLпроцессор .......................................................... 418
Пространства имен, метаданные и будущие приложения .......... 422
Пространство имен XML ................................................................. 422
XMLданные ................................................................................... 423
Заключение ...................................................................................... 424
Глава 11. Учебный пример «Туристический маклер» ........ 425
Приложение «Туристический маклер» ........................................... 426
Решение ......................................................................................... 426
Архитектура ...................................................................................... 427
Трехуровневая архитектура ............................................................ 428
Трехуровневая архитектура, использующая XML ............................ 428
Службы данных приложения .......................................................... 432
Базы данных ................................................................................... 432
Определения типа документа для XML ........................................... 435
Реализация при помощи ASP и ADO ................................................ 439
Что делать дальше ........................................................................... 446
Бизнесслужбы ................................................................................ 446
Пример ........................................................................................... 447
Реализация .................................................................................... 448
Службы пользователя ..................................................................... 459
Пример ........................................................................................... 459
Форматирование у клиента при помощи CSS ................................. 460
Форматирование на сервере при помощи XSL ............................... 460
Реализация ..................................................................................... 463
Заключение ...................................................................................... 465
Ссылки для получения дальнейшей информации ........................ 466
Глава 12. «Сорняки Эль Лимона»: заказная издательская
Web‑система на основе XML ...................................................... 467
Как мы попали в этот переплет ...................................................... 467
Почему не годились простые Webстраницы ................................... 468
Почему я выбрал XML ...................................................................... 468
Почему я выбрал статические Webстраницы ................................. 470
Почему я выбрал Java ..................................................................... 471
Создание XMLдокумента .............................................................. 472
Стр.12
12
XML. Новые перспективы WWW
Пример документа .......................................................................... 472
Определение типа документа ........................................................ 473
Главные решения ............................................................................ 474
Описание элементов ...................................................................... 475
Обработка XMLдокумента ............................................................. 479
Трехуровневая архитектура ............................................................ 479
Уровень данных .............................................................................. 481
Уровень ввода ................................................................................ 489
Уровень ввода: превращение XML в Species ................................... 491
Уровень вывода .............................................................................. 497
Генерирование HTMLкода .............................................................. 510
Как самому построить приложение «Сорняки Эль Лимона» ....... 535
Построение «Сорняков…» под Windows ........................................... 535
Построение «Сорняков…» под UNIX ................................................ 536
Заключение ...................................................................................... 537
Глава 13. Формат определения канала ................................ 538
Учебный пример на CDFтехнологию ........................................... 539
Исходная ситуация ......................................................................... 539
Какую пользу принесет использование CDFтехнологии ................. 541
Создание CDFфайла ..................................................................... 542
Тестирование CDFфайла ............................................................... 549
Присоединение содержания к CDFфайлу ...................................... 550
Дальнейшее подсоединение страниц к CDFфайлу ......................... 555
Заключение ...................................................................................... 564
Приложение A. Языки и обозначения ..................................... 565
Приложение B. XMLресурсы и ссылки ................................. 569
Приложение C. Спецификация
расширяемого языка разметки XML 1.0 ............................... 574
Приложение D. XMLданные и типы данных DTD .............. 622
Приложение E. XML DTD для XMLданных ............................ 625
Приложение F. Свойства
каскадных таблиц стилей CSS1 ................................................ 630
Стр.13
Содержание
13
Приложение G. Свойства
каскадных таблиц стилей CSS2 ................................................ 639
Приложение H. Поддержка читателей
и список опечаток .......................................................................... 652
Алфавитный указатель ................................................................. 659
Стр.14