我正在编写一段sql代码来生成xml。这是我的代码:
DECLARE @inner xml = '<inner>test</inner>';
WITH XMLNAMESPACES (
DEFAULT 'urn:www.agxml.org:schemas:all:4:0',
'http://www.w3.org/2001/XMLSchema-instance' AS xsi,
'http://www.w3.org/2001/XMLSchema' AS xsd
)
SELECT
@inner
FOR XML PATH('root'), TYPE
这就是我得到的(为了可读性而添加换行符):
<root
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:www.agxml.org:schemas:all:4:0"
>
<inner xmlns="">test</inner>
</root>
您可以看到
<inner xmlns="">test</inner>
有一个额外的xmlns=""
。
我尝试将其删除,但做不到。有没有办法只将 xmlns 添加到根目录?
我正在使用 ms sql server。
谢谢你,
您使用的方法似乎有点“奇怪”,只需在一个语句中定义它即可:
WITH XMLNAMESPACES (
DEFAULT 'urn:www.agxml.org:schemas:all:4:0',
'http://www.w3.org/2001/XMLSchema-instance' AS xsi,
'http://www.w3.org/2001/XMLSchema' AS xsd
)
SELECT 'test' as [inner]
FOR XML PATH('root'), TYPE;