И, наконец, большое спасибо моей семье и моим добрым друзьям — Юре Лотнику, Антону Кузнецову и Юле Кирилловой за поддержку, которая чувствовалась за несколько тысяч километров.
Глава 1
Введение в XML
Что такое XML?
За последние несколько десятков лет, прошедших с создания первых электронных устройств, в игру с природой человеком была введена третья сторона — вычислительные машины. Человек постепенно доверил им свою память, переложил на них сложные алгоритмические задачи, вычисления, принятие решений, и вообще все то, с чем плохо справлялся сам в информационном мире.
Но на всем пути становления информационных систем человек неизбежно сталкивался с одной и той же проблемой — с проблемой понимания. Если два человека, говорящие на разных языках, попробуют объяснить что- нибудь друг другу, то это легко может получиться, когда проблема проста, например, 'как пройти к большому зданию с куполом наверху?'. Однако же, в случае, если объяснить нужно что-нибудь более сложное, то, не зная языка собеседника, сделать это будет очень трудно.
Проблема понимания между человеком и машиной усугубляется еще и тем, что машина — это цифровое устройство, и все данные в ней состоят из атомов информации — битов, принимающих только два значения — '0' (что иногда понимается, как 'нет' или 'ложь') и '1' ('да', 'истина'). Изначально цифровые устройства вообще использовались только для решения математических задач — расчета баллистики, шифрации и тому подобного.
Для машинной записи естественных языков люди ставили в соответствие символам числа, организуя, таким образом, текстовую информацию в машинном представлении. Это был первый шаг на пути взаимопонимания между машинами и человеком — отпала необходимость писать программы в двоичных кодах. В течение короткого времени было создано множество языков программирования, одновременно понятных как человеку, поскольку они использовали синтаксические конструкции естественных языков, так и машине, потому как могли быть переведены (транслированы) в машинные коды.
Затем произошел взрыв. Программирование, которое во времена машинных кодов было уделом энтузиастов, стало массовым, идеи и вложения полились рекой, и дальнейшее развитие информационных технологий можно сравнить с распространением ударной волны.
В жизни современного общества сложно переоценить эффект, произведенный появлением и повсеместным распространением нового глобального пространства обмена информации — сетью Интернет. То, что начиналось как военная разработка для доставки электронных сообщений и депеш, вылилось в новое информационное измерение пространства, не знающее географических границ. Интернет позволил обмениваться информацией в электронном виде, объемы которой к тому времени уже были огромны.
Однако, Интернет, в свою очередь, возродил старую проблему понимания — вопрос 'как ты поймешь то, что я тебе скажу?' был заменен проблемой 'как система В сможет переработать информацию, которую предоставит ей система A?'. Пытаясь ответить на это, люди стали создавать стандарты и протоколы, которые позволили бы системам общаться на одних языках. Вместе с тем, по мере глобализации Интернета и увеличения числа систем, обменивающихся информацией (от рабочих станций обычных пользователей — до суперсерверов с огромными базами данных), объем информации, требовавшей стандартного выражения, прогрессировал экспоненциально.
Расширяемый язык разметки XML (extensible Mark-up Language) — это результат довольно успешной попытки создать язык для текстового выражения структурированной информации в стандартном виде. XML — это метаязык в том смысле, что сам по себе он не имеет операторов, не определяет никакую алгоритмическую последовательность действий и не выполняет никаких вычислений, его цель — описывать новые языки документов.
Разметка документов
Идею разметки документов будет проще всего проиллюстрировать на примере. Представим себе следующий рекламный текст:
Предлагаем Вашему вниманию новый 3-х камерный холодильник 'Горск' объемом 250 л. и стоимостью всего 4500 рублей! Новый дизайн, быстрое охлаждение и низкое энергопотребление, 3-х годовая гарантия на все узлы и агрегаты, а также бесплатная доставка по городу! Заказывайте прямо сейчас по телефону 091-12-15. Фирма 'Горск-Холод'.
Размещая это объявление где-нибудь на Web-сайте, нам может понадобиться выделить некоторые части, чтобы получить представление вида:
Предлагаем Вашему вниманию новый 3-х камерный холодильник 'Горск' объемом 250 л. и стоимостью всего 4500 рублей! Новый дизайн,
Фирма 'Горск-Холод'.
Идея разметки состоит в том, чтобы использовать для выделения частей документа простые текстовые метки, называемые
Простым примером языка разметки является уже, скорее всего, знакомый читателю HTML — язык разметки гипертекста. В HTML задан набор тегов для визуального форматирования документа, например:
□ <P>
— выделяет содержимое, как параграф;
□ <BR>
— задает перенос строки;
□ <B>
— выделяет содержимое полужирным шрифтом;
□ <I>
— выделяет содержимое курсивом;
□ <U>
— подчеркивает содержимое.
Теги могут быть <B>
) выделяют часть документа, одиночные (например, <BR>
) задают некую инструкцию.
В предыдущем примере текст может быть размечен следующим образом.
<Р>Предлагаем Вашему вниманию новый 3-х камерный холодильник <В>'Горск'</В> объемом 250 л. и стоимостью всего <В>4500</В> рублей! Новый дизайн, <I>быстрое охлаждение</I> и <I>низкое энергопотребление</I>, <В>3-х годовая гарантия</В> на все узлы и агрегаты, а также <I>бесплатная доставка по городу</I>! Заказывайте прямо сейчас по телефону <U>091-12- 15<U>. <BR><BR>Фирма 'Горск-