Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 FOR XML PATH + XMLNAMESPACES + вложенные запросы  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
Добрый день!

Выгружаю данные из БД в виде XML...понадобилось использование пространства имен, но в запросе использую вложенные запросы и пространство имен пишется не только вначале XML файла, но и каждый раз где использован вложенный запрос, подскажите, пожалуйста, как от этого избавиться?

Пример запроса:

WITH XMLNAMESPACES(
DEFAULT 'urn://act/1.0.1'
,'urn://document/1.0.1' as Doc1) 

SELECT TOP(1)
	newid()												as "@GUID"
	,'АКТ'												as "@NameSoftware"
	,'1.0'												as "@VersionSoftware"  
	,(select
	 NameDoc											as "Doc1:Name"
	,Series												as "Doc1:Series"
	,Number												as "Doc1:Number"
	,LEFT(CONVERT (VarChar(100) ,DateDoc, 121 ),10)		                                             as "Doc1:Date"	
  from dbo.Doc as D WHERE D.FK_Act=Act.PK 
  FOR XML PATH('Document'), TYPE)						                                  as "Documents"
FROM dbo.Act 
WHERE Act.PK=1
for xml path('Act')


Пример полученного XML:

<Act xmlns:Doc1="urn://document/1.0.1" xmlns="urn://act/1.0.1" GUID="CDD1EAEB-8693-449A-9CA7-C9FB8FDE878E" NameSoftware="АКТ" VersionSoftware="1.0">
  <Documents>
    <Document xmlns:Doc1="urn://document/1.0.1" xmlns="urn://act/1.0.1">
      <Doc1:Name>Справка</Doc1:Name>
      <Doc1:Number>787879</Doc1:Number>
      <Doc1:Date>2014-01-01</Doc1:Date>
    </Document>
  </Documents>
</Act>


смущает именно повторение "xmlns:Doc1="urn://document/1.0.1" xmlns="urn://act/1.0.1" в теге <Document>
7 ноя 14, 16:18    [16812976]     Ответить | Цитировать Сообщить модератору
 Re: FOR XML PATH + XMLNAMESPACES + вложенные запросы  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4901
r77,

Вот здесь обсуждали как это обойти

вопрос по for xml
7 ноя 14, 20:55    [16814232]     Ответить | Цитировать Сообщить модератору
 Re: FOR XML PATH + XMLNAMESPACES + вложенные запросы  [new]
r77
Member

Откуда: Краснодар
Сообщений: 270
Спасибо,но в моем случае не очень удобно использовать FOR XML EXPLICIT, никаких других вариантов нет?
10 ноя 14, 11:08    [16821121]     Ответить | Цитировать Сообщить модератору
 Re: FOR XML PATH + XMLNAMESPACES + вложенные запросы  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4901
r77
Спасибо,но в моем случае не очень удобно использовать FOR XML EXPLICIT, никаких других вариантов нет?


Пишите CLR, на .NET XML библиотеках таких подстановок не наблюдается.
10 ноя 14, 13:56    [16822302]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить