Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

XML — отпрыск SGML

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 



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте