3
我尝试使用必须包含多个名称空间的sqlserver创建XML。 XML应该看起来像这样:如何在sqlserver查询中添加多个名称空间来创建XML
<ns1:Message xmlns:ns1="http://Something/A"
xmlns:ns2="http://Something/B"
xmlns:ns3="http://Something/C">
<ns1:A>
<ns1:A1>201608111003201</ns1:A1>
<ns1:A2>Some text</ns1:A2>
<ns1:A3>More text</ns1:A3>
</ns1:A>
<ns2:B>
<ns2:B1>123456788</ns2:B1>
<ns2:B2>Even more text</B2>
</ns2:B>
<ns3:C>
<ns3:C1>E232323</ns3:C1>
<ns3:C2>P</ns3:C2>
</ns3:C>
</ns1:Message
我的查询看起来像现在只有一个名称空间。
WITH XMLNAMESPACES ('http://Something/A' as ns3,
'http://Something/B' as ns2,
'http://Something/C' as ns1)
SELECT COLUMN1 as 'ns1:A1',
COLUMN2 as 'ns1:A2',
COLUMN3 as 'ns1:A3'
FROM MYTABLE
FOR XML PATH ('ns1:A'), ROOT('ns1:Message'), ELEMENTS
此查询工作正常,但是当我尝试在查询中添加ns2或ns3命名空间似乎没有任何工作。如何做到这一点。 在此先感谢!
感谢这为我工作。我认为我对命名空间的看法并不完全正确。小组的嵌套为我工作。 XML由其他公司设计,不知道这种设计的原因。 – Carlo