Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы 2 / лаб_раб_3 / Лаб раб 7 XML и MS SQL Server 2011 12 04.doc
Скачиваний:
40
Добавлен:
26.04.2015
Размер:
1.2 Mб
Скачать

Режим запроса explicit

В режиме EXPLICIT используется другой подход к формированию структуры XML документа, основанный на применении универсальной таблицы. Универсальная таблица является табличным представлением документа XML. Каждая строка универсальной таблицы содержит данные, которые будут представлены в итоговом документе XML в виде элемента.

Первые два столбца универсальной таблицы определяют положение элемента, содержащего данные этой строки, в иерархии итогового документа XML:

  • Тег. Числовое значение, которое уникальным образом определяет тег элемента, содержащего данные строки.

  • Родитель. Числовое значение, которое указывает родительский тег для данного элемента.

Каждый XML-тег в итоговом документе, который сопоставляется таблице или представлению базы данных, должен быть представлен отдельным значением Тег в универсальной таблице. Значение Родитель определяет положение тега в иерархии итогового документа. Для тегов на верхнем уровне фрагмента XML (для которых отсутствует родительский элемент) значение родительского тега равно NULL.

16. Пример извлечения данных из реляционной таблицы и преобразования к XML:

use AdventureWorksLT

select 1 as Tag, Null as Parent,

b.Name as [product!1!Category],

a.Name as [product!1!Name],

a.ProductNumber as [product!1!Number]

FROM

SalesLT.Product a inner join SalesLT.ProductCategory b ON

a.ProductCategoryID=b.ProductCategoryID

FOR XML EXPLICIT

Результат:

<product Category="Mountain Bikes" Name="Mountain-100 Silver, 38" Number="BK-M82S-38" />

<product Category="Mountain Bikes" Name="Mountain-100 Silver, 42" Number="BK-M82S-42" />

<product Category="Mountain Bikes" Name="Mountain-100 Silver, 44" Number="BK-M82S-44" />

<product Category="Mountain Bikes" Name="Mountain-100 Silver, 48" Number="BK-M82S-48" />

<product Category="Mountain Bikes" Name="Mountain-100 Black, 38" Number="BK-M82B-38" />

<product Category="Mountain Bikes" Name="Mountain-100 Black, 42" Number="BK-M82B-42" />

<product Category="Mountain Bikes" Name="Mountain-100 Black, 44" Number="BK-M82B-44" />

<product Category="Mountain Bikes" Name="Mountain-100 Black, 48" Number="BK-M82B-48" />

<product Category="Mountain Bikes" Name="Mountain-200 Silver, 38" Number="BK-M68S-38" />

Режим запроса path

В режиме PATH создаются XML- данные в пользовательском формате с использованием синтаксиса под названием XPath для сопоставления значений атрибутам, элементам, дочерним элементам, текстовым узлам и значениям данных. Возможность сопоставлять реляционные столбцы XML-узлам позволяет создавать сложные документы XML без необходимости создавать сложные запросы в режиме EXPLICIT.

17. Пример извлечения данных из реляционной таблицы и преобразования к XML:

use AdventureWorksLT

select b.Name "@Name_Categorya",

a.Name "product/Name",

a.ProductNumber "product/Number"

FROM

SalesLT.Product a inner join SalesLT.ProductCategory b ON

a.ProductCategoryID=b.ProductCategoryID

FOR XML PATH

Результат:

<row Name_Categorya="Mountain Bikes">

<product>

<Name>Mountain-100 Silver, 38</Name>

<Number>BK-M82S-38</Number>

</product>

</row>

<row Name_Categorya="Mountain Bikes">

<product>

<Name>Mountain-100 Silver, 42</Name>

<Number>BK-M82S-42</Number>

</product>

</row>