Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Уровни соответствия




Если в SGML каждый до­кумент обязан иметь свое DTD, а у HTML есть одно DTD на всех, то XML представляет собой компромисс: документ может иметь (или ссылаться на) DTD, а может и обходиться без DTD. В последнем случае каждый новый тег и атрибут определяются самим фактом своего употре­бления. Таким образом, для XML-документов существует два уровня соответствия стандарту: документы, не имею­щие DTD, но удовлетворяющие всем другим требованиям синтаксиса XML, называют правильно структурированными (well-formed), чтобы отличить их от документов валидных (valid), имеющих в своем составе DTD (или ссылку на внешнее DTD).

Правильно структурированные документы, хотя и уступают по «правильности» документам валидным, годятся для боль­шинства практических случаев. Это значит, что вы можете сразу же начать описывать структуру вашего документа на «почти человеческом» языке, выдумывая теги на ходу и заботясь лишь об их правильной вложенности:

<ПРЕДЛОЖЕНИЕ>

<ПОДЛЕЖАЩЕЕ>

<СУЩЕСТВИТЕЛЬНОЕ> мама </СУЩЕСТВИТЕЛЫЮЕ>

</ПОДЛЕЖАЩЕЕ>

<СКАЗУЕМОЕ тип="простое"> <ГЛАГОЛ> мыла </ГЛАГОЛ>

</СКАЗУЕМОЕ>

<ДОПОЛНЕНИЕ тип="прямое">

<СУЩЕСТВИТЕЛЬНОЕ> раму </СУЩЕСТВИТЕЛЬНОЕ>

</ДОПОЛНЕНИЕ> </ПРЕДЛОЖЕНИЕ>

Как видно из этого примера, имена тегов и атрибутов можно писать и по-русски. Опыт HTML показал, сколь важна тщательная и своевременная интернационализация всех аспектов языка, претендующего на какую-то роль в Интернете. Поэтому создатели XML позаботились, в частности, о том, чтобы в именах тегов и атрибутов можно было пользоваться не только латинскими буквами, но и кириллицей, иероглифами и вообще любыми символами из репертуара Unicode, которые считаются «буквами» хотя бы в одном языке или системе письменности. Такая разметка позволит интерпретатору XML порубить документ на кусочки в соответствии с его теговой струк­турой. После этого в действие вступает другое приложе­ние — его задачей может быть, например, автоматическое индексирование документа, занесение его в базу данных

 

или (чаше всего) форматирование в соответствии с прило­женной к документу стилевой спецификацией. (В нашем примере можно было бы, скажем, раскрасить разные ча­сти речи разными цветами.) Однако важно понимать, что все эти задачи лежат уже за пределами собственно языка XML, — который, таким образом, свободен от заботы о визуальном (или каком-либо ином) представлении до­кумента и позволяет сфокусироваться на его логической структуре.

Конверсия

Возможность использовать произвольные теги означает, в частности, что любой HTML-документ очень легко преобразовать в XML. Изменения, требуе­мые для этого преобразования, немногочисленны и сугубо формальны:

• все значения атрибутов должны быть взяты в кавычки;

• регистр букв в открывающих и закрывающих тегах должен совпадать (в отличие от HTML, язык XML чувствителен к регистру);

• все элементы должны иметь открывающий и закры­вающий тег. Это относится не только к элементам с факультативными тегами (такими как упоминавшийся выше элемент HTML), но и к пустым элементам, которые в HTML имеют только открывающий тег. Например, тег IMG придется записывать так: <IMG alt="" src="e.gif"></IMG> XML также допускает особую сокращенную запись для пустых элементов: <IMG alt="" src="e.gif"/>

Существуют утилиты, переводящие HTML в XML «тег в тег» с соблюдением всех перечисленных выше правил. Толку от такой конверсии, правда, немного: хотя результат ее будет «правильно структурированным» документом с точки зре­ния интерпретатора XML, его разметка не станет ни на йоту более структурной. Только заменяя на соответствующие логические теги унифицированные HTML-блоки (стр. 45), имеющие наряду с форматирующей еще и определенную структурную функцию, можно получить на выходе осмы­сленный XML-код, обнажающий содержательную основу документа и способный работать с любой подключенной стилевой спецификацией.

Надстройки

Создатели XML прекрасно понимали, что простота и изя­щество логического подхода к разметке имеют оборотную сторону — язык, не предоставляющий достаточно мощ­ных и притом стандартизированных средств определения семантики тегов, вряд ли сможет составить серьезную конкуренцию HTML. Поэтому с момента появления черно­вой спецификации XML в ноябре 1996 года разработчики заняты в основном выбором и стандартизацией расшире­ний языка — надстроек над XML, которые позволили бы формально описывать различные семантические аспекты тегов.

В отличие от HTML, многочисленные «расширения» кото­рого больше похожи на заплаты на расползающейся ткани, модульная структура XML является одним из важнейших преимуществ этого языка. Авторы XML прилагают все усилия к тому, чтобы логический базис и семантические надстройки удобно стыковались, не теряя при этом как формальной, так и содержательной независимости друг от друга.

XLL

Почти одновременно с самим XML Консорци­умом W3 был стандартизован XLL (extensible Linking Language, «Расширяемый язык ссылок») — механизм созда­ния гипертекстовых ссылок в XML-документах. Этот аспект языка значительно усовершенствован в сравнении с HTML. Вот основные черты гипертекстовой модели XML:

• XML-ссылки реализованы не на уровне тегов (как в случае тега А языка HTML), а с помощью зарезер­вированных имен атрибутов. Это позволяет с легкостью превратить в гипертекстовую ссылку любой элемент до­кумента, просто расширив его список атрибутов.

• Для XML-ссылки можно указать, будет ли она обычной ссылкой, активизируемой пользователем (щелчком мы­шью, к примеру), или же броузер, встретив в документе эту ссылку, должен активизировать ее сам, не дожидаясь команды пользователя.

• Для ссылки можно указывать результат ее активации, а именно: вывести ли документ, на который она ссылает­ся, вместо текущего (например, в том же окне броузера), создать ли для него новый контекст вывода (напри­мер, новое окно), или же содержимое нового документа нужно вставить внутрь текущего документа.

• Важные усовершенствования внесены в синтаксис URL-адресов, использующихся в ссылках. Выше я уже упо­минал, что адреса могут содержать параметры вызова программы или идентификатор фрагмента документа, отделяемые от основной части адреса соответственно символами? и # (стр. 30). XML расширяет синтаксис этих конструкций, благодаря чему, не теряя обратной совместимости с существующими адресами, они позво­ляют адресовать практически любой фрагмент любого XML- или HTML-файла. При этом не требуется, чтобы автор файла, на который ссылаются, как-то по-особому разметил этот фрагмент (в HTML, как вы знаете, его нужно пометить тегом А с атрибутом name). Более того, вырезание этого фрагмента из документа можно пере­ложить на сервер, на котором документ хранится, тем самым избежав пересылки по сети документа целиком (правда, для этого нужно, чтобы сервер умел обрабаты­вать такие «расширенные» запросы).

XSL

Как я уже упоминал, ничто не мешает использовать с XML-документами стилевые спецификации на языке CSS (стр. 40), и для не особенно требовательных к дизайну до­кументов эта комбинация технологий, по-видимому, будет оптимальной. С другой стороны, оформить заголовки, блоки текста и навигационные элементы хотя бы приблизительно так же, как они оформлены на веб-странице на рис. 1, с помощью 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 (правильная вложенность тегов, кавычки вокруг зна­чений атрибутов и т. п.). Следовательно, ничто не мешает вам написать стилевую спецификацию, разворачивающую теги логической разметки в форматирующие блоки модуль­ного HTML (стр. 45). Полученный в результате HTML-код останется лишь скормить привычному, давно отлаженному во всех существующих броузерах (и, очевидно, отнюдь не собирающемуся отправляться на свалку истории) механизму форматирования HTML, который и займется окончатель­ным выводом документа на экран.

Этот сценарий предлагает путь относительно безболезнен­ной миграции на XML для огромной массы сайтов, исполь­зующих сейчас типично «визуальный» HTML. Для этого, однако, их HTML-разметка должна как можно точнее со­блюдать заповеди модульного HTML (стр. 45). Например, приведенный на стр. 46 блок внутритекстового заголов­ка глобальным поиском легко заменить на логический XML-элемент:

<FRAMED-HEADING>The Coad Method</FRAMED-HEADING>

Теперь достаточно написать стилевую спецификацию на XSL, которая преобразовывала бы каждую копию элемента FRAMED-HEADING в соответствующий HTML-блок и вста­вляла бы в нужное место внутри этого блока содержимое обрабатываемого элемента — т. е. текст заголовка, попутно переводя его в верхний регистр (несомненно, регистр текста принадлежит в данном случае к аспекту представления, а не содержания, так что из XML-документа эту подробность лучше убрать).

На момент написания этой книги конверсия модульного HTML в XML + XSL реализуема только в броузере MSIE 4.0 с помощью разра­ботанного фирмой Microsoft ActiveX-компонента (стр. 70), транслирую­щего XML в HTML и передающего полученный HTML-код стандартному механизму форматирования броузера.

Графика

Технологии компьютерной графики опираются на нисколько не менее абстрактные концепции и потому ничуть не проще для освоения, чем только что рассмотрен­ные технологии текстовой разметки. Даже профессионалам в этой области полезно иногда отступить на шаг назад, чтобы окинуть обобщающим взглядом пеструю мешанину форматов, программ и стандартов.

Если верно, что компьютер — инструмент для реализа­ции абстракций, то для успешной работы с ним человек должен сам легко овладевать абстракциями и уметь приво­дить к ним явления реального мира. С таким целостным и гармоничным (в смысле пушкинской «гармонии», кото­рую нельзя «поверить алгеброй») явлением, как графика, это может показаться еще более трудным, чем со всегда несколько суховатым и склонным к формализму (будь то формализм грамматики или же формализм компьютерного языка разметки) текстом. Однако и награда за соединение несоединимого велика: если текст в компьютере всегда останется текстом, то в работе с изображениями компьютер даст вам такую творческую свободу и откроет перед вами та­кие возможности, которые в докомпьютерную эпоху трудно было даже вообразить.

Вектор

Все компьютерные изображения, все форматы для их хранения и все программы для их обработки делятся на два больших класса — векторные и растровые, — разли­чающиеся прежде всего уровнем абстракции, примененной к изображению. Можно сказать, что если векторная графика пытается имитировать восприятие изображений человеком, то растровый формат хранит графику в том виде, в каком она легче всего переваривается компьютером. Соответствен­но, векторная графика в большинстве своем создается человеком с нуля прямо в векторном редакторе, а попыт­ки генерировать ее автоматически (алгоритмы трассировки, стр. 100) редко когда приводят к удовлетворительному результату. И наоборот, основной поставщик растровых изображений — фотографии, т. е. в существенной своей части автоматический процесс с легко оцифровываемыми результатами.

Векторное изображение состоит из объектов — геометри­ческих форм, составленных из прямых, дуг окружности и кривых Безье (стр. 99). Во всех векторных форма­тах объекты могут варьировать толщину и цвет контура, а замкнутые объекты — еще и цвет заливки. Объекты могут накладываться, частично или полностью заслоняя друг друга. В качестве отдельных объектов могут включаться растровые изображения и строки или абзацы текста (бу­квы которых могут также храниться в виде геометрических форм, но допускают и более высокий уровень абстракции — разделение на собственно текст, который можно редактиро­вать, и параметры его оформления). Именно такой базовый набор возможностей предусмотрен в языке PostScript — од­ном из первых векторных форматов, появившемся в 1986 г. и до сих пор остающемся lingua franca для векторных изображений.

Фирма Adobe, которой принадлежит язык PostScript, раз­работала также первый векторный графический редактор Adobe Illustrator, для которого PostScript был стандартным форматом файлов. Однако долгие годы сохранявшееся мо­нопольное положение этого формата сыграло с ним злую шутку: тот факт, что он стал стандартным входным фор­матом появившихся к тому времени лазерных принтеров и фотонаборных автоматов, практически затормозил его раз­витие, так как зашитое в принтер программное обеспечение, в отличие от программы, установленной на компьютере, не так-то просто обновить. В результате уже к началу 90-х

PostScript стал узким местом и Adobe Illustrator, и векторных редакторов других фирм, — которые могли бы реализо­вать, к примеру, частичную прозрачность объектов, но не решались сделать это из боязни потерять совместимость с PostScript.

В последнее время, однако, избавившись от гипноза PostScript'a, векторные форматы развиваются очень бурно — являясь по самой своей природе «сборниками абстракций», они легко заимствуют подходящие идеи из соседних обла­стей. Некоторые из этих форматов двигаются в направлении поддержки сложных многостраничных документов с эле­ментами логической разметки, а программы для работы с ними все больше походят на системы верстки. Другие вво­дят элементы анимации, мультимедиа и интерактивности. Все это сопровождается развитием собственно векторной основы графики, изобретением все новых свойств объектов и трансформаций для работы с ними. Конечно, вектор­ные эффекты еще не столь многочисленны, как растровые (стр. 295), но они позволяют иногда добиться в векторной графике, при сохранении всех присущих ей достоинств, таких вещей, которые до недавнего времени казались пре­рогативой только и исключительно растра.

А достоинств у векторной графики действительно немало. С точки зрения дизайнера главное и решающее ее преиму­щество — всегда сохраняющаяся независимость объектов и невозможность совершить необратимые действия. Век­торную картинку можно править и изменять бесконечно, не боясь «протереть дырку» или ненароком потерять часть исходной информации. По моему мнению, это свойство векторной графики настолько важно, что композиции, име­ющие хоть какое-то отношение к дизайну, имеет смысл делать только в векторном редакторе, — хотя это может быть и неверным для компьютерного аналога, скажем, жи­вописи. (И в самом деле, наиболее отчетливо преимущества векторных редакторов над растровыми проявляются при работе над композициями, содержащими текст и именно по этому признаку относимыми к жанру дизайна, а не к графике как таковой.)

Вектор в Интернете

Есть у вектора и важные прак­тические преимущества: небольшой объем файлов (в срав­нении с сопоставимыми растровыми изображениями) и не­зависимость от разрешения устройства вывода. Эти два фактора сделали векторную графику вероятным кандидатом

на роль одной из ключевых технологий Интернета. Если до сих пор векторные изображения встречаются на веб-страницах довольно редко, то объяснить это можно лишь обилием конкурирующих технологий и нежеланием их вла­дельцев открывать доступ к техническим спецификациям своих форматов, — что является одним из обязательных условий их стандартизации Консорциумом W3.

Тем не менее среди реально применяемых в Интернете векторных форматов уже есть свои лидеры. У дизайнеров популярен формат Shockwave Flash фирмы Macromedia, замечательный своими богатыми интерактивными и анима­ционными возможностями (один из предков Flash — про­фессиональный пакет компьютерной анимации Macromedia Director). Приспособленный специально для Интернета, формат этот поддерживает гипертекстовые ссылки, а в до­полнение к своей врожденной векторной нетребователь­ности пользуется сжатием информации на манер утилит-архиваторов. Для просмотра этого формата в броузере нужен подключаемый модуль (plug-in), бесплатно распространяе­мый фирмой Macromedia. Для отдельных анимированных вставок использовать Flash вряд ли целесообразно, однако существуют сайты, целиком построенные на этой техноло­гии (например, www.olympic.org).

Для статических текстовых документов популярен формат PDF (Portable Document Format, «Переносимый формат документов») фирмы Adobe, разработанный на основе PostScript со сжатием данных, обязательным инкапсулированием растровой графики и шрифтов и с возможностью использования гипертекстовых ссылок и интерактивных форм. Хотя графические возможности PDF ничуть не бога­че, чем у PostScript, формат этот удобен для выкладывания в Интернете рекламных брошюр, проспектов, журнальных статей и прочих материалов, либо существовавших ранее в виде бумажных копий, либо предназначенных для распе­чатывания пользователем. Особенно удобно то, что формат PDF не привязан к какой-то одной графической программе и системе верстки: печатать на PostScript-принтерах и, сле­довательно, давать на выходе Postscript умеют все программы без исключения, а конвертация из PostScript в PDF — про­цедура полностью автоматическая. Программа для чтения этого формата под названием Acrobat Reader распростра­няется бесплатно и существует как в виде подключаемого модуля для броузера, так и в виде самостоятельного прило­жения.

Консорциум W3 готовит стандарт «языка векторной разметки» VML (Vector Markup Language), использующего синтаксис XML и семантику CSS2 для описания векторных объектов. Относительная примитивность этого язы­ка искупается тем, что для реализации его в современных броузерах не потребуется много усилий, так как VML максимально использует набор свойств элементов разметки и механизм абсолютного позиционирования CSS2 (стр. 241). Поэтому вполне можно надеяться на то, что язык этот сможет найти свою нишу в современном Интернете.

3D. Особую разновидность векторной графики предста­вляют трехмерные форматы, из которых самый известный и чаще всего встречающийся в Интернете — язык VRML (Virtual Reality Modelling Language, «Язык моделирования виртуальной реальности»). Описываемые трехмерным фор­матом сцены состоят, как и векторные изображения, из математически описанных объектов, — с той только раз­ницей, что все их точки имеют по три пространственных координаты (а в форматах с поддержкой анимации — еще и четвертую, временную координату). Кроме обычных объектов, сцены могут содержать разноцветные и произ­вольно размещаемые источники освещения, а программа-интерпретатор покажет вам сцену с любой точки и даже позволит зайти внутрь и «побродить» между объектами. Ин­терактивная трехмерная графика как метод представления информации грозилась одно время занять место в арсена­ле приемов профессионального веб-дизайна, однако ничего подобного так и не произошло — трехмерность остается лю­бимой игрушкой непрофессионалов, но для создания в этом жанре вещей, интересных с художественной точки зрения, время, по-видимому, еще не пришло (стр. 290).

Растр

Растровое (bitmap) представление графики можно рас­сматривать как «вырожденную» разновидность векторного, в которой допустим только один вид объектов: расположен­ные в прямоугольной решетке разноцветные квадратики, называемые пикселами. Однако если на векторном изо­бражении мы видим именно те объекты, из которых оно состоит, то в растре вместо отдельных пикселов мы воспринимаем целостную картину, в которую пикселы скла­дываются уже в нашем сознании. Главное преимущество растра состоит в его абсолютной свободе: пиксел изображе­ния может быть любым — пусть его изменения ограничены только одной координатой (цветом), он не обязан подчи­няться каким-то математическим формулам или «помнить» об очертаниях того объекта в изображении, которому он принадлежит.

Разница между вектором и растром напоминает отличие студийной записи от «живого» концерта. Студийная мастер-копия сохраняет на отдельных дорожках партию каждого инструмента; как и векторное изображение, ее можно «пересводить», сколько угодно преобразуя, сдвигая, выбрасы­вая отдельные звуковые слои и добавляя новые. Концертная же запись и растровая картинка если и поддаются обработке и «приглаживанию», то лишь с помощью хитроумных фильтров. За эту негибкость вы получаете взамен в музыке — характерную экспрессию и «живую» фактуру звука, а в компьютерном растре — богатство текстур и некоторые принципиально недостижимые в векторе эффекты.

Интересное следствие этой концептуальной простоты — относительно небольшое количество используемых растро­вых форматов. Сейчас в этой области уже вряд ли можно придумать что-нибудь принципиально новое. Большинство растровых форматов, которые, как и векторные, начинали свою историю в качестве фирменных форматов той или иной программы, давно уже зажили собственной жизнью и кажутся теперь одинаково «родными» всем существую­щим растровым редакторам (а следовательно, нет никакой нужды выходить за пределы двух-трех общеупотребительных форматов). Из векторных форматов настолько же «обобще­ствленным» сумел стать разве что PostScript, но и для него не редкость ситуация, когда записанный в одной программе PostScript-файл отказывается считываться в другой, — что невозможно себе представить для формата растрового.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных