Рассмотрим эти этапы подробнее...
Данные студентов/ сотрудников хранятся в файлах XML, но имеют
строго определённую структуру, что несколько облегчает нам жизнь,
вследствие этого собственно не пришлось углубляться в глубокие
дебри языка XML, а всего лишь разобраться в структуре файлов с
информацией. Рассмотрим для примера файл marinin.xml:
<(?xml version="1.0" encoding="koi8-r"?>
<(person>
<(name lang="ru">Маринин Алексей Сергеевич
<(name lang="en">Aleksei Marinin
<(student lang="ru">студент
<(student lang="en">student
<(group>22304
<(login private="private">marinin
<(email_long>Aleksei.Marinin@cs.karelia.ru
<(email>marinin@cs.karelia.ru
<(/person>
Файл начинается со строчки
<(?xml version="1.0" encoding="koi8-r"?>
что говорит нам о том, что он имеет формат XML 1.0, а русский
текст представлен в кодировке KOI8-R. Следующие строки - это тело
XML-файла. Оно состоит из элементов, которые в совокупности
образуют древовидную структуру. Элементы идентифицируются тегами
и могут быть вложены друг в друга. В нашем примере на верхнем
уровне находится тег , что является обязательным
требованием синтаксиса языка. Внутри него расположены теги,
несущие в себе данные об этом студенте. Теги имеют атрибуты, в
нашем случае - "lang", который принимает 2 фиксированных значения
- "ru" и "en". Теги несут в себе служебную информацию, с помощью
которой мы будем отображать данные, заключённые внутри них. Для
этого нам понадобится язык XSLT. Чтобы информация из XML файла
отображалась в нужной нам форме в окне браузера, можно сразу
после строчки разместить следующую строку
<(?xml-stylesheet type='text/xsl' href='имя_xslt_файла'?>
она указывает, что обработка нашего XML файла будет
осуществляться с помощью файла XSLT, имя которого расположено
после слова href. Но мы пойдём другим путём - будем использовать
вывод соответствующего XML файла, используя необходимый XSLT, с
помощью функции
print make_xslt($xml, $xsl);
где переменные с именами используемых файлов задаются выше
следующими строками
$xml = make_path("$cs_docs/students");
$xsl = "$cs_docs/students/student.xsl.ru";
причём мы используем функции из файла cs.php, в котором также
описаны функции cs_header() и cs_footer(). Последние две
приводят наши странички к унифицированному виду, который имеют
все страницы сайта cs.karelia.ru.