繁体   English   中英

使用带有子命名空间的 SQL Server 生成 xml

[英]Generating xml with SQL Server with child namespace

我正在使用 SQL Server 生成 XML,我需要以下名称空间:

xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" ns0:noNamespaceSchemaLocation="http://myLink2Schema.xsd"

我正在尝试使用以下代码生成它:

WITH XMLNAMESPACES( 

 'http://www.w3.org/2001/XMLSchema-instance' as ns0
 ,'http://myLink2Schema.xsd' as noNamespaceSchemaLocation
)

但我得到的结果是:

xmlns:noNamespaceSchemaLocation="http://myLink2Schema.xsd" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance"

如果我尝试这样写它是行不通的:

WITH XMLNAMESPACES( 

 'http://www.w3.org/2001/XMLSchema-instance' as ns0
 ,'http://myLink2Schema.xsd' as ns0:noNamespaceSchemaLocation
)

就像 noNamespaceSchemaLocation 需要是 ns0 的子级。

我知道我可以将 XML 视为字符串并在生成后对其进行操作,但我宁愿以正确的方式进行操作。

在您指定为“需要”的内容中, ns0:noNamespaceSchemaLocation="http://myLink2Schema.xsd"不是命名空间定义,而是ns0命名空间前缀中的属性。 您将其作为 SQL 查询的一部分输出,例如:

with xmlnamespaces (
'http://www.w3.org/2001/XMLSchema-instance' as ns0
)
select
    'http://myLink2Schema.xsd' as [@ns0:noNamespaceSchemaLocation],
    1 as World
for xml path('Hello');

哪个输出:

<Hello xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" ns0:noNamespaceSchemaLocation="http://myLink2Schema.xsd">
  <World>1</World>
</Hello>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM