XML file as a tempplate for internet pages

XML технология и интернет

15 мая 2004/


XML технология и интернет


Каким знаниям об интернете мне кажется надо обучать в школе? Имеет смысл рассказать о том, куда движется интернет, каким он предположительно будет в недалеком будущем, которое для учеников будет уже настоящим. Показать те новые технологии интернета, которые сейчас еще, быть может, не вошли в повседневность.

XML (extensible markup language - расширяемый язык разметки) технология - просто удобная запись различной информации, документов

Пример такой записи

< заявление >
< кому> Иванову И.И. < / кому >
< название> Пояснительная записка< /название>
< содержание> В связи с моей болезнью …………< /содержание>
< дата> 4 августа 2004 < /дата>
< от кого> от Будинаса Б.Л. < /от кого>
< / заявление >


Или пример РАСПИСАНИЕ уроков

< расписание>
< день> понедельник
< список уроков>
< время> 10.00 < урок> Немецкий язык< /урок>
< /время>
< время> 11.00 < урок> Математика< /урок>
< /время>
< время> 12.00 < урок> Биология< /урок>
< /время>
< список уроков>
< /день>
< день > вторник
…………………………………………………………
< / день >
< день > среда
…………………………………………………………
< / день >
…………………………
………………………………..
< /расписание >

Собственно единственное правило - не перемежать тэги: открыл тег - закрыл тег. Нельзя - открыл один, потом второй, затем закрыл первый, а потом второй. То есть теги должны быть вложены друг в друга.

Это запись очень неэффективна - много лишней информации, повторений, запись неэффективна по занимаемому объему. В базах данных информация храниться совсем не так - она уплотняется. Но эта запись очень эффективна в смысле удобства пользования - фактически она не требует объяснения или описания, она само себя описывает, название тэгов мы сами выбираем и можем сделать максимально понятными. И такая запись информации очень удобна для обработки вычислительной машиной , например для сортировки. Соответствующие алгоритмы очень просты - они реализуются в современных броузерах типа в INTERNET EXPLORER. Для обработки или преобразования информации, записанный в XML виде, существует так называемый язык трансформаций XML файлов - XSLT.

XML технология - только удобная запись информации. Ее визуализация, т.е. ее представление в удобном виде, есть тоже одно из преобразований (трансформации или обработки) информации - у нас есть XML файл и мы хотим его увидеть на компьютерном экране.

Хорошие примеры разной визуализации того же XML файла приводятся Давидом Эйзенбергом - это статья в журнале ALA Дж.Зелдмана . Разные XSLT файлы визуализируют тот же XML файл совершенно по-разному.

Я приведу совсем другой пример, связанный с созданием интернет сайтов. Пример - мой сайт к 50-ию Института прикладной математики РАН. На сайте есть 6 однотипных страниц -выдающиеся ученые, работавшие в институте. Мы пишем XML файл - как бы шаблон для содержания всех этих страниц. Сейчас шаблон настроен на страницу о А.Н.Тихонове - и файл называется main_tichon.xml.

********* main_tichon.xml ********************************
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE maintext [<!ENTITY tichonov SYSTEM "tichonov.xml"> <!ENTITY keldysh SYSTEM "keldysh.xml">]>
<?xml-stylesheet type="text/xsl" href="aaa.xsl"?>


<page orientation="left">
<photo>tichonov.jpg</photo>
<maintext>
&tichonov;
</maintext>
</page>


*****************************************


Вверху мы отделили пробелами "заголовок" - всякая служебная информация (кодировка текста, внешние файлы, внешний xslt файл)

И далее я должен написать XSLT файл визуализации этой страницы - конечно это не проще, чем написать HTML код одной интернет страницы (фактически это то же самое), но я пишу такой код один только раз. Теперь запускаем в INTERNET EXPLORER файл main_tichon.xml, дважды щелкнув на эту ссылку.По этой ссылке aaa.xsl вы можете посмотреть соответствующий xslt файл, который и осуществляет визуализацию xml файла. Этот файл - это обычный HTML файл с вкраплениями информации о шаблоне. Он содержит ссылки на обычные *.css файлы - таблицы стилей для HTML.

А теперь мы хотим сделать страничку М.В. Келдыша - работаем только с XML файлом, в котором заменяем только имена файлов фотографии и текста (сначала подготавливаем эти файлы). К тому же мы поменяем положение меню - оно теперь будет справа (параметр orientation в тэге page)

********* main_keld.xml ****************************
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE maintext [<!ENTITY tichonov SYSTEM "tichonov.xml"> <!ENTITY keldysh SYSTEM "keldysh.xml">]>
<?xml-stylesheet type="text/xsl" href="aaa.xsl"?>


<page orientation="right">
<photo>keldysh.jpg</photo>
<maintext>
&keldysh;
</maintext>
</page>


*****************************************


Щелкните два раза на ссылку main_keld.xml - вы видите страничку М.В. Келдыша, в которой изменена ориентация страницы - с левой на правую.

Вы можете посмотреть файл, в котором содержится текст для страницы о М.В.Келдыше keldysh.xml - это обычный текстовый файл с минимальным форматированием - для параграфов и заголовков.

Можно из XML файла (конечно с помощью XSLT файла) получить и HTML файл и его отдельно использовать. К сожалению INTERNET EXPLORER этого не делает (хотя наверняка он это делает внутри себя как промежуточный этап для визуализации).

В этом примере xslt файл довольно сложный, ведь это почти настоящая страница с сайта ИПМ. Зато XML файл - шаблон страниц - очень простой, и сама работа с этим шаблоном (то есть его настройка на конкретную страницу) очень простая. Немного усложнив XML файл можно сделать так, что он будет служить шаблоном для всех страниц сайта "50 лет ИПМ". Текстовые части разных страниц этого сайта не такие однотипные, как в приведенном выше примере. Но они выделены в отдельные файлы, на которые даются лишь ссылки в шаблоне, и форматируется эти файлы совершенно независимо.

Итак - резюме. Для сайта, состоящего из однотипных страниц мы можем написать один XML файл - шаблон. Вставляя в этот шаблон конкретные имена файлов фотографий, текстов, меняя в шаблоне параметры (в примере выше это параметр orientation), мы получаем XML файлы для всех страниц сайта. Теперь пишем один xslt -файл визуализации шаблона - и наш сайт готов!


Генеалогия XSLT



Итак, был (и есть, конечно) HTML - язык разметки гипертекста, т.е. текста со ссылками в интернете. Конечно, потом добавились и картинки. Такой текст броузер (программа, работающая с интернетом) интерпретировал и получался более или менее хороший - т.е. не на специальном "птичьем" языке - интерфейс для путешествия по интернету. Интерпретация элементов языка (тэгов) была более или менее фиксирована, и, если речь не заходила специально и дизайне, то все было в порядке. Для коммерческой части интернета (и не только) дизайн был важен, и этот дизайн хотелось сделать лучше и разнообразнее. Язык расширялся - те же тэги стало возможным индивидуализировать (вводя атрибуты class и id и придавая этим атрибутам произвольные значения}, либо ввести даже некоторые абстрактные тэги div и span (это в сочетании с class и id есть фактически произвольные тэги xml).

И далее таблица стилей могла управлять представлением всего этого хозяйства на экране броузера. Конечно опять были проблемы - разные броузеры это делали не совсем одинаково, но ситуация со стандартами (стандартное - т.е. одинаковое - понимание описания стиля) теперь почти выправилась. В таком виде Сеть теперь в основном и существует.

Следующий, решающий, шаг - это переход к XML , где вы пишете - сочиняете - тэги с произвольным названием, а потом уже в расширенной таблице стилей XSL описываете, как каждый тэг должен выглядеть в броузере. Для этого внутри расширенной таблицы стилей вы можете использовать и обычный HTML, и обычную таблицу стилей. Но так как этот обычный HTML встроен в XML - технологию, он должен соответствовать строгим правилам (строгий HTML, или XHTML) - например, все тэги надо обязательно закрывать. Кстати, в обычном HTML тэги по умолчанию закрывает сам броузер там, где ему покажется это необходимым, но из-за этого могут возникать неоднозначности

В добавлении к сказанному язык XSLT позволяет и преобразовывать содержание тэгов.

Этот язык может и не заниматься преобразованием XML файла для визуализации в броузере (то есть преобразованием в HTML), а преобразовывать один XML файл в другой XML файл - например, XSLT может сортировать данные, высчитывать проценты, преобразовывать данные в совсем другое представление (например таблицу может преобразовать в график). Это активно используется при обмене информацией - фактически XML технология стала стандартом такого обмена. Обработку XML и XSLT файлов в принципе умеют делать обычные броузеры типа IE6 или Netscape6.

И последнее пояснение к моему примеру страничек сайта к 50-ию ИПМ. Часто интернетовские сайты состоят из более или менее однотипных страниц. Если посмотреть HTML тексты этих страниц, то они бывают очень похожи - иногда разница лишь в том, какие тексты и картинки используются для визуализации, иногда страница содержит какой то небольшой фрагмент дополнительного кода, которого не было на других страницах. Можно себе представить некоторый шаблон страницы, в котором явно указаны только те мест, содержание которых мы можем менять, а все остальное спрятано от глаз пользователя. В некотором смысле XML можно считать таким шаблоном, а XSLT - некой программой, которая этот шаблон реализует.

15 May 2004/

Some text on XML technology - XML file as a template for an internet page/ We alter some templates parameters and via XSLT file automatically get different pages


© Some GRAPHICS by Boris Budinas
Сайт управляется системой uCoz