Мир XML огромен и постоянно растет,
он населен множеством стандартов и технологий, которые
связаны друг с другом самым причудливым образом. Поэтому тем,
кто только начинает свое знакомство с XML, может оказаться
непросто ориентироваться в наиболее важных аспектах XML,
тем же, кто уже использует XML —следить за новинками
и изменениями. Автор этой серии статей, посвященной
XML-стандартам, Юч Огбуджи на этот раз рассказывает
о технологиях обработки XML.
С момента своего появления язык XML зарекомендовал себя
с самой лучшей стороны, поэтому довольно быстро получил широкое
распространение. Он оказался чрезвычайно полезной технологией,
которая, однако, может оказаться весьма непростой для
понимания —если попытаться рассмотреть все, что попадает под
определение «XML». В этой серии статей автор кратко рассмотрит
наиболее важные, по его мнению, XML-технологии
и расскажет, какое место в мире XML занимает каждая
из них. Кроме того, в конце каждого раздела, посвященного
той или иной из обсуждаемых технологий, читатель сможет найти
список рекомендуемых учебных пособий и других справочных
материалов, которые могут оказаться полезными при ее изучении
и апробировании.
Все технологии, представленные в этих статьях, являются
стандартами, хотя само это слово довольно
двусмысленно. Дело в том, что имеется множество всевозможных
стандартов, и многие из них часто оказываются
предназначенными для одной и той же предметной области,
что приводит к их «конкуренции». При определении стандарта
автор статьи будет стоять на позиции прагматизма, считая
стандартом любую спецификацию, которая признана представительной
выборкой поставщиков или рекомендована авторитетной независимой
от них организацией.
Первая
статья этой серии была посвящена базовым XML-технологиям
(в ней также была приведена
информация об различных органах стандартизации
и о видах разрабатываемых спецификаций). В этой
статье будут рассмотрены стандарты, относящиеся к обработке
XML, а в следующей —ряд наиболее важных приложений
XML (или словарей).
XSLT
В спецификации «Преобразования расширяемого языка стилей»
(Extensible Stylesheet Language
Transformations (XSLT) 1.0) [Рекомендация W3C] определяется
язык, используемый для описания преобразований входного
XML-документа в выходное дерево. Выходное дерево может,
например, принять форму HTML-документа или другого XML-формата и,
таким образом, XSLT может считаться языком, предназначенным для
преобразования XML в форму представления традиционного браузера
или для обработки XML-файлов с помощью скриптов. Это
преобразование представляет собой XML-документ, определенный
в отдельном словаре, а для обращения к исходному
документу и выполнения общих операций обработки используются
выражения спецификации XPath (рассмотренной ранее). Специальные
инструкции устанавливают правила обработки (XSLT является
декларативным языком) и управляют процессом создания выходного
дерева.
Спецификация XSLT 1.0 пользуется исключительной
популярностью, и с помощью языка XSLT можно решить
большинство типичных задач обработки XML. Если читатель знаком
с XML, то ему не составит труда изучить основы XSLT,
хотя для полного овладения этим языком потребуются некоторые усилия.
XSLT обладает хорошо спроектированным механизмом расширений,
а его декларативная модель обработки допускает многократное
использование кода. В спецификации «Ассоциирование таблиц
стилей с XML-документами, версия 1.0» (Associating Style Sheets
with XML documents, Version 1.0)
[Рекомендация W3C] описывается стандартный способ связывания
XML-документа с документом таблицы стилей XSLT. Спецификация
XSLT была переведена
на многие языки.
Как уже было указано выше, XSLT располагает великолепным
механизмом расширения, с помощью которого можно определять
дополнительные функциональные возможности, используя какой-либо
язык. Однако, что еще более приятно, часто самому не нужно
писать расширения, поскольку многие из них уже написаны.
В спецификации EXSLT
[Общественный стандарт] определен стандартный набор таких
расширений, основной особенностью которых является стремление
избежать зависимость от какой-либо конкретной реализации.
При создании EXSLT была предпринята попытка охватить большинство
наиболее востребованных расширений, как, например, обработка дат,
регулярные выражения и математические операции.
В большинстве реализаций EXSLT используется один или несколько
модулей EXSLT.
Хотя спецификация XSLT 2.0 [находится
в стадии разработки] была подвергнута принципиальной доработке
с учетом коллективного опыта использования XSLT 1.0, и эта
версия XSLT не лишена изъянов, будучи тесно связанной
с языком XPath 2.0, который, по мнению автора, имеет
существенные недостатки.
Рекомендуемые обучающие руководства и учебные пособия
Список литературы и другие ресурсы
- «Справочное пособие по XSLT» (XSLT
Reference) на ресурсе ZVON.
- Страница Дейва Посона (Dave Pawson) «Часто задаваемые вопросы
о XSLT» (XSL FAQ)
посвящены XSLT и XPath, а также XSL-FO (будет
рассмотрено).
- На ресурсе TopXML приводится более
100 примеров таблиц стилей XSLT, распределенных
по категориям.
- Джени Теннисон (Jeni Tennison) известна своим ясным
и четким объяснением многих тонких аспектов XSLT. Страницы XSLT —
отличный справочный ресурс, на котором рассматриваются
наиболее часто встречающиеся вопросы и проблемы XSLT.
SAX
В спецификации «Простой интерфейс прикладного
программирования для XML» (Simple API for XML
(SAX)) [Общественный стандарт] описывается управляемый
событиями интерфейс прикладного программирования (API). Разработчик
регистрирует код обработчика для определенных событий, которые
запускаются различными частями разметки XML (как, например,
начальный и конечный теги, текст, сущности). Затем парсер,
опираясь на входной XML, посылает поток этих событий, которые
поочередно обрабатываются кодом обработчика.
SAX явился результатом длительной интерактивной конференции,
начатой в 1997 году на ресурсе XML-DEV mailing
list, который уже давно является «прибежищем» экспертов
в области XML. Эту конференцию вел Дэвид Меггинсон,
и ее итогом явилось создание одного из наиболее
успешных XML-проектов, в подготовке которого не была
задействована ни одна крупная компания или орган
стандартизации.
До появления SAX каждый парсер имел свой собственный
специфический API, предназначенный для установления связи между
структурой XML и кодом обработчика. SAX же обеспечил
необходимую унификацию. В большинстве случаев парсеры
предоставляют драйверы SAX, которые транслируют низкоуровневые
события парсера в стандартные события SAX, предусматривая
переносимый код. Несмотря на то, что SAX был разработан
с ориентацией на язык Java, он стал популярен среди
многочисленных языков и оболочек; хотя иногда его
ориентированность на Java усложняет переносимость.
В настоящий момент используется второе поколение SAX,
которое включает обработку пространств имен XML
и необязательное формирование отчетов об определенных
событиях, касающихся структуры документа.
В большинстве языков управляемый событиями интерфейс обычно
реализуется с помощью функций обратного вызова
(стиль, присущий программированию графического
пользовательского интерфейса (GUI)). В объектно-ориентированных
языках, функции обратного вызова обычно являются зарегистрированными
методами для объекта, использующими полиморфизм для сопоставления
имени метода с кодом обработчика и инкапсуляцию для
управления состоянием в обработчике между обратными вызовами.
Эта полная модель управляемого событиями программирования известна
как модель проталкивания (push model) и «славится» свой
трудностью для освоения.
Большинство моделей, которые считаются более легкими для
программирования, однако, требуют произвольного доступа
к документу и, таким образом, могут понизить эффективность,
в связи с чем SAX имеет репутацию наиболее эффективного,
если ни легкого, стандартного способа обработки XML.
Рекомендуемые обучающие руководства и учебные пособия
Список литературы и другие ресурсы
На странице ресурса XML.org — focus
on SAX — содержится полезная информация о SAX.
DOM
В спецификации «Объектная модель документов» (Document Object Model (DOM))
[Рекомендация W3C] описывается объектная модель XML-документов,
которая может быть использована для прямого доступа к частям
XML-документа. Согласно концепции модели DOM, документ моделируется
в виде дерева, в котором каждый компонент синтаксиса XML
(как, например, элемент или текстовое содержание) представляется
с помощью узла.
Модель DOM — это интерфейс прикладного программирования,
с помощью которого можно перемещаться по дереву,
от узла родителя к потомку, к сестринским узлам,
а также использовать специальные свойства определенных типов
узлов (например, у элементов могут быть атрибуты,
а у текстовых узлов — текстовые данные).
Модель DOM задумывалась как нейтральная от языка. Для
выражения узлов DOM и поддержки интерфейсов используется
спецификация консорциума по технологии манипулирования
объектами (Object Management Group, OMG) «Язык описания интерфейса
CORBA» (CORBA Interface
Definition Language (IDL)) [Международный стандарт ISO,
номер 14750].
Первоначально модель DOM создавалась как объектная модель для
стандартизации криптовых операций над объектами HTML и XML
в Web-браузерах. В некоторых случаях это приводит
к затруднениям при использовании этой модели в качестве
изолированного интерфейса прикладного программирования. При
разработке модели DOM выпускалось несколько версий спецификации
(Level), каждая из которых опирается на предыдущую,
добавляя новые функциональные возможности.
Так, документ Level 1 охватывал основные возможности,
в Level 2 появилась поддержка пространств имен,
модель событий пользовательского интерфейса, итераторы и многое
другое. В Level 3 включены интерфейсы прикладного
программирования для загрузки в файлы XML-документов
и сохранения из них, для интегрирования XPath, поддержка
проверки допустимости и другое.
Хотя в целом овладеть DOM гораздо легче, чем SAX, поскольку
в модели DOM не задействованы функции обратного вызова
и сложное управление состоянием, реализации DOM обычно хранят
все узлы XML в памяти, что может быть весьма неэффективно для
больших документов. Несмотря на то, что реализации DOM написаны
на многих языках, модель DOM задумана как независимая
от языка.
Приверженцы того или иного языка часто жалуются на то, что
модель DOM неудобна и не использует сильные стороны
отдельного языка. В результате, появилось множество
ориентированных на языки интерфейсов прикладного
программирования.
Рекомендуемые обучающие руководства и учебные пособия
- Учебное пособие Николаса Чейза «Объяснение DOM» (Understanding
DOM), опубликованное в рубрике developerWorks
(июль 2003г.).
- В «Учебном пособии» (tutorial),
опубликованном на ресурсе W3Schools, рассматривается
использование DOM Level 1 для HTML и XML
в JavaScript-браузерах.
- Разработчикам Perl будет полезна статья «Использование Perl
с XML (часть 1)» (Using
Perl with XML (part 1)), которая посвящена DOM.
- Разработчики Python могут изучить страницу «Страница
DOM — справочник по стандартной библиотеке Python» (DOM
page on the standard Python Library
Reference).
Список литературы и другие ресурсы
- На ресурсе ZVON опубликовано отличное руководство,
в котором приводятся многочисленные примеры
на JavaScript по DOM
Level 1 и DOM
Level 2.
XAPI
В спецификации «Интерфейс прикладного программирования баз
данных XML» (XML
Database API (XAPI)) [находится в стадии разработки]
описывается нейтральный по отношению к поставщику
и языку интерфейс прикладного программирования для баз данных
XML. XML: DB — это группа разработчиков инструментов управления
базами данных XML. Спецификация XAPI охватывает вопросы хранения,
извлечения, модификации и задания запросов к данным
в базах данных XML, а также предусматривает поддержку
управления транзакциями. Она похожа на интерфейс ODBC (Open
Database Connectivity interface, открытый интерфейс доступа
к базам данных) и интерфейс JDBC (Java Database
Connectivity, средство организации доступа Java-приложений
к базам данных).
Подобно модели DOM спецификация XAPI определена
с использованием языка IDL (Interface Definition Language, язык
описания интерфейса) консорциума OMG (Object Management Group,
консорциум по технологии манипулирования объектами)
и опубликована в виде редакций (по уровням
функциональных возможностей). Level 0 — это базовый API,
в Level 1 добавлена поддержка XPath (XPathQueryService).
Спецификация XAPI широко используется в инструментах
управления «родными» базами данных XML, особенно с открытым
кодом, как, например, Apache XIndice и SleepyCat Berkeley XML
DB. Помимо спецификации группы XML: DB существует еще несколько
Web-ресурсов, посвященных этой технологии. На странице случаи
использования API приведено несколько кратких примеров
API на языке Java.
XUpdate
В спецификации XUpdate
[находится в стадии разработки] определяются обновленные
функциональные возможности для модификации данных
в XML-документах. Несмотря на то, что эта спецификация
разрабатывается группой XML: DB, XUpdate предназначен для работы
с регулярными XML-документами, а также
с XML-документами в совокупностях баз данных и даже
с виртуальными моделями данных XML.
XUpdate — это схожий с XSLT словарь XML,
к которому очень легко обращаться. Подобно XSLT, для обращения
к документу, который необходимо модифицировать, в нем
используются выражения XPath, а также специальные элементы,
которые определяют операции вывода. XUpdate широко реализован,
в основном среди инструментов с открытым кодом, как,
например, системы управления базами данных XML и инструментами
для выявления различия между XML-документами и внесения
необходимыз изменений (difference and patching tools).
Черновой вариант документа «Случаи использования XUpdate» (XUpdate
Use Cases) — прекрасное введение в эту технологию.
Рекомендуемые обучающие руководства и учебные пособия
- Статья Аруна Гейкуода (Arun Gaikwad) «Введение в XUpdate»
(Introduction
to Xindice) исчерпывающий рассказ о XUpdate
(developerWorks, сентябрь 2002г.).
- В учебном пособии автора данной статьи «Разработка
на Python/XML с помощью 4Suite, часть 4: композиция
и обновления» (Develop
Python/XML with 4Suite, Part 4:
Composition and updates) содержится раздел, посвященный
XUpdate (developerWorks, октябрь 2002г.).
- Страница «Интерактивный мемо-пример XUpdate» (online
XUpdate demo) сайта X-Hive — это
отличный ресурс, позволяющий изучить этот язык экспериментируя
с кодом.
XQuery
В спецификации «XQuery: язык запросов XML» (XQuery 1.0:
An XML Query Language) [находится
в стадии разработки] определяется, как формировать запросы
к источникам данных XML.
XQuery — это в значительной степени язык
программирования, представляющий собой подмножество XPath. XQuery
разрабатывается совместно с XPath 2.0 и вызывает
неоднозначные оценки в свой адрес, поскольку, по мнению
многих, характеризуется излишней сложностью. Спецификации
XQuery 1.0/XPath определяются в многочисленных
редакциях, в которых описывается семантика, синтаксис
и библиотеки базовых функций:
- В спецификации «Случае использования XQuery» (XML Query Use
Cases) [находится в стадии разработки] на примерах
рассматриваются сценарии использования XQuery.
- В спецификации «Модель данных XQuery 1.0 и XPath
2.0» (XQuery
1.0 and XPath 2.0 Data Model) [находится
в стадии разработки] определяется информация, содержащаяся
во входном файле, передаваемом в процессор XSLT
2.0 или XQuery, а также все допустимые значения
выражений в XSLT 2.0, XQuery и XPath 2.0.
- В спецификации «Формальная семантика XQuery 1.0
и XPath 2.0» (XQuery 1.0 and
XPath 2.0 Formal Semantics) [находится
в стадии разработки] приводится формальное объяснение каждого
выражения спецификаций XPath 2.0 и XQuery
1.0 в терминах их модели данных.
- В спецификации «XPath 2.0» (XPath 2.0) [находится
в стадии разработки] описывается базовый синтаксис XPath 2.0.
- В спецификации «Функции и операторы
XQuery 1.0 и XPath 2.0» (XQuery 1.0 and
XPath 2.0 Functions and Operators) [находится
в стадии разработки] определяются общие задачи обработки,
используемые в выражениях.
- В спецификации XQuery 1.0 [находится
в стадии разработки] описывается базовый синтаксис XQuery
1.0.
- В спецификации «Синтаксис XML для XQuery
1.0 (XQueryX)» (XML Syntax for
XQuery 1.0 (XQueryX)) [находится
в стадии разработки] содержится факультативное
XML-представление XQuery.
- В спецификации «Сериализация XSLT 2.0 и XQuery
1.0» (XSLT 2.0
and XQuery 1.0 Serialization) [находится в стадии
разработки] описывается, как выглядят значения модели данных
в XML, HTML и тексте, фактически в этом документе
указывается, как можно заменить раздел XSLT в выходных данных
процессора.
- Спецификации XSLT 2.0 [находится
в стадии разработки] не входит непосредственно
в семейство XQuery, но тесно связана с XPath 2.0
и XQuery 1.0 и полностью не зависит от первой.
Рекомендуемые обучающие руководства и учебные пособия
- Статья Говарда Катца (Howard Katz) «Введение в XQuery»
(An introduction
to XQuery) знакомит с XQuery, в ней
также приводятся примеры, скорректированные с учетом
последних изменений в рабочих вариантах спецификаций
(developerWorks, сентябрь 2003г.).
- В статье Николаса Чейза «Обработка XML
с использованием XML Query» (Process
XML using XML Query) рассказывается о XQuery
и об изменениях в XPath 2.0. Несмотря
на то, что в ней рассматриваются несколько более ранние
версии спецификаций, внесенные в них изменения незначительны,
поэтому автор рекомендует для прочтения и эту статьи
(developerWorks, сентябрь 2002г.).
- Статья Пера Ботнера (Per Bothner) «Что такое XQuery» (What
is XQuery?), а также его недавнее уточнение,
освещающее самые последние рабочие версии спецификаций.
Список литературы и другие ресурсы
- Xquery. com —
отличный ресурс XQuery, он также включает Wiki, совместный
информационный ресурс и место проведения интерактивных
обсуждений.
SQL/XML
Спецификация SQL/XML
[Международный стандарт ISO/МЭК 9075-14:2003] —
это новый раздел стандарта SQL, в котором охвачено множество
связанных с XML расширений для SQL. Изначально SQL/XML
разрабатывался «Неформальной группой компаний SQLX», в которую
входил IBM, затем эта спецификация перешла под эгиду Американского
национального института стандартов (ANSI —орган стандартизации,
занимающейся SQL). SQL/XML охватывает следующие документы
(по словам Эндрю Эйзенберга (Andrew Eisenberg) и Джима
Мелтона (Jim Melton)):
- Спецификации для представления данных SQL (в особенности
строк и таблиц строк, а также выборок и результатов
выполнения запросов) в виде XML и, наоборот.
- Спецификации, связанные с преобразованием схем SQL
в схемы XML и, наоборот. Кроме того, сюда могут входить
преобразования между существующим произвольным XML и схемами
SQL.
- Спецификации для представления схем SQL в XML.
- Спецификации для представления операций SQL (вставить,
обновить, удалить).
- Спецификации для передачи сообщений для XML при использовании
с SQL.
Спецификация SQL/XML имеет очень мало общего с XQuery, хотя
стороны, участвующие в разработке этих спецификаций, обычно
работают совместно.
Список литературы и другие ресурсы
CSS
В спецификации «Каскадные таблицы стилей» (Cascading Style Sheets
(CSS)) [Рекомендация W3C] описывается, как применять стиль
презентации к разметке. Эта спецификация широко известна
благодаря своему использованию при форматировании HTML Web-страниц,
однако после выхода CSS Level 2 она стала подходить и для
представления XML-документов в среде Web. Преобразование
XML-документов в выходную структуру осуществляется
с помощью свойства display. В спецификации «Ассоциирование
таблиц стилей с XML-документами, версия 1.0» (Associating Style Sheets
with XML documents, Version 1.0) [Рекомендация
W3C] определен стандартный способ связывания XML-документа
с документом таблицы стилей CSS.
Рекомендуемые обучающие руководства и учебные пособия
- Статья Саймона Ст. Лорента (Simon St. Laurent) «Демонстрация:
Web-сервисы XML с Mozilla» (On Display:
XML Web Pages with Mozilla) хотя и старая,
однако освещает основные понятия на примерах в браузере
Mozilla (и сравнение с MSIE 5).
- В «Учебном пособии CSS 2» (CSS2 Tutorial),
опубликованном на ресурсе ZVON, объясняется, как использовать
CSS2 для отображения XML-документов.
- В колонке Дэвида Мертца (David Mertz) в рубрике
developerWorks опубликована статья «Использование CSS2 для
отображения XML-документов» (Using
CSS2 to display XML documents),
в которой на подробных примерах рассказывается
о CSS.
XForms
В спецификации XForms 1.0 [Рекомендация
W3C], которую не следует путать с одноименной библиотекой
графического пользовательского интерфейса Xwindows, определяются
Web-формы для обработки данных XML, которые могут быть использованы
со множеством платформ в различных медиа-средах. Цель этой
спецификации —отделить предназначение формы
от ее представления. Она разделяет то, что делает форма,
от того, как она выглядит. Это словарь XML, который можно
использовать для разработки пользовательских интерфейсов для
манипулирования содержанием XML. Изначально спецификация XForms
разрабатывалась как часть семейства XHTML, но затем получила
самостоятельное развитие. Хотя она более сложная, чем необходимо,
XForms достаточно тщательно проработана для того, чтобы «привнести
порядок в безумный мир Web-форм».
Рекомендуемые обучающие руководства и учебные пособия
- Статья Мика Дубинко (Micah Dubinko) «Что такое XForms» (What Are
XForms?) позволяет получить общее представление об этой
технологии.
- В статье Джоэла Риверы (Joel Rivera) и Лена Тейнга
(Len Taing) «Приготовьтесь: XForms» (Get
ready for XForms) на нескольких примерах раскрываются
основы XForms (developerWorks, декабрь 2002г.).
- В статье Николаса Чейза «Объяснение XForms» проводится
(Understanding
XForms) подобнейшее объяснение XForms (developerWorks,
декабрь 2002г.).
SOAP
В спецификации SOAP [Рекомендация W3C]
описывается протокол, предназначенный для использования XML для
передачи сообщений между системами, которые связаны с помощью
низкоуровневых Интернет-протоколов. Некоторые пользователи
рассматривают SOAP как основание Web-сервисов XML — набор
технологий для управления и организации взаимодействия систем,
связанных с использованием форматов данных XML
и Интернет-протоколов передачи сообщений.
Первоначально SOAP разрабатывался небольшой группой, состоящей
из частных лиц и различных компаний, в том числе IBM.
Он быстро завоевал популярность, поскольку совпал
с направлением работ над обменом сообщениями XML,
но обеспечил более надежную архитектуру и коммерческую
поддержку. Разработка SOAP перешла под эгиду W3C, после чего
появился SOAP 1.2, который не смотря на множество
архитектурных улучшений, привнес ряд неоднозначны допущений.
Протокол SOAP определяет формат конверта XML, который может
содержать полезную нагрузку псевдо-XML (то обстоятельство, что
фактическая полезная нагрузка сообщения SOAP может только частично
использовать возможности XML, вызывает серьезные нарекания).
Поскольку Web-сервисам необязательно использовать SOAP, большая
группа разработчиков отстаивает предложение о том, что
достаточно просто обмениваться необработанными XML-документами
непосредственно через HTTP — подход продвигаемый под знаменами
«REpresentational
State Transfer (REST)».
Сам REST — это имя, которое дал архитектурному стилю Web
один из его архитекторов, Рой Филдинг (Roy Fielding).
Сторонники применения этого стиля для Web-сервисов утверждают, что
SOAP сложен, ограничивает свою полезную нагрузку XML
и не использует в достаточной степени сильные стороны
Web.
В лагере приверженцев SOAP недавно произошли изменения:
их устремления сместились с корней RPC к тому, что
называется стилем document-literal. В соответствии с этим
стилем, данные, подлежащие передаче, упаковываются в дискретные
типы данных в специальном формате полезной нагрузки XML
(называемом кодированием SOAP). При использовании стиля
document-literal полезная нагрузка XML состоит из более
естественных форматов XML, которые часто более описательны
и удобочитаемы для человека.
The SOAP edifice
На спецификации SOAP базируется огромное число
стандартов — гораздо большее, чем можно описать в этой
статье. Ниже приведены некоторые полезные источники информации:
Один из предшественников SOAP, который до сих пор
широко используется, это стандарт «Удаленный вызов процедуры
на XML» (XML Remote
Procedure Calls (XML-RPC)) [Общественный стандарт].
В нем определяются вызовы процедур, закодированные на XML
и переданные по HTTP. Эта спецификация остается
по-прежнему популярной по причине своей простоты
(ее полный текст занимает менее десяти печатных страниц),
а также из-за того, что на многих языка и каркасах
приложений имеются стандартные и готовые реализации
XML-RPC.
Однако, технология XML-RPC обладает рядом существенных
недостатков, включая очень примитивный контроль типов данных
и отсутствие поддержки кодирования символов (удивительный
изъян, если учесть, что в ней используется XML).
Рекомендуемые обучающие руководства и учебные пособия
- На сайте консорциума W3C опубликован материал «Основные
понятия SOAP» (primer
on SOAP), который автор настоятельно рекомендует для
прочтения, поскольку в нем освещается транспортный формат
XML.
- Для программистов Perl может оказаться интересной статья Пола
Кулченко (Paul Kulchenko) «Краткое введение в SOAP» (Quick Start
with SOAP), которая вряд ли могла устареть, поскольку
посвящена API, а не транспортному формату.
- Разработчики Python могут изучить страницу «The
Python Web services developer column» в рубрике
developerWorks на сайте IBM.
- Автор этой статьи рекомендует использовать стиль
document-literal. Его точку зрения поддерживает Джеймс Маккарти
(James McCarthy) в своей статье «Преимущества использования
стиля document-literal в Web-сервисах» (Reap
the benefits of document style
Web services) (developerWorks, июнь
2002г.).
- Статьи Пола Прескода (Paul Prescod) «Web-сервисы второго
поколения» (Second
Generation Web Services) и «REST и реальный мир» (REST
and the Real World) — отличное введение
в REST, в котором объясняются причины продвижения этого
подхода.
- Программистам Perl, которые интересуются XML-RPC, можно
посоветовать познакомиться со статьями Джоу Джонстона (Joe
Johnston) «Использование XML-RPC для Web-сервисов: введение
в XML-RPC на Perl» (Using
XML-RPC for Web services: Getting
started with XML-RPC in Perl)
и «Межплатформенное ПО XML-RPC» (XML-RPC
Middleware) (developerWorks, март 2001г.).
- Пользователям Python, желающим узнать о XML-RPC, можно
рекомендовать статью Майка Олсона (Mike Olson) и Юча Огбуджи
«XML-RPC для Python» (XML-RPC
for Python) (developerWorks, август 2002г.).
- На странице Эрика Кидда (Eric Kidd) «XML-RPC
HOWTO» обсуждается, как использовать этот протокол
в языке Java, C, C++, Perl, Ruby и .NET.
WSDL
Согласно официальному определению, спецификация «Язык описания
Web-сервисов (WSDL), версия 1.2» (Web Services Description
Language (WSDL) Version 1.2) [находится в стадии
разработки] это «формат XML, предназначенный для описания сетевых
сервисов в виде конечных точек, обрабатывающих сообщения,
которые содержат ориентированную на документ, либо
на процедуру информацию». В этой спецификации на ряде
уровней абстрагирования определяются компоненты сквозной передачи
в Web-сервисе. Изначально WSDL разрабатывался как совместный
проект IBM и Microsoft, но затем был передан в W3C
с целью разработки WSDL 1.2. Язык WSDL обычно позиционируется
вместе с SOAP, как базовая технология Web-сервисов,
но он может быть использован для описания других
протоколов помимо SOAP.
Рекомендуемые обучающие руководства и учебные пособия
- Статья Билала Сиддикви (Bilal Siddiqui) «Развертывание
Web-сервисов с WSDL» (Deploying
Web Services with WSDL), опубликованная в рубрике
developerWorks на сайте IBM, посвящена ранней версии WSDL
(декабрь 2002г.).
Продолжение следует
В этой статье были рассмотрены наиболее важные
XML-стандарты, используемые при разработки приложений.
В следующей статье речь пойдет о наиболее значимых
словарях XML.
Ресурсы
- В первой статье
этой серии (first
installment) Юч Огбуджи рассматривает базовые
XML-технологии (developerWorks, январь 2004г.).
- Список
XML-стандартов в рубрике developerWorks на сайте
IBM.
- Книга Эллиотта Расти Хэрольда «Библия XML, второе издание» (The XML
Bible, 2nd Edition) (издательство
John Wiley & Sons, 2001г.) — наиболее
полный и исчерпывающий источник информации об XML.
- Web-сайты наиболее значимых организаций, занимающихся
разработкой XML-стандартов:
- Сайт консорциума
World-Wide Web (W3C (World Wide Web Consortium)).
- Сайт Организации
по стандартизации структурированной информации (OASIS
(Organization for the Advancement of Structured Information
Standards)).
- Сайт Международной
организации по стандартизации (International Standards
Organization, ISO), особенно той его части, где находится
информация о проекте DSDL (ISO/IEC 19757 — Document
Schema Definition Languages (DSDL)).
- Статья Саймона Ст. Лорента (Simon St. Laurent) «Знакомство
с W3C, мнение не члена организации» (Outsider's Guide
to the W3C) написана в форме часто задаваемых
вопросов, в которых освещаются многие аспекты деятельности
этой организации.
- Ресурс Робина Кавера (Robin Cover) «The Cover Pages» содержит
информацию практически обо всех существующих XML-технологиях.
- Новости сайта Xmlhack,
в редактировании которых нередко участвует автор этой статьи.
- Ряд ресурсов, посвященных XML, в разделе XML (рубрика
developerWorks) (developerWorks XML
content area), включая колонку автора этой статьи «Размышление
о XML» (Thinking
XML column).
- База данных IBM DB2 обеспечивает
не только хранение реляционной базы данных,
но и инструменты, связанные с XML, как например DB2 XML
Extender, который обеспечивает связь между XML
и реляционными системами. В разделе DB2 рубрики
developerWorks содержится подробная информация о DB2.
- На странице IBM
Certified Developer in XML and related technologies
приведена информация о том, как стать сертифицированным
разработчиком XML.
Об авторе
Юч Огбуджи (Uche Ogbuji) - консультант и один из
основателей Fourthought,
компании, занимающейся поставками программного обеспечения и
предоставлением консалтинговых услуг в области XML-решений для
корпоративного управления знаниями. Fourthought разрабатывает
4Suite, платформу с открытым
исходным кодом, для XML, RDF и приложений по управлению
знаниями. Юч Огбуджи - инженер в области вычислительной
техники, он родился в Нигерии, сейчас живет и работает в
Боулдер-Сити (Boulder), штат Колорадо, США. С ним можно
связаться по адресу uche.ogbuji@fourthought.com.