Теория и практика построения баз данных (1088289), страница 114
Текст из файла (страница 114)
РНТМЕ обладает несколькими ключевыми характеристиками, которые преодолевают недостатки ранних версий НТМ(.. Во-первых, ВНТМь предоставляет объектную модель под названием ВОМ (Росншепг ОЬ)ест Мо<(е!, объектная модель документов). В этой модели все элементы страницы представляются в виде объектов. Этими объектами можно манипулировать из сценариев, изменяя нх атрибуты и вызывая принадлежащие им методы. Так, схема документа может сначала показываться в свернутой форме, а затем разворачиваться, когда пользователь щелкает на ней мышью. Благодаря РОМ содержимое страницы, разметку и формат можно менять программно, не обновляя страницу с сервера.
Это не только экономит время, но и избавляет пользователей от раздражающего мелькания н перезагрузкп всей страницы при каждом изменении заголовка. Теперь обновляется только та часть текста, в которой произошли изменения. Еще одна ключевая особенность НТМ1 4.0 и РНТМ1 — это поддержка каскадных таблиц стилей (С55, Сазса<(е Я<у!е 5Ьеегз). Опп позволяют задавать формат для различных типов элементов страницы. Например, следующий ВНТМ1.- код устанавливает цвет фона и текста для заголовков первого н второго уровней: <5ту~Е ТУРЕ="ГехГ/с3д55 > «< н1 (<апг-гапп)у:<всн1а; гонг-юу)е.погп<ан со1ог.<<1аск1 Н1 (<опт-гаппЭу:'сас!<1а: гонт-лгу!е.погп<а1: со1ог йгееп) — > <,<5Т'<'<. Е> Когда в документе обнаруживается заголовок первого или второго уровня, он будет выглядеть так, как это определено в элементе 5ТУьЕ Так, в следующем примере заголовок второго уровня «Это пример» будет выведен шрифтом 1лсЫа зеленого цвета нормального начертания: «Н2> Это припер «<Н2> В данном примере оба стиля были определены для стандартных НТМ1.-тегов Н1 и Н2.
Разработчик может также вводить свои собственные теги и определять для них оп<ли. В ВНТМЕ возможна ситуация, когда элемент имеет два несовместимых стиля. Например, в таблице стилей может бь<ть задан определенный формат для всех абзацев, но конкретный параграф на конкретной странипе может быть помечен другим стилем.
В данном случае стиль параграфа будет иметь приоритет над стилем, указанным в таблице стилей. Общее правило таково: используются те стилевые метки, которые ближе к содержимому. Благодаря этой характеристике такие таблицы стилей н называются хпскидпыям Таблицы стилей могут находиться в самой странице или быть получены извне, из других документов, содержащих определения стилей. Таким образом, в ВНТМ1 содержимое и материализация могут быть разделены. Таблицы стилей в сочетании РОМ позволяют изменять <« еЬ-страницы, не обновляя их с сервера.
Например, стиль заголовков второго уровня может меняться, когда курсор мыши находится на заголовке первого уровня; возможны и более сложные изменения. Параллельно с ВНТМ1 М<сгозо(< разработала набор элементов управления Асг<чеХ под названием Вепюге Вага Бегггсеэ (КВ5, служба удаленной обработки данных). С помощью этих элементов управления разработчик может кэшировать информацию нз базы данных на клиентской машине, отображать ее, принимать изменения и отправлять модифицированную информацию обратно на сервер как обновление в базе данных. В реальности, однако, ВРБ годится только для тех представлений, которые состоят пз одной таблицы. Обновление более сложных представлений может потребовать выполнения двух, трех пли более 5О(-операторов, как вы знаете из предыдущей главы. Такого рода многотабличные обновления невозможны в ВР5. Для этих целей используется АРО.
Как таковая, служба ВВБ не слишком важна для нас — важна предоставляемая ВНТМЕ возможность динамически изменять структуру шеЬ-страницы. Например, с помощью РНТМ1. можно запросить представление из базы данных, программным способом определить количество п имена столбцов в представлении и динамически сконфигурировать жеЬ-страницу, чтобы отобразить эти данные. ВНТМЕ и НТМЕ 4.0 исправляют многие дефекты исходного НТМ1., однако сохраняют ту же фундаментальную структуру и характер. Теперь мы обратимся к спецификации, коренным образом отличающейся от НТМ1.
530 Глава 14. Сети, многоуровневые архитектуры н ХМС ХМС вЂ” расширяемый язык разметки 531 ХМ~ — расширяемый язык разметки Появление ХМЕ (еХ(епз!Ые Магйвр Сапйцайе, расширяемый язык разметки) является одним из наиболее важных событий в мире информационных систем за последние десять лет. Во-первых, ХМ1.
предоставляет расширяемый стандарт материализации документов на шеЪ-страницах. Во-вторых, ХМТ- приобрел немаловажное значение для обмена данными; в особенности оп удобен для передачи представлений баз данных. Кроме того, ХМЕ прост — по крайней мере, просты его базовые структуры, поэтому он используется для представления многих типов стандартизированного текста. Например, файлы конфигурации Тощсаг, обработчика сервлетов 3ауа для ЛрасЬе, имеют формат ХМ1.. ХМЕ используется в настоящее время в качестве стандарта для удаленного вызова процедур.
Пока не появился протокол 50АР (Ейшр1е ОЪ)есг Лссекз Ргогосо!, простой протокол доступа к объектам), в борьбе за право быть стандартом для этих целей соперничали Е)СОМ и СОКВА. ЗОАР представляет собой всего лишь способ передачи по НТТР вызовов процедур, представленных в виде небольших ХМ1.-документов. Вне всякого сомнения, в будущем для ХМ1. найдется еще много применений.
ХМŠ— это обширная тема, заслуживающая отдельной книги. Здесь же мы будем вынуждены сосредоточиться на использовании ХМЕ для материализации шеЬ-странпц и передачи представлений базы данных. Великолепные материалы по этой тематике можно найти на сайтах внпу.иЗ.огд и упуи.хщ(.огд. Вы можете дать своей карьере стремительный взлет, если изучите все возможное, что касается ХМ 1..
ХМ~ как язык разметки В качестве языка разметки ХМ1. имеет значительные преимушества перед НТМ1. и 1)НТМ П Этому есть несколько причин. Во-первых, авторы языка ХМЕ обеспечили четкое разделение между структурой документа, его содержимым и материализацией. В ХМЕ предусмотрены средства для определения каждоп из этих трех составляющих, и природа этих средств такова, что они не могут смешиваться, как это было в НТМ1.. Кроме того, хотя ХМЕ стандартпзирован, этот стандарт может расширяться разработчиками, как следует нз названия. В ХМ1.
вы не ограничены фиксированным набором элементов вроде «ТТТЕЕ», «Н1> и «Р»: вы можете определять свои собственные элементы. Одной из проблем НТМЕ и Т)НТМЕ является то, что они предоставля!от слишком большую свободу. Рассмотрим следующий НТМ(.-код: <9060>П2>ЗАравствуй, хир!</П2> Тег <82> можно использовать для обозначения заголовка второго уровня в структуре документа. Однако его можно использовать и для того, чтобы просто вывести слова «Злравствуй, мир!» определенным стилем. Из-за этой характеристики мы не можем положиться на тегн в деле определения истщщой структуры НТМ(.-странпцьь Использование тегов имеет слишком произвольный характер: «П2> может означать заголовок, а может не означать ничего.
Как вы увидите, в ХМЕ структура документа формально определена. Если мы находим тег <з(геет», мы знаем точно, где этот тег расположен и как он соотносится с другими тегами в структуре документа. Таким образом, о ХМЕ-документах говорят, что они в точности передают семантику содержагцихся в ннх данных.
ХМ1.-документ и 0ТО В листинге 14.! показан пример ХМЕ-документа. Обратите внимание, что документ имеет два раздела. В первом разделе определяется структура документа; этот раздел называется определением типа документа, или ТОП) (Е)осцтепг Туре Т)ес)ага(!оп). Второй раздел содержит собственно данные. Листинг 14.!. Пример ХМС-документа <!ООСТУРЕ спзтовег ( <(ЕЕЕМЕИТ сизточег (паве, аббгезз)> <(ЕСЕМЕИТ паве (Г!гзтпаве, 1азтпаве)> «!ЕСЕМЕИТ Т(с!(паче (№РСОЯТА)> <!ЕЕЕМЕИТ !аз(паве (№РСОАТА)> <)ЕЕЕМЕИТ асбгезз (зтгеет+. с)ту.
зтэте. г!Р)> <(ЕСЕМЕИТ з1геет (№РСОАТА)> <!ЕЕЕМЕИТ с!Пу (№РСОАТЯ)> «.'ЕСЕМЕИТ згате (№РСОАТА)> «!ЕЕЕМЕИТ т!р (№РСОАТА)> <спзточег> <паче> <Т(гзтпэве>М(сПе11е«/Г!гзтпаве> <)аз(паче>Согге!11</!эз1паве> </паве> «аббгезэ> <зтгеет>1824 Еазт 71П Ауеппе</этгее(> <зтгеет>ЗШ Ге 700</зтгеет> <с! ту>Мевр!М з</с! (у> <эта(е>ТИ</эта(е> <т!р>32!23-7788«/г!р> </асбгезз> </спэточег> Е)ТЕ) начинается с кл!очевого слова ООСТУРЕ, за которым следует имя типа документа — сцзтоп)ег.