我正在尝试使用 T-SQL 生成一个 XML 文件,该文件在根节点中具有默认命名空间,但在子节点中没有定义命名空间。
DECLARE @xmlData XML
DECLARE @xmlInner XML
SELECT @xmlInner =
(
SELECT * FROM dbo.GH_DATA_BS_EVLTN_MNTH_ANL [r]
FOR XML PATH('r'), TYPE
)
;WITH XMLNAMESPACES (DEFAULT 'http://www.testnamespace.com')
SELECT @xmlData =
(
SELECT '2012-10-25T14:13:00Z' as "@DataFeedDate",@xmlInner
FOR XML PATH('root')
)
SELECT @xmlData
上面的脚本生成以下 XML 文件
<root xmlns="http://www.testnamespace.com" DataFeedDate="2012-10-25T14:13:00Z">
<r xmlns="">
<RPRT_DT_CD>2012-10-25T14:15:00-05:00</RPRT_DT_CD>
<RPRT_MO_CD>2013-01</RPRT_MO_CD>
<RPRT_EV_CD>1</RPRT_EV_CD>
</r>
</root>
问题是标签包含空白命名空间 xmlns="" 但预期的结果是简单地获得没有定义命名空间。