Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

Предлагаем Вашему вниманию новый 3-х камерный холодильник "Горск" объемом 250 л. и стоимостью всего 4500 рублей! Новый дизайн, быстрое охлаждение и низкое энергопотребление, 3-х годовая гарантия на все узлы и агрегаты, а также бесплатная доставка по городу! Заказывайте прямо сейчас по телефону 091-12-15. Фирма "Горск-Холод".

Размещая это объявление где-нибудь на Web-сайте, нам может понадобиться выделить некоторые части, чтобы получить представление вида:

Предлагаем Вашему вниманию новый 3-х камерный холодильник "Горск" объемом 250 л. и стоимостью всего 4500 рублей!
Новый дизайн, быстрое охлаждение и низкое энергопотребление, 3-х годовая гарантия на все узлы и агрегаты, а также бесплатная доставка по городу! Заказывайте прямо сейчас по телефону 091-12-15.

Фирма "Горск-Холод".

Идея разметки состоит в том, чтобы использовать для выделения частей документа простые текстовые метки, называемые тегами. Теги разграничивают документ, выделяя в нем части и присваивая им некоторые особенности (например, указывая на то, что часть текста надо подчеркнуть).

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

□ 

содержимое
— выделяет содержимое, как параграф;

□ 

<BR>
— задает перенос строки;

□ 

<B>содержимое</B>
— выделяет содержимое полужирным шрифтом;

□ 

<I>содержимое</I>
— выделяет содержимое курсивом;

□ 

<U>содержимое</U>
— подчеркивает содержимое.

Теги могут быть парными и одиночными. Парные теги (например,

<B>содержимое</B>
) выделяют часть документа, одиночные (например,
<BR>
) задают некую инструкцию.

В предыдущем примере текст может быть размечен следующим образом.

Листинг 1.1. HTML-разметка рекламного объявления

<Р>Предлагаем Вашему вниманию новый 3-х камерный холодильник <В>"Горск"</В> объемом 250 л. и стоимостью всего <В>4500</В> рублей! Новый дизайн, <I>быстрое охлаждение</I> и <I>низкое энергопотребление</I>, <В>3-х годовая гарантия</В> на все узлы и агрегаты, а также <I>бесплатная доставка по городу</I>! Заказывайте прямо сейчас по телефону <U>091-12- 15<U>. <BR><BR>Фирма "Горск-Холод".</Р>

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

Для решения этой проблемы несоответствия, XML предлагает очень простой и весьма эффективный способ —

расширить множество используемых тегов так, чтобы они могли полностью выразить всю семантику, которой только может обладать документ. Например.

Листинг 1.2 XML-разметка рекламного объявления

<advert>

 Предлагаем Вашему вниманию новый <room>3</room>-x камерный

 <product>холодильник</product> <product-title>"Горск"</product-title>

 объемом <volume>250 л.</volume> и стоимостью всего <price>4500</price>

 рублей!

 Новый дизайн, <feature>быстрое охлаждение</feature> и

 <feature>низкое энергопотребление</feature>,

 <guarantee>3-x годовая гарантия</guarantee> на все узлы и агрегаты, а

 также <service>бесплатная доставка по городу</service>!

 <order>

Заказывайте прямо сейчас по телефону <phone>0-91-12-15</phone>.

 </order>

 <company>Фирма "Горск-Холод".</company>

</advert>

В таком виде этот документ содержит гораздо более подробную информацию о своей структуре: внутри тега

<product-title>
указано наименование продукта, внутри тега
<price>
— цена, внутри тега
<service>
— какой сервис предоставляет фирма и так далее. Такой текст уже можно обработать программно. Если понадобится составить таблицу, содержащую названия холодильников, объем, цену, название фирмы и телефон, все, что потребуется сделать — это получить содержимое тегов
<product-title>
,
<volume>
,
<price>
,
<company>
и
<phone>
. При этом совершенно не теряется возможность визуального представления документа: нужно лишь определить, как будет выглядеть содержимое того или иного тега.

Таким образом, просто расширив множество тегов, мы убили сразу двух зайцев.

□ Явным образом выделили в документе структуру данных. Это делает возможной дальнейшую машинную обработку документа, который при этом все еще остается понятным человеку.

□ Отделили данные, содержащиеся в документе, от того, каким образом документ будет представлен визуально. Это дает широкие возможности для публикации документов на различных носителях — на бумаге, в Интернет, на мобильных устройствах.

В этих двух положениях и есть смысл XML (англ. extensible Mark-up Language, расширяемый язык разметки) — отделять данные от представления и создавать в текстовом виде документы со структурой, указанной явным образом.

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

Поделиться:
Популярные книги

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Как притвориться идеальным мужчиной

Арсентьева Александра
Дом и Семья:
образовательная литература
5.17
рейтинг книги
Как притвориться идеальным мужчиной

Тот самый сантехник. Трилогия

Мазур Степан Александрович
Тот самый сантехник
Приключения:
прочие приключения
5.00
рейтинг книги
Тот самый сантехник. Трилогия

Третий. Том 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 4

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Дочь Хранителя

Шевченко Ирина
1. Легенды Сопределья
Фантастика:
фэнтези
9.09
рейтинг книги
Дочь Хранителя

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Измена. Тайный наследник

Лаврова Алиса
1. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник

Он тебя не любит(?)

Тоцка Тала
Любовные романы:
современные любовные романы
7.46
рейтинг книги
Он тебя не любит(?)

Брачный сезон. Сирота

Свободина Виктория
Любовные романы:
любовно-фантастические романы
7.89
рейтинг книги
Брачный сезон. Сирота

Английский язык с У. С. Моэмом. Театр

Франк Илья
Научно-образовательная:
языкознание
5.00
рейтинг книги
Английский язык с У. С. Моэмом. Театр

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14