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!).



Опубликовал admin
16 Ноя, Воскресенье 2003г.



Программирование для чайников.