Веб-дизайн
Шрифт:
• XML-ссылки реализованы не на уровне тегов (как в случае тега А языка HTML), а с помощью зарезервированных имен атрибутов. Это позволяет с легкостью превратить в гипертекстовую ссылку любой элемент документа, просто расширив его список атрибутов.
• Для XML-ссылки можно указать, будет ли она обычной ссылкой, активизируемой пользователем (щелчком мышью, к примеру), или же броузер, встретив в документе эту ссылку, должен активизировать ее сам, не дожидаясь команды пользователя.
• Для ссылки можно указывать результат ее активации, а именно: вывести ли документ, на который она ссылается, вместо текущего (например, в том же окне броузера), создать ли для него новый контекст вывода (например, новое окно), или же содержимое нового документа нужно вставить внутрь текущего
• Важные усовершенствования внесены в синтаксис URL-адресов, использующихся в ссылках. Выше я уже упоминал, что адреса могут содержать параметры вызова программы или идентификатор фрагмента документа, отделяемые от основной части адреса соответственно символами? и # (стр. 30). XML расширяет синтаксис этих конструкций, благодаря чему, не теряя обратной совместимости с существующими адресами, они позволяют адресовать практически любой фрагмент любого XML- или HTML-файла. При этом не требуется, чтобы автор файла, на который ссылаются, как–то по–особому разметил этот фрагмент (в HTML, как вы знаете, его нужно пометить тегом А с атрибутом name). Более того, вырезание этого фрагмента из документа можно переложить на сервер, на котором документ хранится, тем самым избежав пересылки по сети документа целиком (правда, для этого нужно, чтобы сервер умел обрабатывать такие «расширенные» запросы).
XSL. Как я уже упоминал, ничто не мешает использовать с XML-документами стилевые спецификации на языке CSS (стр. 40), и для не особенно требовательных к дизайну документов эта комбинация технологий, по–видимому, будет оптимальной. С другой стороны, оформить заголовки, блоки текста и навигационные элементы хотя бы приблизительно так же, как они оформлены на веб–странице на рис. «I, с помощью CSS невозможно. Поэтому в качестве одной из стандартных надстроек над XML Консорциум W3 разработал стилевой язык XSL (extensible Stylesheet Language, «Расширяемый язык стилевых спецификаций»).
Один из прототипов XSL — созданный уже довольно давно для использования совместно с SGML язык DSSSL (Document Style Semantics and Specification Language, «Язык стилистических и семантических спецификаций документов»). Как и DSSSL, XSL предполагает два последовательных этапа при обработке документа. На первом этапе иерархическое дерево элементов исходного документа преобразуется в другое дерево, которое, в принципе, может не иметь с исходным почти ничего общего: содержимое может быть переупорядочено, по–иному разбито на элементы, в нем может отсутствовать часть исходного материала (фильтрация) и добавлен новый (генерируемое содержимое, стр.44). Теги, которыми размечен этот преобразованный документ, могут опять–таки быть любыми (стилевая спецификация документа описывает правила их порождения в зависимости от содержимого оригинала), но общий принцип состоит в том, что эти новые теги уже не должны соотноситься со структурной основой документа, а могут содержать только параметры форматирования тех его частей, которые подлежат выводу.
На втором этапе в дело вступает собственно форматировщик, интерпретирующий теги преобразованного на первом этапе документа и выводящий его на экран, на печать или любое другое устройство вывода. Среди прочего стандарт XSL описывает базовый набор тегов визуального форматирования, к которым рекомендуется приводить XML-документы на первом этапе обработки и которые обязан понимать форматировщик любого XSL-процессора. По предоставляемым возможностям эта «визуальная» часть XSL превосходит CSS2, однако пока она еще не закончена и, очевидно, в дальнейшем будет еще расширяться и пересматриваться.
Если же учесть тот факт, что «словарь» визуального форматирования XSL должен еще пройти долгий и болезненный процесс реализации и отладки в броузерах, на данный момент более реалистичным кажется другой подход к использованию XSL. Чуть выше я говорил, что на первом этапе обработки XML-документ может быть приведен к любому формату, использующему любые теги, с единственным требованием — чтобы формат этот не нарушал синтаксис XML (правильная
Этот сценарий предлагает путь относительно безболезненной миграции на XML для огромной массы сайтов, использующих сейчас типично «визуальный» HTML. Для этого, однако, их HTML-разметка должна как можно точнее соблюдать заповеди модульного HTML (стр. 45). Например, приведенный на стр.46 блок внутритекстового заголовка глобальным поиском легко заменить на логический XML-элемент:
<FRAMED-HEADING>The Coad Method</FRAMED-HEADING>
Теперь достаточно написать стилевую спецификацию на XSL, которая преобразовывала бы каждую копию элемента FRAMED-HEADING в соответствующий HTML-блок и вставляла бы в нужное место внутри этого блока содержимое обрабатываемого элемента — т. е. текст заголовка, попутно переводя его в верхний регистр (несомненно, регистр текста принадлежит в данном случае к аспекту представления, а не содержания, так что из XML-документа эту подробность лучше убрать).
На момент написания этой книги конверсия модульного HTML в XML + XSL реализуема только в броузере MS1E 4.0 с помощью разработанного фирмой Microsoft ActiveX-компонента (стр. 70), транслирующего XML в HTML и передающего полученный HTML-код стандартному механизму форматирования броузера.
Графика
Технологии компьютерной графики опираются на нисколько не менее абстрактные концепции и потому ничуть не проще для освоения, чем только что рассмотренные технологии текстовой разметки. Даже профессионалам в этой области полезно иногда отступить на шаг назад, чтобы окинуть обобщающим взглядом пеструю мешанину форматов, программ и стандартов.
Если верно, что компьютер — инструмент для реализации абстракций, то для успешной работы с ним человек должен сам легко овладевать абстракциями и уметь приводить к ним явления реального мира. С таким целостным и гармоничным (в смысле пушкинской «гармонии», которую нельзя «поверить алгеброй») явлением, как графика, это может показаться еще более трудным, чем со всегда несколько суховатым и склонным к формализму (будь то формализм грамматики или же формализм компьютерного языка разметки) текстом. Однако и награда за соединение несоединимого велика: если текст в компьютере всегда останется текстом, то в работе с изображениями компьютер даст вам такую творческую свободу и откроет перед вами такие возможности, которые в докомпьютерную эпоху трудно было даже вообразить.
ВЕКТОР
Все компьютерные изображения, все форматы для их хранения и все программы для их обработки делятся на два больших класса — векторные и растровые, — различающиеся прежде всего уровнем абстракции, примененной к изображению. Можно сказать, что если векторная графика пытается имитировать восприятие изображений человеком, то растровый формат хранит графику в том виде, в каком она легче всего переваривается компьютером. Соответственно, векторная графика в большинстве своем создается человеком с нуля прямо в векторном редакторе, а попытки генерировать ее автоматически (алгоритмы трассировки, стр.100) редко когда приводят к удовлетворительному результату. И наоборот, основной поставщик растровых изображений — фотографии, т. е. в существенной своей части автоматический процесс с легко оцифровываемыми результатами.