| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
XML на экране броузера Аббревиатура XML в последнее время, как говорится, "на слуху". Поддержку
XML обещают производители новых броузеров, разрабатываются XML-редакторы, все
чаще можно услышать об очередных невероятных применениях XML. Что же стало причиной
появления и столь быстрого распространения этой технологии? Универсальное средство описания данных Несмотря на то что XML часто рассматривают как альтернативу HTML, в списке
применений данного языка достаточно редко встречаются ссылки на Web-узлы, использующие
XML именно для разметки документов. Здесь явно лидируют сообщения о специализированных
языках описания данных, построенных на его основе. А как же Web? Итак, описание данных, язык запросов. А как же собственно "ML"?
Ведь XML -- это eXtensible Markup Language, т. е. язык разметки. Как он выглядит
в качестве альтернативы HTML? И нужна ли эта альтернатива? На последний вопрос
большинство специалистов единодушно отвечают "Да!". Язык HTML плохо
справляется с ролью основного средства публикации в Web. Главный его недостаток
состоит в полном отсутствии инструментария для структурирования документов. Такое
качество, как гибкость, тоже мало присуще HTML. Новые возможности в лучшем случае
станут доступными с выходом очередной версии, а до тех пор -- обходись тем, что
имеешь. Структура на экране Написать простой XML-документ совсем несложно, с этим справится даже начинающий.
А для тех, кто абсолютно ничего не знает о XML, в Internet опубликовано множество
учебных пособий, одно из которых обещает обучить этому языку
Но, помимо способности описывать данные, XML должен "уметь" отображать их, в противном случае о применении в Web не может быть и речи. На первый взгляд совершенно непонятно, в каком виде документ будет выведен на экран. Напрямую об этом не говорится ни в одном из руководств, а мимоходом брошенные фразы часто ускользают от внимания. Что же делать с документом? Ведь в нем нет даже намека на форматирование. Смешно предполагать, что броузер сможет угадать, в каком виде автор хотел бы представить свое произведение на экране, однако трудно удержаться от соблазна тут же открыть его в одном из поддерживающих XML броузеров, благо, их становится все больше. Для первого эксперимента вполне подойдет Internet Explorer 5.0 или более поздняя версия. Итак, документ открыт, и перед глазами предстает довольно неожиданная картина. Естественно было бы ожидать презрительного сообщения об ошибке, но вместо этого воспроизводится структура документа (рис. 1): соблюдена иерархия объектов; щелкнув на символе "--", можно свернуть часть документа, а на знаке "+" -- отобразить ее снова.
Результат, конечно, впечатляет, хотя назвать его полноценной Web-страницей можно с трудом. Структура на экране вряд ли привлечет посетителя. Без форматирования все же не обойтись. Таблицы стилей Чтобы получить на экране пристойный результат, надо вспомнить о каскадных
таблицах стилей (CSS), которые часто используются разработчиками HTML-документов.
Для форматирования документа достаточно связать с ним CSS-файл, определив стиль
для каждого элемента (листинг 2).
Теперь результат достигнут. На экране отображается полноценный документ, но созданный уже не на HTML, а на XML (рис. 2).
На первый взгляд кажется, что XML не позволяет сделать ничего такого, чего нельзя было бы добиться с помощью средств HTML и CSS. Более того, если в HTML выбор представления всех элементов можно оставить на усмотрение броузера, то при построении XML-документа приходится самостоятельно продумывать формат каждого. Безусловно, это требует усилий и времени, зато потом преимущества XML становятся очевидными. В XML-документе описание данных полностью отделено от описания формата. Именно это свойство XML доставляет множество неприятностей начинающему. Учитывая, что XML-документ имеет строгую древовидную структуру, можно представить себе, какие богатые возможности получает Web-дизайнер. Предположим, что разработчик решил выделить сведения о своей любимой системе (конечно же Unix) красным цветом. Для этого надо добавить всего одну строку в CSS-файл:
Как видите, файл с описанием данных редактировать не надо. В HTML для этого потребовалось бы проанализировать код документа, найти нужные абзацы (заметьте, что размеры реального файла обычно не ограничиваются десятком строк) и включить в исходный текст новые дескрипторы. А если в дальнейшем разработчик решил бы отобразить заголовки каким-нибудь другим цветом (например, зеленым), он почти наверняка запутался бы в HTML-коде. При работе же с XML требуемые действия по-прежнему тривиальны. Казалось бы, использование CSS решает проблему с отображением XML-документов, однако при внимательном рассмотрении приходится признать, что CSS не позволяет полностью раскрыть потенциальные возможности XML. Представьте себе, что, экспериментируя с визуализацией документа, разработчик решил несколько уменьшить размер шрифта, которым отображаются заголовки для BSD и SunOS (действительно, ведь это лишь различные клоны одной системы), и объединить их в одном подразделе (например, "UNIX"). Но если отредактировать стиль элемента Name, уменьшится и заголовок для Win95, что противоречит первоначальному плану. Чтобы такое преобразование стало возможным, правила форматирования текста должны быть контекстно-зависимыми. Надо, чтобы Name выводился по-разному исходя из принадлежности к родительскому элементу. Глядя на XML-файл, текст которого приведен в начале статьи, можно заметить, что в каждом из элементов Platform повторяется слово Platform:. Было бы разумным вовсе исключить это слово из исходного текста и отображать его в процессе форматирования. После некоторых размышлений приходится констатировать, что выразительные средства каскадных таблиц стилей не позволяют решить ни первую, ни вторую задачи. И если при переходе от CSS1 к CSS2 и появляется возможность распознавать контекст, то для вставки текста на этапе форматирования требуются гораздо более мощные средства. Вероятно, к такому же выводу пришли и разработчики XML, поскольку результатом их деятельности стала спецификация нового языка для форматирования и преобразования XML-документов. Этот язык получил название XSL (eXtensible Style Language). Шаг за горизонт: XSL Жизнь полна неожиданностей. Приступив к изучению XML, Web-мастер вынужден
вспомнить (или изучить заново) CSS, затем выясняется, что для того чтобы двигаться
дальше, надо разобраться в возможностях XSL, которые выходят далеко за рамки использования
XML в Web. Действительно, средства XSL позволяют не только форматировать, но и
конвертировать XML-документ, представляя его практически в любом виде: от форматов,
используемых для описания текста (PDF, PostScript, SGML, TeX), до звуковых и графических
файлов.
При таком представлении стилей не составляет никакого труда выборочно настроить вид одного или нескольких элементов. Чтобы изменить уровень заголовков BSD и SunOS и объединить их в один раздел, достаточно строк, представленных на листинге 4. А для того чтобы исключить слово Platform: из исходного текста, довольно изменить соответствующий элемент XSL-описания.
Действительно, теперь средства публикации документа приобрели новое свойство, которого им так недоставало ранее, -- гибкость. Тем не менее нам есть о чем задуматься. Обратите внимание, что, пытаясь уйти от ограничений, накладываемых HTML, пришлось изучить XML, решить множество проблем и... снова вернуться к HTML. Замкнутый круг? Нет, так только кажется. Ведь исходный текст документа по-прежнему представлен на языке XML, в XSL-файле хранится его стилевое описание, а HTML -- лишь выходной формат, который в любой момент может быть изменен. При необходимости модифицировать документ редактируется только структурированный XML-файл, преобразуемый в HTML посредством формальной процедуры. На поводу у капризного броузера Итак, XML-документ и его стилевое описание в XSL-файле готовы. Осталось
представить его читателю. Но как это сделать? Самое простое решение -- передать
XML- и XSL-данные броузеру, предоставив ему выполнять преобразование самостоятельно.
Но, как уже говорилось, большинство броузеров попросту не справятся с обработкой
такого документа. Ветер перемен в Web Какая же судьба уготована привычному всем нам языку HTML? Уступит ли он
позиции конкуренту в лице XML или еще поборется за место под солнцем? Очевидно,
что в самое ближайшее время HTML ничего не грозит. Большинство разработчиков Web-документов
будут по-прежнему использовать именно его. Однако недостатки HTML очевидны, а
XML обладает потенциальными возможностями для их ликвидации, хоть для этого и
потребуется упорная работа многих специалистов. По мере же расширения поддержки
нового языка XML-документы станут реально вытеснять HTML-страницы из Web. Впрочем,
не исключено, что в один прекрасный день будет разработан новый язык, простой
и в то же время гибкий, который решительным жестом заставит потесниться как HTML,
так и XML. Подобных примеров в истории информационных технологий уже было немало.
|
|
| ||||||||||||||||
|