SQL Server2008 FOR XML句を使用して、bcpを使用してXMLファイルを生成しています。
以下のクエリを使用すると、結果は正常です。
WITH XMLNAMESPACES (
'http://base.google.com/ns/1.0' AS g,
DEFAULT 'http://www.w3.org/2005/Atom'
)
select ID, Name AS "g:Name" from PaymentMethods For XML PATH ('entry'), Root('feed')
結果:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<entry>
<ID>1</ID>
<g:Name>BPay</g:Name>
</entry>
<entry>
<ID>2</ID>
<g:Name>Cash</g:Name>
</entry>
</feed>
ただし、ルートの後にタイトルや日付などの静的要素も追加したいと思います。私はそれを行うことができますが、そうすると、名前空間タグが要素にも表示されますが、これは不要です。名前空間の接頭辞が付いた要素が必要なことに注意してください。
これに使用しているクエリは次のとおりです。
WITH XMLNAMESPACES (
'http://base.google.com/ns/1.0' AS g,
DEFAULT 'http://www.w3.org/2005/Atom'
)
SELECT
'Google Feed' As Title,
CONVERT(Date, getdate()) As Updated,
(
select ID, Name AS "g:Name" from PaymentMethods For XML PATH ('entry'), TYPE
)
FOR XML PATH(''), Root('feed')
そして、私が得る結果は次のとおりです。
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<Title>Google Feed</Title>
<Updated>2012-06-27</Updated>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<ID>1</ID>
<g:Name>BPay</g:Name>
</entry>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<ID>2</ID>
<g:Name>Cash</g:Name>
</entry>
</feed>
私は次のような結果が必要ですが:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<Title>Google Feed</Title>
<Updated>2012-06-27</Updated>
<entry>
<ID>1</ID>
<g:Name>BPay</g:Name>
</entry>
<entry>
<ID>2</ID>
<g:Name>Cash</g:Name>
</entry>
</feed>
助けてください...
ありがとう、
PS