Сначала, хотелось бы немного рассказать о том, как я пришел к этой идеи. Однажды я
переделывал дизайн некого сайта, состоящего где-то из 20 страниц. Я нарисовал макет,
по нему сделал шаблон для страниц (все страницы сайта имели одинаковую структуру,
отличались только содержанием). Затем, где-то за неделю я перетащил (с небольшой
технической доработкой) содержание старого сайта в новый дизайн. Потом оказалось,
что дизайн сайта несовершенный и требуется доработать некоторые элементы дизайна.
Причем хотелось, чтобы изменение дизайна можно было сразу пронаблюдать на всех
страницах сайта. В любом случае, для изменения некоторой детали в дизайне приходилось
править все 20 страниц. Чтобы упростить себе жизнь я решил разбить каждую страницу
на три файла (заголовок, меню, содержание) и разместил эти файлы в соответствующих
папках. Эти файлы содержали информацию, которая отличается для разных страниц. Т.е.
получилось 20 файлов с заголовками страниц, 20 – с меню и 20 – с содержанием. Еще
получилось несколько файлов, содержащих общую для всех страниц информацию (например,
оформление нижней части страницы). Теперь, если мне надо было поменять что-то в
общей для всех страниц части, я делал изменение в одном файле и запускал командный
файл, который склеивал по частям мои страницы. Таким образом, довольно быстро можно
было менять дизайн сайта.
Такой способ меня, в конечном счете, не устроил, и я вспомнил про XML/XSLT.
Использование XML позволяет отделить содержание документа (страницы) от его
представления. Я просмотрел страницы сайта и прикинул, из каких элементов
(говоря языком XML) они состоят, создал файл .XSD, который содержал описание
структуры моих документов на языке XML Schema Definition. Переделал все HTML-страницы в XML-страницы,
в соответствии с этой схемой. Далее создал файл .XSL, описывающий XSLT
(XSL Transformations) для преобразования XML документов в HTML
документы. Именно в файле .XSL описывается дизайн всего сайта.
В данной статье я не хочу приводить простых примеров, которые показывают
как из XML документа, содержащего элементы “автор” и “книга” с атрибутом
“название”, получить несколько вариантов красивых HTML страниц для книжного
каталога. Также я не хочу приводить описания языков XML, XSLT и т.д. Я хочу
показать, как использовать XML для создания сайтов. Когда я работал над
переводом сайта с HTML на XML, у меня возникали некоторые проблемы, вопросы,
вообще ставилась под сомнение идея создания относительно сложного сайта в XML.
Труднее всего было создать более-менее универсальную схему XML документов.
Поэтому я хочу поделиться опытом и дать отправную точку тем, кому это интересно.
После создания сайта в XML я ощутил, что достаточно просто кардинально менять
дизайн всего сайта целиком. Также я отметил, что один раз создав XML схему, ее
довольно легко адаптировать для создания последующих сайтов. По моему мнению,
применяя XML, разработка и поддержка сайта ускоряется и уменьшается объем
рутинной работы. Также, применение XML, позволяет строго поддерживать стиль
ваше сайта. Хотя у этого подхода, наверное, есть и отрицательные стороны, но
я не хотел бы их сейчас касаться.
Браузер Microsoft Internet Explorer 6 и выше может отображать XML документы и связанные с
ними таблицы стилей, однако большинство браузеров не может отображать XML.
Поэтому я преобразую свои XML документы в HTML и затем выкладываю их на сайт.
Вот часть моего сайта в XML виде: (Если ваш браузер нормально отображает эти XML страницы, то посмотрите их исходный текст)
bf3.xml
ebay.xml
index.xml
index_en.xml
oliva.xml
oliva_en.xml
softirq.xml
А это XML схема и файл XSLT:
ci.xsl
ci.xsd
Для преобразования XML в HTML я использую Command Line Transformation Utility (msxsl.exe).
Так выглядит командный файл для преобразования всех XML документов в текущей директории в HTML:
dir /b *.xml > list.txt FOR /F "tokens=1 delims=." %%i in (list.txt) do msxsl %%i.xml ci.xsl -o %%i.htm –xw
Дата последней модификации: 23-декабря-2003
|