<game xmlns="http://my.name.space" ></game>
これはルート要素です。私はそれに要素を挿入するストアドプロシージャを記述しました。結果は、今私は両方名前空間のないXQuery挿入SQL2008
を使用してみました。この<move xmlns="">
<player>black</player>
<piece>king</piece>
<start>E7</start>
<end>E6</end>
</move>
あるので、MSSQLは、インサートは、空の名前空間にも挿入されないときに、ストアドプロシージャを要約すると、ここではSQL
UPDATE ChessGame SET GameHistory.modify('insert <move><player>black</player><piece>pawn</piece><start>E7</start><end>E6</end></move> as last into (/game)[0]') WHERE Id = @GameId;
は今です
WITH XMLNAMESPACES(DEFAULT 'http://my.name.space')
と
GameHistory.modify('declare default element namespace "http://my.name.space"; insert ...')
しかし、私はすべての接頭辞と各要素の名前空間宣言で終わる。
MSSQLが置くプレフィックスを処理するロジックがないコードライブラリで問題が発生します。最後に、xmlルートに新しい要素を挿入し、名前空間を空白のままにします(ルートデフォルトを使用しますか?)。私はすべてこれに非常に新しいですが、私はそれを理解すると、私は私のルート要素に名前空間がある場合、すべての子ノードは私のルートのデフォルトの名前空間を持っていないはずですか?
投稿の両方が私も地雷を破壊されている問題を発見し、100% を働きます。 最後に(/ game)[0]は最後にする必要があります(/ game)[1] [0]は最初のアイテムの出現を表していませんか?ゼロベースの配列とほとんど同じですか? – Matt
@RBarry:なぜあなたは '/ *:node'を好むのですか? * '*任意の*名前空間を持つゲームノード'を意味しますか? –
マット:いいえ、序数:[1]が最初のインスタンスです。 – RBarryYoung