对于 xml 显式处理命名空间
for xml explicit dealing with namespace
我正在尝试查询 explicit xml
。为此,我必须使用 namespace
。这是一个简化版本:
SELECT 1 as Tag,
NULL as Parent,
i.SSN as [SSN!1]
FROM IRS_Table as i
for xml explicit
但我希望 xml 看起来像这样:
<irs:SSN>999-99-9999</irs:SSN>
这里是开始标签中命名空间的声明:
xmlns:irs="urn:us:gov:treasury:irs:common"
如何修改脚本以便在输出命名空间中看到?
编辑
<?xml version="1.0" encoding="utf-8"?>
<n1:Form109495CTransmittalUpstream xmlns:irs="urn:us:gov:treasury:irs:common">
<irs:SSN>999-99-9999</irs:SSN>
</n1:Form109495CTransmittalUpstream>
您可以使用以下查询将命名空间包含到for xml explicit
输出中。
SELECT 1 as Tag,
NULL as Parent,
i.SSN as [irs:SSN!1],
'urn:us:gov:treasury:irs:common' as [irs:SSN!1!xmlns:irs] --namespace is here
FROM IRS_Table as i
for xml explicit
更新
使用 for xml path
构造可能更容易。
;with xmlnamespaces('urn:us:gov:treasury:irs:common' as irs,
'blahblah' as n1,
default 'blahblah:blah' )
SELECT
null as [n1:Form109495CTransmittalUpstream],
ssn as [n1:Form109495CTransmittalUpstream/irs:SSN]
FROM IRS_Table as i
for xml path(''), elements, root
我正在尝试查询 explicit xml
。为此,我必须使用 namespace
。这是一个简化版本:
SELECT 1 as Tag,
NULL as Parent,
i.SSN as [SSN!1]
FROM IRS_Table as i
for xml explicit
但我希望 xml 看起来像这样:
<irs:SSN>999-99-9999</irs:SSN>
这里是开始标签中命名空间的声明:
xmlns:irs="urn:us:gov:treasury:irs:common"
如何修改脚本以便在输出命名空间中看到?
编辑
<?xml version="1.0" encoding="utf-8"?>
<n1:Form109495CTransmittalUpstream xmlns:irs="urn:us:gov:treasury:irs:common">
<irs:SSN>999-99-9999</irs:SSN>
</n1:Form109495CTransmittalUpstream>
您可以使用以下查询将命名空间包含到for xml explicit
输出中。
SELECT 1 as Tag,
NULL as Parent,
i.SSN as [irs:SSN!1],
'urn:us:gov:treasury:irs:common' as [irs:SSN!1!xmlns:irs] --namespace is here
FROM IRS_Table as i
for xml explicit
更新
使用 for xml path
构造可能更容易。
;with xmlnamespaces('urn:us:gov:treasury:irs:common' as irs,
'blahblah' as n1,
default 'blahblah:blah' )
SELECT
null as [n1:Form109495CTransmittalUpstream],
ssn as [n1:Form109495CTransmittalUpstream/irs:SSN]
FROM IRS_Table as i
for xml path(''), elements, root