2012-06-18 2 views
1

Я создал Select ... FOR XML PATH с помощью SQL Server 2005 и вам нужно добавить несколько пространств имен и ссылки схемы на корневой узел.Как добавить пространства имен в корневой узел в SQL Server 2005 с использованием XML FOR PATH

xsi:schemaLocation="http://somewhere/v1/ schemaname.xsd" 
xmlns="http://somewhere/v1/" 
xmlns:lom="http://somewhere/lom/v1/" 
xmlns:a="http://somewhere/a/v1/" 
xmlns:cf="http://somewhere/cf/v1/" 
xmlns:co="http://somewhere/co/v1/" 
xmlns:hx="http://somewhere/hx/v1/" 
xmlns:m="http://somewhere/m/v1/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

Любые указатели были бы весьма благодарны.

Спасибо.

ответ

4

Вы могли бы попробовать что-то вроде этого:

with xmlnamespaces 
    (
    default 'http://somewhere/v1/', 
    'http://somewhere/lom/v1/' as lom, 
    'http://somewhere/a/v1/' as a, 
    'http://somewhere/cf/v1/' as cf, 
    'http://somewhere/co/v1/' as co, 
    'http://somewhere/hx/v1/' as hx, 
    'http://somewhere/m/v1/' as m, 
    'http://www.w3.org/2001/XMLSchema-instance' as xsi 
) 
select 'http://somewhere/v1/ schemaname.xsd' as "@xsi:schemaLocation" 

for xml path('element') 

Результат:

<element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:m="http://somewhere/m/v1/" 
     xmlns:hx="http://somewhere/hx/v1/" 
     xmlns:co="http://somewhere/co/v1/" 
     xmlns:cf="http://somewhere/cf/v1/" 
     xmlns:a="http://somewhere/a/v1/" 
     xmlns:lom="http://somewhere/lom/v1/" 
     xmlns="http://somewhere/v1/" 
     xsi:schemaLocation="http://somewhere/v1/ schemaname.xsd" />