Теория и практика построения баз данных (1088289), страница 116
Текст из файла (страница 116)
вагд1п-Ьо(сов: 1еш: Топ[-э1ге: 14рс; со)ог:Ьгие"> 02123-7445 </О!Ч> </800у> </НТМЕ> Данная таблица стилей использует возможности браузера М[сгоэо[~! [пгегпег Ехр!огег 5.0, име!огцего встроенный обработчик ХЕРСТ, к которому можно обращаться из таблицы. В листинге ! 4А, например, все элементы, которые пачииа|отся с <хэ(:, вызывают ХЕРСТ-обработчик 1псегпес Ехр!огег 5.0.
Таблица стилей ХЕЕ имеет структуру вида (щаблоя, действие). Идея состоит в том, что Х5[ Т-обработчггк ищет в документе вхождения некоторого элемента, и когда такой злемеит найден, предпринимает заданное действие. Так,первый оператор хй <хэ) прог-еасп эе)ес1= сиэсовег11зс/сиэ1овег" / инициирует поиск в докул|енте элемеита, обозначенного как сил(огпег!!лй Когда такой элемент обнаруживается, начинается поиск элемента, обозначенного как сил[игле/ (ои должен находиться внутри элемента сил[оп)ег!(э1). Если соответствующий элемент будет найден, будут выполнены действия, указаипые в цикле, завершающемся оператором </хл(:Тог-еасй> (третий снизу оператор в таблице стилей).
В этом цикле каждому элементу внутри элемента сил(ошег, который, в свою очередь, содержится внутри элемента сил!огпег(!лй присваивается стиль. Обратите внимание иа внутренний цикл Тог-еасй, который нужен на тот случай, если злемеитов л!геег окажется несколько. ХЕЕТ-обработчики являются контекстно-ориентированными: каждый оператор вьшолияется в контексте пайдепного соответствия шаблону поиска.
Так, оператор <хз1: ча)ие. о[ эе1есс-"павеЛ аэтпаве" /> действует в контексте вхождения шаблона сил[оп)ег((л!/сиэговег, найденного в до- кументе. Нет необходимости писать <хэ):эе)ес(-"сиэсовег)(эг/сиэ1овег!павеЛаэ?паве /' поскольку контекст сил(огпег!(эг/сил(оп)ег уже задан. На салюм деле, если бы оператор ле!ес! был записан таким образом, то ничего не было бы найдено. Аналогичным образом, поиск <хэйде!ес1 "!аэ(пегое"/ ничего бы пе обнаружил, поскольку (алспаве появляется только в контексте сил!ошег((л!/силгоп)ег/паве, но ие в контексте симошег!31/сил!рве/.
Зта ориентация иа контекст объясняет необходимость в операторе <хэ);ча)ие-о[ эе)есг="пооеО "/> 538 Глава 14. Сети, многоуровневые архитектуры и ХМ! ХМŠ— расширяемый язык разметки 539 Терминология и стандарты ХМ~ По мере вашего знакомства с ХМЕ вам будет встречаться все большее количество аббревиатур. Основные из них перечислены в табл. 14.1. Стандарты, документа- цию и некоторые учебные материалы по этой тематике можно найти на сайтах угуггг.угЗ.ог9 и угугуг.хгп !.ог9.
Таблица 14.1 Стандарт Описание ХМЬ Расширяемый язык разметки. Язык разметки документов, который положил начало развитию следующего: Расширяемый язык стилей. Вначале это был способ преобразования ХМЬ в потенциально весьма сложные с~или. Разделен на две части: ХЗьг — для преобразования структуры документа, и ХЗГ -РО— для форматирования документов сложными стилями Таблица стилей Хзьт.
Документ, содержащий пары вида (шаблон, действие! и другие данные, используемые при трансформации ХМЬ-документа Программа (или процесс), которая применяет таблицы стилей ХЗЬТ к ХМЫдокументу, в результате чего на выходе получается преобразованный Хмшдакумент Расширяемый язык стилей для форматирования объектов. Часть оригинального ХЗЦ оставшаяся после отделения Хзьт.
Очень большой и сложный стандарт для изощренного форматирования, до сих пор находящийся в стадии развития Подъязык Хзьт, используемый для идентификации частей ХМь-документа, подлежащих преобразованию. Может также использоваться для вычислений и строковых манипуляций стандарт связывания документов между собой, хРып1ег содержит многие элементы ХРаул Простой интерфейс прикладных программ для ХМП Событийный синтаксический анализатор, который уведомляет программу при обнаружении элементов Хмь в ходе анализа документа ХБ.— первоначальное значение ХЗЬ— современное значение ХЗьт ХЗГ -РО Храул Хро~пГег ЗАХ (в середине таблицы стилей).
Этот оператор находится в контексте свзгогпег!!зт/ соз1огпег/абдгезз/з1гееп Таким образом, текущим узлом (пог!е) является алемецт зггее1, и данное выражение предписывает выдать значение этого элемента. Обратите также внимание на то, что таблицей стилей было произведено небольшое преобразование. В исходном документе элемен~ !азтпагпе следовал за Вгзтпагпе, а в выходном потоке они расположены в обратном порядке. Код НТМ1., генерируемьш синтаксическим анализатором ХЕЕТ в 1пгегпег Ехр!огег, показан в листинге 14.5. На пем видно, как правила преобразования, заданные в Х91-документе, соблюдались для документа, изображенного в листинге 14.3.
Материализация НТМ1., как она выглядит в окне браузера, показана на рис. 14.7. М!сгозо11 постоянно обновляет синтаксический анализатор ХЯ.Т в 1псегпег Ехр!огег по мере развития стандарта. Анализатор, с помощью которого был получен листинг 14.5 и рис. 14.7, датируется октябрем 2000 года. Ипформапшо о реализапии ХЕК в более новых версиях 1пгегпеь Ехр!огег можно найти на сайте М!сгозо(г. Стандарт Описание СОМ Объектная модель документов.
Интерфейс прикладных программ, представляющий Хмь-документ в виде дерева. Каждый узел дерева представляет фрагмент Хмшдокумента. Программы могут напрямую обращаться к узлу СОМ-представления и манипулировать им Стандарт для представления ЗОЫзапросов в виде Хмь-документов. В структуре запроса используются элементы ХРабк а результат представляется в ХМь-формате. Данный стандарт находится в процессе развития и обещает стать важным в будущем Пространства имен ХМЬ вЂ” стандарт именования определяемых собраний.
Хкиагле интерпретируется как элемент Нале, определенный в пространстве имен Х. Упыагпе интерпретируется как элемент Нагое, определенный в пространстве имен у. Полезен для предотвращения конфликтов имен Удовлетворяющий стандарту Хмь язык, который позволяет задавать требования к структуре ХМЫдокумента.
Расширяет и заменяет ОТО. Находится в процессе развития и обещает быть исключительно важным для обработки баз данных ХОЬ ХМГ Ыаглеврасез Хмь Зслегпа Как показывает табл. 14.1, аббревиатура ХЕЕ имела два различных значения. Изначально это был способ преобразования ХМ(.-докугиентов в потенциально весьма сложные форматы, подобные тем, что использу1отся коммерческими принтерами. В 1999 г.
Всемирный %еЪ-консорциум решил разделить ХЯ. на две части: спецификацию ХЕК, предназначенную для преобразования документов, и спецификацию ХБ(.-ЕО (1оггпатг!пй оЬ)есгэ — форматирование объектов), предназначенную для сложного форматирования. Сегодня термин ХЯ. как таковой относится к таблицам стилей, подобным той, что показана в листинге 14гй ХРагЬ вЂ” это стандарт для обращения к элементам в документах. В листинге 14.4 в выражениях вроде чхз(:уа!ве-о1-зе!ест "пагпе/!аз1пагле"> цспользуется стандарт ХРатЬ для указания на конкретный элемент документа. ХРагЬ включает в себя концепции из другого стандарта, ХРо!пгег, цель разработки которого состояла в том, чтобы предоставить способ, с помошькк которо~о один документ мог бы ссылаться на элементы других локументов.
ВАХ и 1)ОМ представляют собой различные методы синтаксического анализа ХМ1.-документов. Процесс сшггаксцческого анализа (раггйпй) включает в себя чтение документа, разбиение его на компоненты и выполнение определенных действий, исходя из результатов разбиения — например, сохранение компонентов в базе данных. Синтаксические анализаторы ХМ1. могут также проверять допустимость документов по отношению к 1)Т1) или ВсЬегпа (см. следующий раздел). В случае использования интерфейса ЕАХ ХЯ.Т-процессор (илп другая программа.
занимающаяся обработкой ХМЕ-документов) вызывает удовлетворяюппгй! стандарту ЕАХ синтаксический анализатор и передает ему имя документа, который предстоит анализировать. ЕАХ-анализатор обрабатывает документ н вызывает объекты ХЯ.Т-процессора при обнаружении определенных структур. Интерфейс 1)ОМ функционирует.на основании другой парадигмы. Синтаксический анализатор, удовлетворягоший стандарту 1)ОМ, обрабатывает весь ХМ(.-докугиент и создает его древообразное представление. ХАЕТ-процессор 540 Глава 14. Сети, многоуровневые архитектуры и ХМЕ ХМŠ— расширяемый язык разметки 541 может затем вызвать 1)ОМ-анализатор для получения определенных элементов с помощью ХрагЬ ~лн аналогичной схемы именования. 1)ОМ требует, чтобы весь документ был обработан за один прием, и в случае очень больших документов может потребоваться чрезмерно большое количество памяти.
В такой ситуации более подходящим выбором является БАХ. С другой стороны, если необходимо, чтооы все содержимое документа было доступно одновременно, то единственна!м вариантом является 1)ОМ. ХО!. — это находящийся в стэлни разработки стандарт для представления запросов в виде ХМЕ-документов. Например, с его помощью можно представить ЗЯ1 -оператор в виде ХМ1.. Этот стандарт может стать важным в будущем. Последние два стандарта в табл. 14.1 имеют большое значение для профессионалов в области баз данных, поскольку среди пх особенностей есть упрощение представления доменов.