div.main {margin-left: 20pt; margin-right: 20pt}
XML — отпрыск SGML
XML (Extensible Markup Language) — еще один формат для описания
структурированных документов и собственно данных в WWW. Но на этот раз уже
универсальный формат. По сути XML является своего рода мета-языком — языком
для описания других языков. XML был разработан организацией W3C (WWWC,
www.w3c.org), как простая замена для сложного SGML. Сам же SGML напичкан
множеством, совершенно не нужных в Web, возможностей. XML имеет
непосредственное сходство с HTML. В нем также присутствуют теги, но в XML они
называются элементами.
XML не заменяет HTML. С его помощью мы
убираем необходимость заботиться о внешнем виде документа (шрифты, цвета,
форматирование и пр.) и описываем исключительно структуру будущего документа.
Например:
<?xml version="1.0"
encoding="WINDOWS-1251"?> <sklad> <computer> <description
id="1">PII-300, 256Mb
RAM,...</description> <price>125</price> </computer> <computer> <description
id="2">AMD K-6 300, 256Mb
RAM,...</description> <price>100</price> </computer> </sklad>
Первой
строчкой мы даем понять, что это есть не что иное, как XML-документ, а далее
идет описание непосредственно документа. В данном случае этот документ
представляет собой список компьютеров, хранящихся на складе. В XML существует
понятие иерархии элементов (тегов). Это означает, что всегда должен
присутствовать корневой, в приведенном выше примере это <sklad>.
Определение корневого элемента является обязательным для того, чтобы можно
было правильно впоследствии описать обработчик для данного
XML-документа. Тот XML-документ, который мы рассмотрели выше, в данный
момент является не более чем обычным текстом (хоть и структурированным), и
если вы его откроете при помощи браузера, поддерживающего XML, то он вам
выведет вот этот самый документ со всеми его элементами (тегами). Специально
для обработки XML-документа и генерации выходного документа используется
специальный XSL-файл. С его помощью мы преобразовываем дерево
элементов XML-документа в выходной файл определенного формата. В нашем случае
— это HTML. XSLT тоже чем-то напоминает HTML. Однако с его помощью мы можем
организовывать циклы, производить математические расчеты и пр. Описание самых
необходимых и основных моментов этого языка потребует отдельной статьи.
Давайте рассмотрим пример, который будет служить обработчиком для нашего
XML-документа:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template
match="/"> <table> <tr><td>List of
computers</td></tr> <tr> <td
bgcolor="gray">ID</td><td bgcolor="gray">
Description</td><td
bgcolor="gray">Price</td> </tr> <xsl:for-each
select="sklad/computer"> <tr> <td><xsl:value-of
select="description/@id"/></td> <td><xsl:value-of
select="description"/></td> <td><xsl:value-of
select="price"/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>
Чтобы
обработчик (парсер) XML мог знать, какой из файлов XSL использовать для
обработки XML-документа, в нем (XML-документ) после второй строчкой должна
идти следующая:
<?xml-stylesheet type='text/xsl'
href='example.xsl'?> где example.xsl и есть написанный выше
XSLT-код.
Теперь, сохранив оба документа в одной директории
(example.xml и example.xsl), вы можете попытаться открыть example.xml при
помощи своего браузера. Если он поддерживает XML, то вы увидите таблицу,
заполненную данными о компьютерах на складе. Далее вы можете добавить
несколько записей в xml-файл о новых компьютерах и вновь загрузить его в
браузере. Изменения, которые вы внесли в example.xml, отобразились и в
таблице, созданной при обработке XSLT. Вот какую таблицу отобразил мой
браузер: Существует два способа использования XML. Первый — это обработка
XML на стороне сервера и второй — это обработка на стороне клиента. В первом
случае речь идет о специальной программе на стороне сервера (на таких
популярных языках, как Perl, C и Java), которая и будет осуществлять обработку
xml-документа, согласно xsl-файлу. Такие программы называются XML-парсерами.
Однако сегодня появляются браузеры, которые имеют встроенные xml-парсеры.
Благодаря этому xml-файлы могут запросто интегрироваться в HTML-документ.
Аналогично, как и PHP-вставки. Не рассмотренным остался так называемый
XHTML. Что это такое? Это всего HTML, который использует XML. Т.е. можно
провести аналогию C и C++. Тот С, который перешел в C++, претерпел
некоторые изменения для того, чтобы соответствовать лексике C++. Так
и XHTML. В принципе, весь XML является регистрозависимым языком. Это же
относится и к XHTML. Например, <a hRef="a.html"></a> не будет
являться ссылкой на a.html. Следующим будет замечание насчет не закрываемых
тегов в HTML, например: <hr>,<br> и пр. В XHTML вы не имеете права
оставлять тег незакрытым, вы обязаны его закрыть: <hr></hr>, либо
используете сокращенную запись <hr/>. Это и есть три основных правила
при использовании XHTML. Остальные особенности XHTML могут
понадобиться, если придется преобразовывать HTML-документы больших объемов.
Для этого можно воспользоваться всевозможными руководствами. Не секрет, что
основное применение XML — размещение баз данных в Интернет. Если до сих пор
приходилось генерировать xml-документы при помощи скриптов, которые сами
делали выборку в базе данных, то сегодня XML все ближе к собственному
интерфейсу с базами данных. Рекомендуемые ресурсы на тему
XML: www.oreily.com — "Learning XML" by O'Reily, www.w3c.org/xml/ —
здесь можно найти все от создателей XML, www.ucc.ie/xml/ — XML FAQ
(cool!).
Алексей Литвинюк Litvinuke@tut.by
|