Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Конверсия

Читайте также:
  1. Конверсия метана
  2. Конверсия оксида углерода
  3. ПРИМЕР - конверсия привилегированных акций 2
  4. Чем Выше конверсия продаж, тем больше вероятность того, что Рекламируемый Вами товар – КУПЯТ!

Возможность использовать произвольные теги означает, в частности, что любой 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-код стандартному механизму форматирования броузера.


Дата добавления: 2015-07-26; просмотров: 109 | Нарушение авторских прав


Читайте в этой же книге: Синтаксис | Ссылки и привязки | Изображения и объекты | Среды и доступность | Как писать alt-тексты | Мертвая зона | Возможности | Сборно-панельный сайт | Например | Синтаксис |
<== предыдущая страница | следующая страница ==>
Уровни соответствия| Графика

mybiblioteka.su - 2015-2024 год. (0.007 сек.)