Реферат: Использование XML совместно с SQL

Выражение attribute::totalposts означает, что для поля totalposts будет использоваться значение одноименного атрибута. Гораздо чаще в XPath-выражениях используется сокращенная запись:

«attribute::» можно заменить символом @;

«self::node()» можно заменить на точку (.);

«parent::node()» можно заменить на две точки (..).

Другие сокращения можно найти в спецификации XPath.

Давайте рассмотрим более сложный пример: выберем название форума, модератора и дату создания статистики для всех форумов, у которых больше 6000 сообщений.

exec sp_xml_preparedocument @hdoc out, @_xmlbody

select

forum as 'Форум',

case when moders is null

then 'нет'

else moders

end as 'Модератор',

[date] as 'Датасоздания'

from openxml(@hdoc,'/rsdn/forums/forum[attribute::totalposts > "6000"]') with

(

moders varchar(50) 'moderators/moderator/attribute::name',

forum varchar(50) 'attribute::name',

[date] varchar(50) 'parent::node()/attribute::date'

)

exec sp_xml_removedocument @hdoc

Часть запроса, использующую XPath, можно переписать в сокращенной форме :

openxml(@hdoc,'/rsdn/forums/forum[@totalposts > "6000"]') with

(

moders varchar(50) 'moderators/moderator/@name',

forum varchar(50) '@name',

[date] varchar(50) '../@date'

)

Везде далее я буду пользоваться сокращенной записью.

К-во Просмотров: 533
Бесплатно скачать Реферат: Использование XML совместно с SQL