SQL-инструкции и XML

SQL Server позволяет представлять результаты реляционной выборки в виде XML и наоборот, представлять XML-фрагмент или документ в реляционной форме. Делается это с помощью расширения команды select – for xml и функции OPENXML, соответственно. Довольно подробно их использование описано в [6].

Рассмотрим основные нововведения в конструкции for xml, которые появятся в SQL Server 2005. Общий синтаксис запроса:

[ FOR { BROWSE | < XML > } ]<XML>::= XML { { RAW | AUTO } [ < CommonDirectives > [, { XMLDATA | XMLSCHEMA } ] [, ELEMENTS [ XSINIL | ABSENT ] ] | EXPLICIT [ < CommonDirectives > [, XMLDATA ] ] } < CommonDirectives >::= [, BINARY BASE64 ] [, TYPE ]

Где:

  • raw – каждая строка представляется в виде XML-элемента <row/>. Название поля формирует название атрибута, а значение поля – значение атрибута. Теперь появилась возможность формировать значения полей в виде XML-элементов, которые будут являться дочерними элементу row. Подробнее об этом см. ниже.
  • auto – фрагмент XML форматируется точно так же, как и при RAW-режиме, с тем исключением, что название элемента, представляющего строку, заменяется на название таблицы.
  • xmldata – добавляет к результирующему фрагменту встроенную (inline) схему XDR.
  • xmlschema – добавляет к результирующему фрагменту встроенную (inline) схему XSD.
  • elements – при указании данного ключевого слова поля результирующего XML-фрагмента формируются как XML-элементы: название поля соответствует названию элемента, а значение поля – значению элемента. Расположение элементов друг относительно друга задается порядком их следования в запросе.
  • xsinil – данное ключевое слово позволяет отображать элементы со значением NULL в форме, понятной для XML-приложений (например, <a xsi:nil="true"/>).
  • absent – ключевое слово, обозначающее старый режим работы с пустыми (содержащими NULL) элементами, при котором они просто не попадали в результирующий документ.
  • explicit – cамый сложный и гибкий вариант для создания XML-документов. В этом режиме можно формировать документы практически любой формы, однако для этого сам запрос должен быть написан по определенным правилам.
  • binary base64 – при указании данного ключевого слова двоичные данные выводятся в кодировке base64.
  • type – новое ключевое слово, обозначающее, что результирующий XML-фрагмент будет представлен XML-типом, а не строкой. Данная возможность позволяет выполнять вложенные XML-запросы.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: