Введение в XML

XML - это "расширяемый язык разметки" (EXtensible Markup Language)

Вам необходима помощь в том чтобы начать работать с XML? В разделе XML на сайте developerWorks содержится множество статей, руководств и советов, созданных с целью помочь разработчикам в использовании технологий XML. Однако начинающим разработчикам, которые только приступают к изучению XML, может быть трудно сориентироваться в огромном объеме доступных материалов. На этой странице представлен общий обзор XML, который будет полезен читателям, которые пока не знают, с чего начать его изучение. Она поможет вам организованно осваивать XML, независимо от того, хотите ли вы просто разобраться с XML, научиться работать с Ajax, mashup-приложениями, RSS или подготовиться к сдаче сертификационного экзамена.


Что такое XML?

XML, что означает "расширяемый язык разметки" (EXtensible Markup Language) - это платформенно-независимый способ представления данных. Выражаясь простым языком, XML позволяет описывать данные таким образом, что они могут быть прочитаны любым приложением, выполняющимся на любой платформе. При этом документы XML можно создавать и редактировать вручную, поскольку формат представления данных базируется на тегах, аналогичных тегам HTML.

Пример

Допустим, вы решили использовать XML для хранения информации о транзакциях. Изначально данные транзакции сохраняются на вашем iBook'е, на котором вы начинаете транзакцию. Затем информация должна быть передана приложению, выполняющемуся на сервере под управлением Windows, а в итоге - сохранена в архиве на мэйнфрейме. Использование разных платформ требует особой гибкости формата хранения данных. При помощи XML вы можете описывать данные в документах, аналогичных приведенному в листинге 1.

Листинг 1. Пример документа XML

Подобное текстовое представление информации доступно в любой вычислительной среде. Даже без помощи специальных приложений вы легко можете отделить содержимое документа (оно выделено жирным) от описывающей его разметки.

Дополнительная информация

Разобравшись со структурой XML, вам сможете легко начать его использовать. XML предоставляет несколько способов управления структурой и содержимым документов. Когда вы начнете работу с XML, у вас могут возникнуть вопросы относительно проектирования структуры документов, но с этим также не должно возникнуть сложностей.

Начните изучение XML со следующих материалов:

Благодаря своей гибкости XML получил широкое распространение во многих приложениях. Он используется для описания настроек, хранения данных, взаимодействия с Web-сервисами и т.д.


Варианты использования XML

С момента появления XML разработчиками было найдено множество вариантов его применения. Ниже приведены ссылки на материалы, которые помогут вам начать использовать XML в своих проектах.

Хранение данных

Наиболее очевидным способом применения XML является хранение данных. XML имеет преимущества при хранении информации как в виде отдельных элементов данных (как, например, в базах данных), так и в виде документов. Хранение информации в виде документов XML позволяет по-разному отображать ее на разных платформах.

В перечисленных ниже статьях рассказывается об использовании XML в базах данных.

Если вы интересуетесь вопросами хранения данных в XML, вам следует знать, что IBM предоставляет бесплатную версию DB2 под названием IBM DB2 Express-C 9. Также обратите внимание на новый инструментарий разработчика DB2 Developer, который облегчает использование XQuery и SQL/XML при работе с DB2.

Первое руководство в приведенной ниже серии из трех частей рассказывает о применении XML для хранения данных в виде документов общего назначения. Это позволяет отделить хранение данных от их представления.

Web-сервисы

Первоначально Web-сервисы были предложены в качестве способа передачи по протоколу HTTP информации, отличной от HTML. Со временем они превратились в основу множества технологий, начиная от Ajax, служащего для реализации интерактивных Web-страниц, и заканчивая сервис-ориентированной архитектурой (SOA), в соответствии с которой создаются сложные приложения, ориентированные на обмен сообщениями. XML является неотъемлемой частью Web-сервисов. Все распространенные методы, лежащие в основе Web-сервисов, такие как SOAP, REST и даже XML-RPC, сами базируются на XML.

Если вас интересует то, как XML используется при работе с Web-сервисами, обратитесь к следующим материалам.

Более подробная информация о XML применительно к Web-сервисам приведена в следующем разделе.

Web-трансляции и другие виды синдикации данных

В настоящее время синдикация данных является одной из областей наиболее активного применения XML. Миллионы блоггеров используют RSS-ленты для отслеживания новых записей в своих любимых блогах. Более того, трансляция аудио и видеоинформации через Интернет для портативных устройств, например, плееров iPod, также базируется на XML и в последнее время является объектом повышенного коммерческого интереса.

Ознакомьтесь с приведенными ниже материалами, которые помогут вам получить представление о синдикации и ее использовании.


Независимые от платформы настройки и инструкции по развертыванию приложений

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

Подробнее об этом варианте использования XML можно прочитать в следующих статьях.


Полезен ли XML при создании приложений?

Чаще всего документы XML выглядят подобно фрагменту, приведенному в листинге 1, но при этом с ними часто приходится работать программным образом. В этом случае, как правило, используется одна из описанных ниже моделей.

Объектная модель документа (DOM)

Объектная модель документа (Document Object Model - DOM) - это представление XML-данных в виде объектной структуры древовидной формы. Например, в листинге 1 элементы salesperson, order и return являются дочерними по отношению к элементу transaction, поскольку они расположены ниже в иерархии. Большинство XML-приложений работают с документами XML именно через DOM.

Введение в DOM приведено в следующих материалах.

Простой API для XML (SAX)

Модель DOM очень удобна для манипулирования данными, поскольку все содержимое документа загружается в память. Однако это также может вести к чрезмерному расходованию ресурсов.

SAX (Simple API for XML) решает проблему избыточного использования памяти путем сканирования документа от начала до конца и уведомления приложения о таких событиях, как, например, "начало элемента" и "окончание элемента". Этот подход позволяет существенно сократить расход памяти, но вы не сможете манипулировать содержимым документа так же, как при работе с DOM.

Введение в SAX приведено в следующих материалах.

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


Преобразование документов XML (XSLT)

В некоторых случаях работа с XML не требует программирования. В частности, вы можете манипулировать XML при помощи расширяемого языка стилевых преобразований (EXtensible Stylesheet Language Transformations - XSLT). XSLT позволяет менять структуру документов XML и даже преобразовывать их в формат, отличный от XML. Это очень мощный и повсеместно используемый язык.


Могу ли я работать с XML при помощи моего любимого языка программирования?

XML нейтрален по отношению как к платформам, так и к языкам программирования, поэтому вы можете работать с ним при помощи фактически любого языка, для которого существуют синтаксические анализаторы (парсеры), способные загружать XML-данные с диска, преобразовывая их в документы. Ниже приведен список статей, рассказывающих о работе с XML в различных языках программирования.

Java

Инструменты для разбора документов XML и работы с ними входят в стандартную поставку Java.

PHP

Ранние версии библиотек PHP для работы с XML были далеки от идеала, в частности, существовали расхождения со спецификацией DOM. В настоящее время благодаря лучшему соответствию стандартам ситуация существенно улучшилась.

Perl

Perl изначально проектировался в качестве языка обработки текстов, поэтому иногда у вас может возникать искушение работать с содержимым XML как с обычными текстовыми данными. Тем не менее использование специальных XML-инструментов имеет очевидные преимущества.

Python

Простота использования Python и платформенная независимость XML делают их идеальной парой.

C++

Средства для работы с XML также доступны для программистов на C++.

Ruby

Библиотека REXML реализует поддержку XML для разработчиков на языке Ruby.

JavaScript

Работа с XML в JavaScript очень напоминает Java, по крайней мере в том, что касается базовых операций.


Есть ли существующие форматы и приложения XML?

Растущая популярность XML среди разработчиков постепенно привела к появлению ряда стандартных форматов и словарей элементов XML. Примерами подобных форматов могут служить XHTML, являющийся XML-версией HTML, RSS, на основе которого реализуются новостные ленты и Web-трансляции, а также язык масштабируемой векторной графики (Scalable Vector Graphics - SVG), который предоставляет средства для описания изображений в XML таким образом, что браузеры, например, Firefox, могут отображать их на Web-страницах.

Ниже представлены некоторые варианты использования XML.

RSS и синдикация

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

Язык масштабируемой векторной графики (SVG)

По замыслу своих создателей, SVG должен сыграть ту же роль для графики, которую HTML играет в настольных издательских системах. Он предоставляет средства для описания графических изображений при помощи кратких и простых текстовых инструкций. SVG позволяет создавать сложные графические объекты, описание которых, во-первых, компактно, а, во-вторых, может формироваться программным образом.

XForms

XForms - это следующее поколение форм HTML. Они предоставляют платформенно-независимые возможности для описания того, как информация должна быть получена от пользователя. Это не просто позволяет легко добавлять новую функциональность, но и облегчает повторное использование форм в другой среде, например, в мобильном телефоне, где та же самая информация должна отображаться совершенно по-другому.

Другие варианты применения XML

Существует множество других примеров использования XML, например для публикации данных или представления семантической информации. Более того, его можно встретить даже в модулях распознавания речи, встроенных в телефоны. Ряд дополнительных примеров приведен в перечисленных ниже статьях.


Какое отношение имеет XML к Web-сервисам и SOA?

Приложения с сервис-ориентированной архитектурой (SOA) можно создавать при помощи множества технологий, однако самой распространенной из них являются Web-сервисы. Работа с Web-сервисами означает применение XML, поскольку оба наиболее популярных подхода к созданию таких сервисов - SOAP и REST - базируются на XML.

Пример

Например, вы можете отправить запрос к Web-сервису Google при помощи документа SOAP, приведенного в листинге 2.

В этом примере показан конверт SOAP в стандартизованном формате, который понимают платформы Web-сервисов. Содержимое подобных сообщений (в данном случае это элемент doGoogleSearch), называемое информационным наполнением запроса (payload), предназначено для обработки Web-сервисом.

Общая картина применения Web-сервисов

Большинство из множества стандартов, имеющих отношение к Web-сервисам, на самом деле представляют собой установленные форматы документов XML. Одним из таких примеров является XML-язык описания Web-сервисов (Web Service Description Language - WSDL).

Следующие материалы помогут вам начать работу с XML и Web-сервисами.

Технология alphaworks под названием ETTK для Web-сервисов облегчает создание полноценной среды для работы Web-сервисов, включающее в себя сервер.

Более подробная информация об XML и Web-сервисах содержится на странице Введение в SOA и Web-сервисы (EN).


Каковы перспективы XML?

XML играет ключевую роль во многих развивающихся технологиях. Например, в условиях активного совершенствования поисковых серверов в направлении Semantic Web XML становится средством, с помощью которого Web-мастера могут описывать смысл информации на страницах. Кроме того, все большую популярность завоевывают технологии распределенных и автономных вычислений, в которых XML также играет важную роль. Наконец, компании-разработчики систем управления базами данных постоянно работают над улучшением способов хранения данных в XML, а язык запросов XML Query Language получает все более широкое распространение.

В следующих разделах приведены ссылки на материалы, которые помогут вам оценить перспективы XML.

RDF, микроформаты и другие семантические технологии

В теории Semantic Web может обходиться без XML, однако на практике все выглядит совершенно по-другому. Большая часть информации, будь то RDF (Resource Description Framework) или микроформаты, представлена в некотором XML- формате. Это объясняется практически идеальной удобочитаемостью и понятностью XML.

Распределенные и автономные вычисления

Мир становится все меньше, а компьютерные системы, наоборот, растут. Это ведет к тому, что отдельные исследователи и компании начинают осознавать преимущества объединения систем в единые комплексы в целях повышения вычислительной мощности или снижения расходов за счет устранения ненужных компонентов. Благодаря платформенной независимости XML является идеальным средством для обмена информацией между отдельными частями распределенных систем.

Асинхронный JavaScript и XML (AJAX)

С расширением функциональности Web пользователи начинают предъявлять все более высокие требования к повседневным приложениям. Технология AJAX (Asynchronous JavaScript with XML) повышает удобство работы с приложениями, запрашивая информацию, чаще всего в XML, без перезагрузки страницы и обновляя лишь отдельные ее части. AJAX стал значительным шагом вперед в области пользовательских интерфейсов в Web.

Mashup-приложения

Чем больше информации становится доступно через Web-сервисы, тем шире возможности ее применения в корпоративных приложениях. Один из способов использования данных заключается в создании стремительно набирающих популярность гибридных приложений (mashup), отличающихся тем, что они интегрируют информацию, поступающую из разных источников, в единое представление.


Как развивать навыки работы с XML?

Лучший способ развития навыков работы с XML заключается в том, чтобы разобраться с основами, а затем сразу перейти к практическому использованию. Начните с прочтения материалов в разделе Что такое XML?, а затем переходите к статьям, перечисленным в разделе Полезен ли XML для создания приложений?. После этого вы можете перейти к изучению любых интересующих вас областей.

Вы также можете пройти сертификацию IBM по XML, подготовившись к ней при помощи руководства Подготовка к сертификации по XML и смежным технологиям. Часть 1: Архитектура (EN) и других руководств из той же серии (EN).


Заключение

XML - мощный язык с широкими возможностями, однако, к счастью, достаточно простой и понятный. Разобравшись с основами (что не должно занять много времени), вы сможете свободно выбирать дальнейшие направления изучения XML. Разработчики могут сосредоточиться на программировании и различных API, а все остальные - на других вариантах работы с XML, не требующих написания кода. В любом случае вы легко найдете место для XML в своей деятельности.