<game xmlns="http://my.name.space" ></game>
這是我的根元素。我已經寫了一個存儲過程來插入元素。綜上所述存儲過程,這裏的SQL無名稱空間的XQuery插入SQL2008
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;
現在,當MSSQL確實插入一個空的命名空間也被插入這樣的結果是這樣的
<move xmlns="">
<player>black</player>
<piece>king</piece>
<start>E7</start>
<end>E6</end>
</move>
現在我同時使用
嘗試WITH XMLNAMESPACES(DEFAULT 'http://my.name.space')
和
GameHistory.modify('declare default element namespace "http://my.name.space"; insert ...')
但是我最終得到了各處的前綴和每個元素的名稱空間聲明。
代碼庫中出現的問題缺乏處理MSSQL放入的前綴的邏輯。最後,我只是想將一個新元素插入到我的xml根目錄並將名稱空間留空(使用根目錄默認值?)。我都很新,但據我瞭解,如果我在根元素中有一個命名空間,是否所有的孩子節點都不應該有一個默認的根空間?
都工作100% 我發現是,雖然打破我的問題。 作爲最後進入(/遊戲)[0]應該作爲最後進入(/遊戲)[1] 不是[0]代表第一個項目的發生?就像一個基於零的數組? – Matt 2009-09-04 20:28:54
@RBarry:你爲什麼更喜歡'/ *:node'?這是否意味着'具有*任何*名稱空間的遊戲節點'? – 2009-09-04 20:41:32
馬特:不,是序數:[1]是第一個例子。 – RBarryYoung 2009-09-04 22:59:37