статьи веб дизайн разработка сайтов [advansed search]  [карта сайта]

разработка


графика


продвижение и PR


будни разработки


обзоры




НЕ ТАК СТРАШЕН XML...

:::::::::::::::::::::::::::::::::::::::::
Век живи - век учись, и через сто лет
станешь дряхлым и мудрым.
:::::::::::::::::::::::::::::::::::::::::

  1. введение
  2. Зачем веб-разработчикам XML-технологии
  3. Взаимодействие веб-программиста и дизайнера
  4. XML + XSLT + XSLT-процессор = HTML
  5. IE 5 и серверное преобразование
  6. заключение
введение

Все мы помним это чудное мгновение, когда, отбив на клаве свои первые html-теги и узрев в броузере СВОЮ первую страничку, мы почувствовали себя настоящими web-программерами и web-дизайнерами! Позже в страничке появлялось содержание, мы росли с нашим первым (..вторым, третьим..и т.д.) сайтом, узнавая все больше и больше об Интернете, о возможностях html, по ходу дела осваивая графические редакторы... доросли до js, апплетов и таблиц стилей... Однако новая информация о новых возможностях продолжала прибывать сумашедшими темпами. Одной такой волной принесло (на мою-нашу) голову загадочную аббревиатуру - XML. Когда эта информация пришла ко мне, а я с нею же пришла к своим знакомым программистам, те первым делом спросили - а ты чем собственно занимаешься? В честь чего собственно такие вопросы? Однако информацию не зажали. Результат - эта статья, которая на самом деле есть лекция по основам (вернее, первым шагам) в XML.
В первую очередь следует заметить, что здесь не будет рассматриваться суперзадача в электронном бизнесе (пока...), тем более, что в процессе разработки такого проекта возникает большое количество параллельных-последовательных проблем, и совершенное знание XML не гарантирует создания безупречного проекта. Не будут описаны правильно сформированные и состоятельные XML-документы, DTD и XML Schema, XML-сущности и многе другое, о чем обычно пишут в книгах по XML и что любой желающий может свободно загрузить с сайта W3C. Я собираюсь написать всего лишь о применении XML-технологий к Web, и буду рассказывать лишь о тех возможностях, которые XML открывает перед веб-разработчиками. Поэтому то, что в работе не нужно, останется за кадром. XML-технологии не ограничиваются собственно языком XML - это также DOM, SAX, XSL, XSLT, XSD и еще целое множество очень интересных аббревиатур.

1. Зачем веб-разработчикам XML-технологии

Первое, что я бы хотел сказать - это то, что XML не имеет ничего общего с HTML, кроме синтаксиса и общих предков, и говорить о переходе с HTML на XML абсолютно бессмысленно.На XML переходить надо, но не с HTML. Именно о том, где и как может сейчас применяться XML, и пойдет речь в данной статье.
Сегодня область применения XML в Web ограничена веб-сервером. Основная причина - отсутствие у посетителей броузеров с поддержкой XML. То есть броузер по-прежнему должен получать HTML, а XML используется только для внутренних нужд сервера:

Первые 2 пункта - удел программистов и контент-провайдеров, поэтому начать я хотел бы с применения XML в веб-дизайне.

2. Взаимодействие веб-программиста и дизайнера

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

Процесс генерации динамической веб-страницы с применением XML выглядит так:
Программист генерирует XML-документ, содержащий данные для отображения на веб-странице (например, результаты SQL-запроса), и затем запускает XSLT-процессор (см. ниже), который на основе XML и таблицы стилей, созданной дизайнером, генерирует HTML.
Роль дизайнера в этом процессе - описание преобразования XML-документа в HTML на языке XSLT (XML Stylesheet Language for Transformations). Проще говоря, дизайнер создает для XML документа таблицу стилей - файл *.XSL.

3. XML + XSLT + XSLT-процессор = HTML

Интерпретирует таблицу стилей XSLT и осуществляет преобразование XSLT-процессор - программа или библиотека, устанавливаемая на сервере программистом/администратором. На вход ей передаются в простейшем случае 2 файла: *.xml и *.xsl, а на выходе получается html.
Ну и пример, чтоб не было скучно:

Файл test1.xml:


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./test1.xsl"?>
<html><sql>
<row>
    <IP>aaa</IP>
    <when>bbb</when>
    <down>ccc</down>
</row>
<row>
    <IP>aaa1</IP>
    <when>bbb1</when>
    <down>ccc1</down>
</row>
</sql></html>

Файл test1.xsl:

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
    <html>
    <head>
	<title>XML test 1</title>
    </head>
    <body>
	    <xsl:apply-templates select="//sql"/>
    </body>
    </html>
</xsl:template>

<xsl:template match="sql">
    <table border="1">
    <xsl:for-each select="row">
	<tr>
	    <xsl:for-each select="*">
		<td><xsl:value-of select="."/></td>
	    </xsl:for-each>
	</tr>
    </xsl:for-each>
    </table>
</xsl:template>

</xsl:stylesheet>


Помещаем эти два файла в один каталог. Теперь осталось найти только XSLT-процессор. Мы воспользуемся MSXML - процессором от Microsoft, который поставляется с IE5 и, как следствие, есть на каждой машине с Windows.
Итак, загружаем test1.xml в IE5. Вы увидите простую HTML-таблицу:


<html>
<head>
    <title>XML test 1</title>
</head>
<body>
    <table border="1">
    <tr>
	<td>aaa</td>
	<td>bbb</td>
	<td>ccc</td>
    </tr>
    <tr>
	<td>aaa1</td>
	<td>bbb1</td>	
	<td>ccc1</td>	
    </tr>
    </table>
</body>
</html>

Эта таблица и есть HTML, получившийся в результате применения к test1.xml таблицы стилей test1.xsl. В примере операторами XSLT я определил стили для корневого тега () и тега .

XSL изначально задумывался логическим продолжением CSS. Оба стандарта были разработаны для отделения представления (форматирования, оформления) документа от его структуры (иерархического разделения документа на абзацы, заголовки, таблицы, разделы). Цель - улучшение разделения труда между контент-провайдером (тем, кто предоставляет данные для отображения на странице) и дизайнером (тем, кто определяет, как эти данные должны отображаться).
CSS позволял хранить отдельно лишь атрибуты тегов. Вследствие того, что таблица в HTML является не средством структурирования, а средством форматирования, большинство таблиц появляются в коде благодаря дизайнеру, а не контент-провайдеру, не говоря уже об изображениях. В результате затрудняется внесение изменений в контент после этапа дизайна, причем трудности в случае изменения _структуры_ контента возникают даже при хранении его в БД.
XSL же позволяет произвольно перестраивать дерево XML/HTML. Таблицей стилей можно выполнять фильтрацию и сортировку данных, добавлять, изменять и удалять теги и атрибуты, превращать данные и атрибуты друг в друга, а также произвольным образом перемещать теги, данные и атрибуты по дереву.
В результате из XSL получился универсальный язык трансформации XML-документов XSLT, который используется не только в Web, но и везде, где требуется преобразования форматов данных.

4. IE 5 и серверное преобразование

Поэкспериментировав с пятым эксплорером в предыдущей главе, вы убедились, что он может отображать XML. И, возможно, у Вас возник резонный вопрос: "А зачем нам преобразование на сервере, если IE умеет работать с XML напрямую? "
Да, действительно, IE 5 умеет работать с XML/XSLT, и, таким образом, является кандидатом в XML-броузеры. Если вы обратите внимание на тип XSL-документа, то увидите там две буквы "WD", что означает "working draft". То есть IE пытается соответствовать лишь черновой версии спецификации XSLT, которай давно устарела.
Проблема заключается в XSLT-процессоре, который находится в файле msxml.dll. После обновления этой DLL до MSXML 3 или 4 все становится на свои места, и можно смело писать ссылку на правильный стандарт.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">,
и вообще все чудесно.

Однако:
  1. Требовать от всех посетителей обновления MSXML можно лишь в некоторых случаях разработки для корпоративного интранета;
  2. Остаются еще IE4, Opera, враг всех веб-мастеров Нетскейп и WML-броузеры сотовых телефонов.
Так что в ближайшие лет пять серверное преобразование от нас не отстанет :(

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

читайте продолжение - CGI: от printf("") до XML
Андрей Мельников © 2001
ICQ #29804514

наверх наверх

MoiKrug - Вукс ТатьянаВукс Татьяна


NunDesign © 2001-2008 All rights reserved