2012-05-07 16 views
3

私はすべてのレポートを取得し、それらを結合し、ルートでそれらをラップするストアドプロシージャを書いて、下記の構造SQL - 空白のデフォルトの名前空間

<Report id="b5d9b8da-7af4-4257-b825-b28af91dd833"> 
    <CreatedDate>04-12-2012</CreatedDate> 
    <LastUpdated>04-12-2012</LastUpdated> 
    <Reference>abc123</Reference> 
</Report> 

にデータを格納するXML列を持つ関係を持っていますレポートと呼ばれるノード私はこれまでに以下のことをしています。

これは正しい形式ですべてのレポートを返しますが、次のように空白のデフォルト名前空間がレポート要素に存在します。

<Reports xmlns="http://www.defaultnamespace.com/1.0"> 
<Report xmlns="" id="b5d9b8da-7af4-4257-b825-b28af91dd833"> 
    <CreatedDate>04-12-2012</CreatedDate> 
    <LastUpdated>04-12-2012</LastUpdated> 
    <Reference>abc123</Reference> 
</Report> 
</Reports> 

誰かがレポート要素の名前空間を除外する適切な方法を説明できますか?

すべてのヘルプは大歓迎ですみんな:)

+1

謝罪、私は何も結果を受信しないだろうしなかった場合、私は XMLNAMESPACES(DEFAULT「http://www.defaultnamespace.com/1.0」)WITH以下 を選択上記のデフォルトの名前空間を宣言しています。 .. – heymega

+0

誰もこれを前に見つけましたか? – heymega

答えて

0

あなたの問題は、カラムが「http://www.defaultnamespace.com/1.0」のデフォルトの名前空間に保存されていなかったということです。

タグの論理名はNS = ""、name = Reportです。

SQL Serverが正しかったです。あなたがやりたい何

が、途中で私が保存されているXMLデータを

を言うことです、私はあなたがタグに、論理的にすべての名前に添付「」名前空間からすべてのタグを書き換えるしたいです"http://www.defaultnamespace.com/1.0"名前空間に同じ名前の名前を付けて、デフォルトの名前空間にします。

AFAIK、あなたはそれを行うことはできませんお知らせ下さい!)。あなたが得ることができる最も近いものは、名前空間を持たないでnvarchar(max)にキャストし、その後、希望の名前空間を適用してもう一度キャストします。

+0

あなたの返事をありがとう。それは私にとって完璧な意味を持っています。空の名前空間を整理するコードを書くこともできますが、完全な名前空間だけを格納する方が論理的です。 ご回答いただきありがとうございます。 – heymega