Компьютер-Информ || Архив || Рубрики || Поиск || Подписка || Работа || О "КИ" || Карта


Microsoft Special Interest Group "Neva"

Интеграция Microsoft SQL 2000 и XML


Наталия Новакова, MCSE, MCDBA
n_novakova@eureca.ru

B настоящее время разработчики программных продуктов все чаще при решении вопроса о выборе базы данных останавливаются на Microsoft SQL Server 2000. Этот выбор определяется применением традиционных реляционных технологий: хранения, извлечения, анализа и обработки больших объемов структурированных данных. Однако Microsoft SQL Server 2000 имеет такую замечательную характеристику, как интеграция с XML, что предоставляет разработчикам возможность создавать приложения, способные перемещать данные между разнородными техническими или программными платформами.

Для извлечения XML-данных из SQL Server 2000 применяются два способа:
•применение COM-решений на основе библиотеки объектов Microsoft ActiveX Data Objects (ADO);
•поддержка публикации данных из базы и получение результатов запросов по HTTP через приложение IIS ISAPI (Internet Server Application Programming Interface).

Большинству разработчиков хорошо знакома библиотека объектов ADO. ADO это стандартная модель, применяемая для извлечения данных как из реляционных, так и из нереляционных хранилищ. Доступ к данным можно получить с помощью объектов Stream или Command, если используется SQLOLEDB Provider. ADO позволяет формировать XML- или HTML-потоки. Кроме того, ADO можно применять для доступа к XML-данным посредством аннотированной схемы или синтаксиса Xpath. Для публикации данных в SQL Server 2000 предусмотрена настройка виртуальной директории IIS, что позволяет создавать Интернет- и интранет-приложения с непосредственным доступом через HTTP-соединение. Благодаря этой возможности упрощается конфигурация доступа к данным через межсетевые экраны и обеспечивается интеграция приложений, организующих взаимодействие между компаниями, занимающимися совместным бизнесом через Интернет. Оба перечисленных подхода предоставляют доступ к данным SQL-сервера на основе нескольких технологий: запросы с опцией FOR...XML, шаблоны, отображение схем. Для обеспечения интеграции с XML в синтаксис языка Transact-SQL были внесены дополнения и изменения. Конструкция оператора SELECT была дополнена предложением FOR...XML, что позволяет вместо набора строк извлечь XML-поток. Для управления форматом возвращаемых XML-данных используются три различных модификации опции FOR...XML. Применение опции RAW при обращении к таблице Orders базы данных Northwind:

select OrderID, Orderdate
from Orders
where OrderID = 10248
or OrderID = 10249 for xml raw

В результате получаем фрагмент кода XML (листинг 1).

Особенности применения опции RAW:
•каждая строка результирующего набора начинается с элемента <row>;
•атрибут с тем же самым именем, что и имя поля или псевдонима, используемого в запросе, представляет каждое поле результирующего набора;
•запросы с опцией RAW могут включать агрегированные поля и опцию GROUP BY.

Полученный результат может в дальнейшем использоваться приложением в обычном формате или преобразовываться в спецификацию расширяемого языка стилей (XLST, Extensible Stylesheet Language Transformations). С помощью XLST можно преобразовывать полученный код XML в необходимый формат для бизнес-документа.

Тот же запрос с опцией AUTO (листинг 2).

Результат запроса (листинг 3).

Особенности применения опции AUTO:
•каждая строка возвращаемого набора представлена как XML-элемент с тем же самым именем, что и запрашиваемая таблица;
•каждый оператор JOIN-запроса представляется в виде вложенного XML-элемента результирующего набора;
•каждое поле в результирующем наборе представляется с помощью атрибута;
•агрегированные поля и опция GROUP BY не допускаются.

По умолчанию опции RAW и AUTO возвращают фрагменты XML-документов в атрибут-центрической грамматике. Однако для описания бизнес-документов может потребоваться элемент-центрическое представление. Для этого следует использовать опцию ELEMENTS (листинг 4).

В приведенном примере используется опция ORDER BY для корректного представления иерархии элементов (листинг 5).

Конструкция SELECT...FOR XML может быть применена для получения XML-документа на основе реляционных данных, хранящихся в таблицах SQL-сервера. Другая конструкция функция OpenXML. Эта функция обычно используется в хранимых процедурах совместно с системными хранимыми процедурами sp_xml_preparedocument и sp_xml_releasedocument для вставки данных из XML-документа в реляционные таблицы.

Модифицировать данные в БД с помощью XML можно двумя способами: XML Updategrams и XML Bulk Load. Updategrams это XML-документы, включающие образы данных before и after, используемые для модификации таблиц БД. Пример иллюстрирует обновление таблицы Customers (листинг 6).

XML Bulk Load применяется для массивной загрузки XML-данных в реляционную базу.
В этой статье были затронуты лишь некоторые аспекты применения XML. Возможности XML в области интеграции приложений, организации электронной коммерции и электронного бизнеса поистине безграничны. Применение XML для решения перечисленных задач требует серьезного изучения как самого языка, так и способов реализации бизнес-приложений на его основе. Корпорацией Microsoft разработан ряд курсов, посвященных как самому языку XML, так и продуктам, работа которых базируется на XML.

Курс 1905 Создание Web-приложений с использованием XML (Building XML-Based Web Applications) предназначен для профессиональных разработчиков, которым необходимо освоить XML для создания Web-приложений и приложений электронной коммерции. В курсе рассматривается синтаксис языка XML, обзор XML-технологий и XML-документов, использование Extensible Stylesheet Language (XSL) для преобразования данных и отображения их в Web-браузере. Кроме того, затрагиваются вопросы применения Active Server Pages (ASP) и ADO 2.6 для чтения данных из источника данных и сохранения их в XML, а также использование XSL для преобразования данных в различные форматы XML.

Курс 1913 Перенос и преобразование данных с использованием XML и XSLT (Exchanging and Transforming Data Using XML and XSLT) предназначен для профессиональных разработчиков, которым необходимо освоить XML для интеграции приложений и организации межкорпоративного электронного бизнеса. Подробно рассматриваются различные аспекты применения расширяемого языка стилей (Extensible Stylesheet Language, XSL), спецификация XSLT (XSL Transformations), создание и изменение структуры XML с использованием XSLT.

Курс 2091 Разработка XML-приложений с использованием Microsoft SQL Server 2000 (Building XML-Enabled Applications Using Microsoft SQL Server 2000) полезен разработчикам приложений и баз данных для Microsoft SQL Server 2000, а также специалистам, занимающимся интеграцией приложений и организацией электронного бизнеса. Рассматриваются различные подходы к извлечению XML-данных из SQL Server 2000: применение COM-решений на основе Microsoft ActiveX Data Object (ADO) и поддержка публикации данных посредством виртуальной директории IIS через соединение HTTP. В курсе детально представлены особенности извлечения данных из БД и их модификации с помощью различных дополнительных конструкций языка Transact-SQL, предназначенных для работы с XML.


       КОМПЬЮТЕР-ИНФОРМ 
          Главная страница || Статьи 09'2002 (20 мая - 2 июня) || Новости СПб || Новости России || Новости мира

Рубрики || Работа || Услуги || Поиск || Архив || Дни рождения
О "КИ" || График выхода || Карта сайта || Подписка

Рассылка анонсов газеты по электронной почте

Главная страница

Сайт газеты "Компьютер-Информ" является зарегистрированным электронным СМИ.
Свидетельство Эл 77-4461 от 2 апреля 2001 г.
Перепечатка материалов без письменного согласия редакции запрещена.
При использовании материалов газеты в Интернет гиперссылка обязательна.

Телефон редакции (812) 718-6666, 718-6555.
Адрес: 196084, СПб, ул.Заставская, д.23, БЦ "Авиатор", 3-й этаж, офис 307
e-mail: editor@ci.ru
Для пресс-релизов и новостей news@ci.ru