
- •Iis и xml функции sql Server
- •Поддержка xml в Microsoft sql Server 2000
- •Примеры
- •Iis и xml функции sql Server
- •Шаблоны
- •Запросы xPath
- •Замечания по разделу
- •Возможности ado 2.5 Сохранение и загрузка из файла в формате xml
- •Трансформация с помощью domDocument
- •Выдача Recordset’а в формате xml непосредственно в поток Response
- •Возможности ado 2.6
- •Использование Command для формирования xml-документа на сервере
- •Выполнение шаблона
- •Выполнение запроса xPath
- •Шаблон с агрегатными функциями
- •Формирование xml-документа на клиенте с помощью ado
- •Апдейтаграммы и xml Bulk Load
- •Апдейтаграммы
- •Добавление данных
- •Обновление данных
- •Удаление
- •Создание новой таблицы и загрузка данных
- •Загрузка иерархических документов
- •Заключение
- •Литература
- •Предисловие
- •Настройка iis
- •Содержание wsdl-файла
- •Секция types
- •Секция message
- •Секция portType
- •Формы сообщений
- •Секция binding
- •Секция service
- •Создание Web-методов
- •Тестируем Web-сервис
- •Поддержка sqlxml в .Net Framework
- •Тестовый проект
- •Цели и ограничения
- •Реализация
- •Заключение
- •Литература
- •Тип данных xml Основы
- •Метод query
- •Метод value
- •Метод exist
- •Метод modify
- •Использование xml-типа
- •Хранение xml-типа
- •Поддержка xml Schema
- •Создание схемы
- •Удаление схемы
- •Ограничения текущей реализации
- •Безопасность
- •Вложенные запросы for xml
- •Генерация xsd на лету
- •Поддержка xQuery
- •Тело запроса
- •Конструкторы узлов
- •Операторы сравнения
- •Операторы сравнения атомарных значений
- •Общие операторы сравнения
- •Операторы сравнения узлов
- •Логические операторы
- •Условные выражения
- •Flwor-выражения
- •Кванторные выражения
- •Сортировка
- •Заключение
- •Литература
Поддержка sqlxml в .Net Framework
Через ADO.NET нельзя получить доступ к таким сервисным провайдерам, как SQLXMLOLEDB, поэтому комплект SQLXML 3.0 содержит сборку Microsoft.Data.SqlXml. В нее входят следующие классы:
SqlXmlCommand – позволяет сохранять результаты в поток, а также предоставляет доступ к специальным свойствам.
SqlXmlParameter – представляет собой параметр запроса.
SqlXmlAdapter – позволяет заполнить DataSet с помощью SqlXmlCommand.
Самый богатый свойствами и методами класс – SqlXmlCommand, с помощью которого можно выполнять запросы XPath, исполнять шаблоны и выполнять автоматическую трансформацию, причем все это может быть сделано на клиенте.
Свойства класса SqlXmlCommand
ClientSideXml – если установлен в true, преобразование recordset-а в XML выполняется на клиенте. Подробности в [1].
SchemaPath – путь до аннотированной схемы, с помощью которой можно выполнять запросы XPath.
XslPath – Путь до файла XSLT, которая будет автоматически использована после выборки данных (и, если необходимо, преобразования их в XML).
Namespaces – Задает пространства имен, которые могут понадобиться для исполнения запросов XPath.
RootTag – Так как результирующий XML-документ не является правильно оформленным вследствие того, что не имеет корневого элемента, непосредственная работа с ним может быть затруднена. Свойство RootTag позволяет задать корневой элемент результирующего документа.
В качестве типа команды можно использовать следующие значения.
Тип |
Описание |
SqlXmlCommandType.Sql |
Стандартный код T-SQL. |
SqlXmlCommandType.XPath |
Запрос XPath. |
SqlXmlCommandType.Template |
Выполнение шаблона. |
SqlXmlCommandType.TemplateFile |
Выполнение шаблона, находящегося в файле. |
SqlXmlCommandType.UpdateGram |
Выполнение апдейтаграммы. Подробности в [1] |
SqlXmlCommandType.Diffgram |
Выполнение дифграммы. |
В форумах по ASP.NET иногда поднимаются вопросы наподобие: «Как наиболее эффективно и просто передать XML-документ пользователю?». Вот пример кода на VB.NET:
Передача XML пользователю с помощью SqlXmlCommand.
Dim cmd as SqlXmlCommand cmd = New SqlXmlCommand("Provider=SQLOLEDB;User ID=user;" _ & "Data Source=server;Password=password;") cmd.CommandText = "select * from [table] for xml auto" cmd.CommandType = SqlXmlCommandType.Sql cmd.RootTag = "root" Response.Clear() Response.ContentType = "text/xml" cmd.ExecuteToStream(Response.OutputStream) Response.End() |
Помимо метода ExecuteToStream, класс SqlXmlCommand предоставляет другие удобные методы выборки данных:
ExecuteStream – создает и возвращает новый поток.
ExecuteXmlReader – создает и возвращает экземпляр класса XmlReader.
Примеры выполнения запросов XPath и шаблонов можно посмотреть в [1]. Более подробную информацию об использовании этих классов можно получить в [4].