1 XML в MS SQL Server 2000 и технологиях доступа к данным Алексей Шуленин Microsoft, Moscow Отдел стратегических платформ.NET системный инженер.

Презентация:



Advertisements
Похожие презентации
БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
Advertisements

Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
СУБД Microsoft Access 2003 ЗНАКОМСТВО. Что такое Access? Access – Приложение, входящее в состав пакета Microsoft Office (разработано компанией Microsoft).
Информационные системы. Базы данных. Информационная система – любая система обработки информации (шир)
Инструменты бизнес- анализа для территориально- распределенных холдингов.
ОБНОВЛЕНИЯ WIDOWS XP ЗА МАРТ-АПРЕЛЬ 2014 Выполнил : Студент группы ОЗИ -41 Матясов А. Ю.
ДАЛЕЕ БАЗА ДАННЫХ ACCESS Проектирование базы данных Создание базы данных Создание базы данных без помощи мастера Таблицы Создание таблицы в режиме конструктора.
1. Краткая характеристика MS Access1. Краткая характеристика MS Access 2. Достоинства и недостатки 3. Типы БД 4. Базы данных и системы управления базами.
«Особенности файловой системы WinFS» Сравнение с предыдущими файловыми системами.
Реализация концепции построения и формирования отраслевой системы государственного учета, регистрации и мониторинга (ОСГУРМ) информационных ресурсов сферы.
Yagod-sch.ucoz.ru (все уроки) Составил учитель ИКТ Фоломкин А.И.
Чувашский Государственный педагогический университет имени И.я.Яковлева Тема учебного проекта: Базы данных в сети Интернет Автор: Студент ФМФ 5-го курса.
Базы данных Учебная презентация. Определение База данных (БД) – это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов,
Лекция 2. Тема « Новые технологии и тенденции развития Интернет »
Администрирование информационных систем Лекция 4. Система управления базами данных.
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 5 СТРУКТУРИРОВАННЫЙ ЯЗЫК ЗАПРОСОВ SQL.
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
Классификация БД. СУБД и ее компоненты. Логическое и физическое описание данных.
Урок 3. Формы представления данных (таблицы, формы, запросы, отчеты)
Транксрипт:

1 XML в MS SQL Server 2000 и технологиях доступа к данным Алексей Шуленин Microsoft, Moscow Отдел стратегических платформ.NET системный инженер

2 Зачем XML нужен в СУБД? Передача запросов и результатов через Интернет Передача запросов и результатов через Интернет XML прозрачно проходит сквозь сетевые экраны XML прозрачно проходит сквозь сетевые экраны В отличие, скажем, от СОМ-объектов В отличие, скажем, от СОМ-объектов Взаимодействие в гетерогенных средах Взаимодействие в гетерогенных средах XML сейчас понимают все независимо от платформы и ОС XML сейчас понимают все независимо от платформы и ОС Интеграция не только с другими СУБД, но и с серверами B2B, электронной коммерции и пр. Интеграция не только с другими СУБД, но и с серверами B2B, электронной коммерции и пр. Не требует установки дополнительного ПО на клиента Не требует установки дополнительного ПО на клиента Клиент может быть сколь угодно тонким Клиент может быть сколь угодно тонким Опять же потому, что средства его подержки присутствуют изначально Опять же потому, что средства его подержки присутствуют изначально

3 Немного истории ADO 2.1 (1999 г.) ADO 2.1 (1999 г.) Сохранить рез-ты запроса (ADODB.Recordset) в XML-формате Сохранить рез-ты запроса (ADODB.Recordset) в XML-формате До этого в ADO 2.0 подерживался только ADTG До этого в ADO 2.0 подерживался только ADTG Частный бинарный формат, использовавшийся при передаче recordseta в удаленном доступе с помощью RDS Частный бинарный формат, использовавшийся при передаче recordseta в удаленном доступе с помощью RDS На выходе – нормальный XML со своей схемой На выходе – нормальный XML со своей схемой Можно делать все, что и с обычным XML-документом Можно делать все, что и с обычным XML-документом Открыть при пом. DOM, запросить при пом. XPath, преобразовать при пом. XSL и т.д. Открыть при пом. DOM, запросить при пом. XPath, преобразовать при пом. XSL и т.д. Посмотреть код Посмотреть код

4 ADO 2.5 ADO 2.5 Промежуточное сохранение в файл – лишние затраты Промежуточное сохранение в файл – лишние затраты Появилась возможность напрямую в программе передавать полученный поток (stream) XML любому объекту, под. IStream Появилась возможность напрямую в программе передавать полученный поток (stream) XML любому объекту, под. IStream Возм. и обр.ситуация - чтение XML из потока и его запись в recordset Возм. и обр.ситуация - чтение XML из потока и его запись в recordset За счет введения нового сервисного провайдера За счет введения нового сервисного провайдера Microsoft OLE DB Persistence Provider ("Provider=MSPersist") Microsoft OLE DB Persistence Provider ("Provider=MSPersist") Немного истории Посмотреть код Посмотреть код

5 Появление XML в SQL Server Рассмотренные ранее подходы имеют две особенности Рассмотренные ранее подходы имеют две особенности Преобразование в XML происходит на клиенте Преобразование в XML происходит на клиенте XML получается по предопределенной схеме XML получается по предопределенной схеме Требуется дополнительное XSL-преобразование Требуется дополнительное XSL-преобразование В SQL Server 2000 появилась возможность получения XML на стороне сервера В SQL Server 2000 появилась возможность получения XML на стороне сервера SELECT... FOR XML... SELECT... FOR XML... Посмотреть код Посмотреть код

6 Клиент Сервер SQLOLEDB FOR XML sqlxmlx.dll XML-документ XML Поэтому все XPath- и updategrams- преобразования вып-ся на стороне клиента SQLOLEDB XML-документ XML SQLXMLOLEDB FOR XML sqlxml3. dll Документ получается на сервере, но ввиду отс-я встроенного типа XML он может только отдать его клиенту Документ получается на сервере, но ввиду отс-я встроенного типа XML он может только отдать его клиенту Его нельзя использовать как результат подзапросов, хранимых функций и всего остального, что предполагает дальнейшую обработку на SQL Server Его нельзя использовать как результат подзапросов, хранимых функций и всего остального, что предполагает дальнейшую обработку на SQL Server SELECT... FOR XML Посмотреть код Посмотреть код

7 Поддержка XML в SQL Server Впервые появилась в составе SQL Server 2000 Впервые появилась в составе SQL Server 2000 Август 2000 г. Август 2000 г. Дополняется и расширяется SQLXML веб-релизами Дополняется и расширяется SQLXML веб-релизами Выкладываются на сайт SQL Server Выкладываются на сайт SQL Server Доступны для бесплатного скачивания и установки зарегистрированными пользователями Доступны для бесплатного скачивания и установки зарегистрированными пользователями Текущий на данный момент – SQLXML 3.0 Текущий на данный момент – SQLXML 3.0 В составе Microsoft SQL Server 2000 Web Services Toolkit В составе Microsoft SQL Server 2000 Web Services Toolkit FILES/027/001/872/msdncompositedoc.xml&frame=true FILES/027/001/872/msdncompositedoc.xml&frame=true FILES/027/001/872/msdncompositedoc.xml&frame=true FILES/027/001/872/msdncompositedoc.xml&frame=true

8 SqlXmlAdapter Dataset Fill Update SQLXML Managed Classes для.NET XmlReader БД SqlCommand FOR XML XMLVIEW SqlXmlCommand XML XPathXQueryTemplate XML Посмотреть код Посмотреть код

9 FOR XML на клиенте Клиент Сервер XML SQLXMLOLEDB FOR XML SQLOLEDB Data Provider = SQLOLEDB Команда Rowset Rowset Какой-нибудь другой провайдер Команда Rowset В перспективе SQLXMLOLEDB можно использовать с любыми источниками данных В перспективе SQLXMLOLEDB можно использовать с любыми источниками данных Provider= SQLXMLOLEDB;DataProvider=… Provider= SQLXMLOLEDB;DataProvider=… Однако в настоящее время в качестве провайдера данных подерживается только SQL Server Однако в настоящее время в качестве провайдера данных подерживается только SQL Server FOR XML Rowset Посмотреть код Посмотреть код

10 Другие способы получения XML на клиенте. ADO.Net Типовой сценарий Типовой сценарий Получить внутри DataSet таблицы как результаты запросов к источнику данных Получить внутри DataSet таблицы как результаты запросов к источнику данных Возможно, к разным Возможно, к разным Связать их между собой на основе объектов DataRelation Связать их между собой на основе объектов DataRelation Создать XML-представление DataSeta при помощи XmlDataDocument Создать XML-представление DataSeta при помощи XmlDataDocument Посмотреть код Посмотреть код

11 Класс XmlDataDocument Производный от DOMовского XmlDocument Производный от DOMовского XmlDocument Позволяет выполнять над DataSet все стандартные XML-операции Позволяет выполнять над DataSet все стандартные XML-операции XPath-запросы, XSL-преобразования XPath-запросы, XSL-преобразования в част., данные источника можно модифицировать не только напрямую через DataSet в част., данные источника можно модифицировать не только напрямую через DataSet ds.Tables[ ].Rows[ ][ ] = … ds.Tables[ ].Rows[ ][ ] = … Но и через его XML-представление Но и через его XML-представление Задавая координаты узлов в терминах XPath Задавая координаты узлов в терминах XPath Эти изменения отражаются в DataSetе, над которым построен данный XmlDataDocument Эти изменения отражаются в DataSetе, над которым построен данный XmlDataDocument А далее транслируются в источник А далее транслируются в источник Если у DataAdapterов таблиц определены UpdateCommandы Если у DataAdapterов таблиц определены UpdateCommandы Посмотреть код Посмотреть код

12 Обратное тоже верно В DataSet можно загрузить XML-документ, который затем читать и модифицировать реляционными операциями В DataSet можно загрузить XML-документ, который затем читать и модифицировать реляционными операциями На основе XSD-схемы ADO.Net создает DataSet эквивалентной реляционной структуры На основе XSD-схемы ADO.Net создает DataSet эквивалентной реляционной структуры Можно обращаться и модифицировать XML- документ, как если бы он был совокупностью связанных таблиц. Можно обращаться и модифицировать XML- документ, как если бы он был совокупностью связанных таблиц. Посмотреть код Посмотреть код

13 Прямые XPath-запросы к объектам SQL Server Рассмотренные возможности ADO.Net по своей сути результат эволюции простого сохранения ADODB.Recordset в XML Рассмотренные возможности ADO.Net по своей сути результат эволюции простого сохранения ADODB.Recordset в XML Вернемся к серверной стороне вопроса Вернемся к серверной стороне вопроса SQL Server понимает и отрабатывает не только SQL, но и XPath SQL Server понимает и отрабатывает не только SQL, но и XPath На сервере XPath превращается в SELECT... FOR XML На сервере XPath превращается в SELECT... FOR XML Можно посмотреть в Profiler Можно посмотреть в Profiler Ограничения Ограничения Пользуется схемой по умолчанию: строки – элементы, столбцы – атрибуты Пользуется схемой по умолчанию: строки – элементы, столбцы – атрибуты Результат возвращается в виде строкового стрима в силу уже упоминавшегося отс-я типа XML Результат возвращается в виде строкового стрима в силу уже упоминавшегося отс-я типа XML Посмотреть код Посмотреть код

14 Аннотированные схемы Позволяют снять оба ограничения Позволяют снять оба ограничения Задают XSD-описание реляционной информации Задают XSD-описание реляционной информации С пом. аннотированных схем XPath-запросы к SQL Server возвращают нормальный XML С пом. аннотированных схем XPath-запросы к SQL Server возвращают нормальный XML Аннотации привязывают реляционку к схеме Аннотации привязывают реляционку к схеме Сопоставляет элемент таблице БД Сопоставляет элемент таблице БД Указывает на поле таблицы Указывает на поле таблицы Задает набор полей, однозначно определяющих запись Задает набор полей, однозначно определяющих запись Определяет связь «первичный/внешний ключ» между таблицами в БД Определяет связь «первичный/внешний ключ» между таблицами в БД Определены в urn:schemas-microsoft-com:mapping-schema Определены в urn:schemas-microsoft-com:mapping-schema XSD-схема XSD-схема Аннотированная схема Аннотированная схема Еще один пример Еще один пример

15 XPath-запросы через аннотированные схемы Таким образом, аннотированные схемы – это инструмент для адресации XPath- запросов к SQL Server Таким образом, аннотированные схемы – это инструмент для адресации XPath- запросов к SQL Server Аннотации позволяют задать соответствия между реляционной и XML-схемами Аннотации позволяют задать соответствия между реляционной и XML-схемами Через призму аннотированной схемы реляционная информация видится XPath- запросу, как обычный XML-документ Через призму аннотированной схемы реляционная информация видится XPath- запросу, как обычный XML-документ Посмотреть код Посмотреть код

16 Шаблоны Аналог хранимых процедур SQL Server с той лишь разницей, что в них могут сочетаться SQL- и XPath-запросы Аналог хранимых процедур SQL Server с той лишь разницей, что в них могут сочетаться SQL- и XPath-запросы <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql" sql:xsl='XSL FileName' > sql:xsl='XSL FileName' > n.....n sql statement(s) sql statement(s) XPath query XPath query </ROOT> Возможность преобразования XML- результатов запроса SQL Возможность передачи параметров SQL-запросу и установки их значений по умолчанию SQL-запросы (включая вызовы процедур) Наряду с SQL подерживаются XPath-запросы Посмотреть живой шаблон Посмотреть живой шаблон Посмотреть пример вызова Посмотреть пример вызова

17 Шаблоны Аннотированные схемы, на которые ссылается, могут находиться в теле шаблона Аннотированные схемы, на которые ссылается, могут находиться в теле шаблона Шаблоны – это не только хранимые процедуры Шаблоны – это не только хранимые процедуры Шаблон можно приготовить в ходе выполнения и подать как Stream Шаблон можно приготовить в ходе выполнения и подать как Stream Частный случай – как строку Частный случай – как строку Посмотреть код Посмотреть код Посмотреть код Посмотреть код Посмотреть шаблон Посмотреть шаблон

18 Кэширование шаблонов Шаблоны остаются в памяти после первого выполнения Шаблоны остаются в памяти после первого выполнения Что улучшает производ-ть при интенсивной работе с шаблонами Что улучшает производ-ть при интенсивной работе с шаблонами Емкость кэша задается здесь Емкость кэша задается здесь HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SQLXML3\Templat eCacheSize HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SQLXML3\Templat eCacheSize В штуках шаблонов В штуках шаблонов По умолч. 31 По умолч. 31 Отмена кэширования Отмена кэширования Virtual Directory Properties -> Advanced -> Disable Caching of template Virtual Directory Properties -> Advanced -> Disable Caching of template Аналогично настраивается кэш для аннотированных схем Аналогично настраивается кэш для аннотированных схем HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SQLXML3\Schema CacheSize HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SQLXML3\Schema CacheSize

19 XML-обновление на сервере До сих пор мы только читали данные в виде XML До сих пор мы только читали данные в виде XML Возможность обновления косвенно затрагивалась 2 раза Возможность обновления косвенно затрагивалась 2 раза Когда разбирали квантово-волновой дуализм ADO.Net (XmlDataDocument) Когда разбирали квантово-волновой дуализм ADO.Net (XmlDataDocument) Это неинтересно, потому что происходит через клиента Это неинтересно, потому что происходит через клиента И шаблоны, на с.д., если прописать INSERT/UPDATE/DELETE в И шаблоны, на с.д., если прописать INSERT/UPDATE/DELETE в Это тоже неинтересно, п.ч. по сути делается ср-ми SQL, а не XML Это тоже неинтересно, п.ч. по сути делается ср-ми SQL, а не XML Код Шаблон

20 XML-запросы на обновление UpdateGrams UpdateGrams По своей природе – шаблон По своей природе – шаблон Содержит updgr-аннотации, при помощи которых описываются модификации в БД Содержит updgr-аннотации, при помощи которых описываются модификации в БД … … </ROOT> Все удаления / вставки внутри одного sync происходят в одной транзакции Аннотированная схема. Определяет связь между SQL- и XML-схемами Посмотреть живую Updategrams Посмотреть живую Updategrams

21 XML BulkLoad Не грузит весь XML целиком в память Не грузит весь XML целиком в память Считывает поэлементно, определяя область действия элемента по аннотированной схеме Считывает поэлементно, определяя область действия элемента по аннотированной схеме Как и в случае UpdateGrams, возможно наполнение связанных таблиц Как и в случае UpdateGrams, возможно наполнение связанных таблиц Документ Схема Загрузка

22 А как насчет доступа по HTTP? В самом начале я называл его одним из трех ключевых обоснований подержки XML в СУБД В самом начале я называл его одним из трех ключевых обоснований подержки XML в СУБД Однако до сих пор в примерах разбирались по сути сценарии локальной сети Однако до сих пор в примерах разбирались по сути сценарии локальной сети Настало время исправить эту несправедливость Настало время исправить эту несправедливость

23 Организация взаимодействия с SQL Server по HTTP Напрямую по HTTP с SQL Server общаться нельзя Напрямую по HTTP с SQL Server общаться нельзя Во всяком случае, пока Во всяком случае, пока Между клиентом и SQL Server требуется IIS Между клиентом и SQL Server требуется IIS ISAPI-фильтр sqlis3. dll (входит в SQLXML 3.0) принимает вызовы GET, HEAD, POST, вытаскивает запрос к SQL Server и передает ему ISAPI-фильтр sqlis3. dll (входит в SQLXML 3.0) принимает вызовы GET, HEAD, POST, вытаскивает запрос к SQL Server и передает ему Т.о. участок IIS – SQL Server относится к локальному взаимодействию и сводится к задаче, к-ю мы умеем решать Т.о. участок IIS – SQL Server относится к локальному взаимодействию и сводится к задаче, к-ю мы умеем решать Чтобы разобраться участком клиент – IIS, нужно понять две вещи Чтобы разобраться участком клиент – IIS, нужно понять две вещи Как упаковать запрос в GET и POST Как упаковать запрос в GET и POST И как его отправить фильтру И как его отправить фильтру

24Клиент 1 Интернет 2 IIS OLE DB ISAPI Filter 4 3 SQL То же на картинке – схема публикации БД 7 6 Результатотправляется обратно клиенту

25 Как задействовать ISAPI-фильтр? Не мудрствуя лукаво, создать вирт.дир. и повесить его на нее Не мудрствуя лукаво, создать вирт.дир. и повесить его на нее Все, кто к ней обращается, пропускаются через sqlis3. dll Все, кто к ней обращается, пропускаются через sqlis3. dll Создается программным путем или графически через Configure IIS Support в SQLXML 3.0 Создается программным путем или графически через Configure IIS Support в SQLXML 3.0 Что указывается при ее создании Что указывается при ее создании Connectivity Connectivity Имя SQL Server и базы, на к-ю через нее собираемся ходить Имя SQL Server и базы, на к-ю через нее собираемся ходить Аутентификация Аутентификация Windows Integrated, базовая на SQL Server или анонимная (Anonymous д.б. привязан к учетной записи на SQL Server) Windows Integrated, базовая на SQL Server или анонимная (Anonymous д.б. привязан к учетной записи на SQL Server) Права Права На выполнение SELECT... FOR XML или ad hoc-templates На выполнение SELECT... FOR XML или ad hoc-templates XPath XPath Templates Templates

26 Как упаковать запрос Типы подкаталогов виртуальной директории Типы подкаталогов виртуальной директории dbobject dbobject Позволяет адресовать запросы напрямую к объектам БД Позволяет адресовать запросы напрямую к объектам БД schema schema Позволяет задавать аннотированную схему, преобразующую SQL в XML Позволяет задавать аннотированную схему, преобразующую SQL в XML template template Позволяет оборачивать SQL/XPath-запросы в XML-шаблон Позволяет оборачивать SQL/XPath-запросы в XML-шаблон teExample.xml?Cntry=USA teExample.xml?Cntry=USA soap soap Превращает SQL Server в Web-сервис Превращает SQL Server в Web-сервис Позволяет из клиентского приложения обращаться к процедурам, функциям и шаблонам как к методам Web- сервиса Позволяет из клиентского приложения обращаться к процедурам, функциям и шаблонам как к методам Web- сервиса GET Или из браузера Или из браузера POST Или из формы Или из формы

27 Что такое Web-сервис с точки зрения СОМ-разработчика? Это DCOM, где компоненты выходят за пределы локальной сети и могут быть распределены по Интернету Это DCOM, где компоненты выходят за пределы локальной сети и могут быть распределены по Интернету IDL / Type Library = WSDL IDL / Type Library = WSDL HKEY_CLASSES_ROOT / IUnknown = UDDI HKEY_CLASSES_ROOT / IUnknown = UDDI RPC = SOAP RPC = SOAP Сейчас по HTTP гоняется в основном HTML Сейчас по HTTP гоняется в основном HTML Он подходит для визуального восприятия, но малопригоден, если из URL нужно забрать информацию и передать в приложение Он подходит для визуального восприятия, но малопригоден, если из URL нужно забрать информацию и передать в приложение

28 SQL Server как Web-сервис Виртуальные подиректории типа SOAP позволяют обращаться к SQL Server как к Web-сервису Виртуальные подиректории типа SOAP позволяют обращаться к SQL Server как к Web-сервису Хранимые процедуры / функции и шаблоны видны как методы Web-сервиса Хранимые процедуры / функции и шаблоны видны как методы Web-сервиса wsdl-файл генерируется автоматически wsdl-файл генерируется автоматически Результат возвращается как единственный DataSet, массив объектов DataSet, либо массив XmlElement Результат возвращается как единственный DataSet, массив объектов DataSet, либо массив XmlElement Пример

29 SOAP и Web Services Генерируется WSDL-файл, описывающий «засвеченные наружу» хранимые процедуры и шаблоны Генерируется WSDL-файл, описывающий «засвеченные наружу» хранимые процедуры и шаблоны Утилита для их выбора Утилита для их выбора SQLServer IIS/ISAPI Message SP Template Клиент SOAPMessage WSDL

Май 01 UDDI Май 99 Internet Explorer 5.0 Окт. 97 Internet Explorer 4.0 Янв. 98 XSL Tech Preview Июнь 00 SOAP Toolkit v1 Авг. 00 SQL Server 2000 Дек. 00 BizTalk Server Окт. 00 MSXML 3.0 Апр. 01 SOAP Toolkit v2 XML в продуктах и технологиях Microsoft Окт 01 MSXML 4.0 SQLXML 2.0 Авг. 01 Windows XP Дек. 01 VS.Net Фев. 01 SQLXML 1.0 SQLXML 1 – XML Updategrams, XML Bulkload, улучшения в производительности SQLXML 1 – XML Updategrams, XML Bulkload, улучшения в производительности SQLXML 2 – подержка аннотированных XSD, FOR XML на стороне клиента (подержка в SQL 7.0), SQLXMLOLEDB-провайдер, интеграция с ADO.Net (SQLXML Managed Classes) SQLXML 2 – подержка аннотированных XSD, FOR XML на стороне клиента (подержка в SQL 7.0), SQLXMLOLEDB-провайдер, интеграция с ADO.Net (SQLXML Managed Classes) SQLXML 3 – SOAP для SQL Server SQLXML 3 – SOAP для SQL Server SQLXML 4 – XQuery, гетерогенные запросы SQLXML 4 – XQuery, гетерогенные запросы

31 XQuery Язык запросов XML, приходит на смену XPath Язык запросов XML, приходит на смену XPath Отличительные черты – явное конструирование элементов, возможность декомпозиции, более пригоден для работы оптимизатора Отличительные черты – явное конструирование элементов, возможность декомпозиции, более пригоден для работы оптимизатора Планируется ввести в SQL Server 2000 в SQLXML 4.0 Планируется ввести в SQL Server 2000 в SQLXML 4.0 Полная подержка – в MS SQL Server «Yukon» Полная подержка – в MS SQL Server «Yukon» FOR $b IN //book WHERE $b/publisher = Morgan Kaufmann AND $b/year = 1998 RETURN $b/title FOR $p IN //procedure[1], $e IN //* AFTER ($p//incision)[1] BEFORE ($p//incision)[2] RETURN $e FOR $d IN /dept WHERE EVERY $e IN $d/emp SATISFIES count($e/skill) >= 2 UPDATE $d/skill_audit WITH "OK" FOR $d IN /dept WHERE EVERY $e IN $d/emp SATISFIES count($e/skill) >= 2 UPDATE $d/skill_audit WITH "OK"

32 Выводы: XML в SQL Server 2000 Query Processor Annotated XSD Mapping Schemas XPath XQuery Query XML SQL Server SQL Server Rowsets FOR XML SQLQueries Queries SQLQueries Queries XMLBulkload BCP/SQLXML Updategrams SQL update/ insert/ delete XML

33 Вопросы?

34