XML — отпрыск SGML

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


Компьютерная газета. Статья была опубликована в номере 02 за 2002 год в рубрике soft :: интернет

©1997-2024 Компьютерная газета