複数の名前空間を含む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
私のクエリは、現在のところ名前空間が1つしかないように見えます。
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名前空間を追加しようとすると、何も動作しないようです。これはどのようにしなければならないのですか? ありがとうございます!
がWITH XMLNAMESPACES ('http://Something/A' as ns3,
'http://Something/B' as ns2,
'http://Something/C' as ns1)
SELECT COLUMN1 as 'ns1:A1',
COLUMN2 as 'ns2:A1',
COLUMN3 as 'ns3:A1'
FROM MYTABLE
FOR XML PATH ('ns1:A'), ROOT('ns1:Message'), ELEMENTS
要素名「A1」が複数回になりますが、 - による名前空間に:
おかげで、これは私のために働きました。名前空間についての私の認識はあまり正しくないと思います。グループの入れ子が私のために働いた。 XMLは、他の会社によって設計されたもので、この種の設計の理由は考えられていません。 – Carlo