<game xmlns="http://my.name.space" ></game>
To jest mój główny element. Napisałem procedurę przechowywaną, aby wstawić do niej elementy. Podsumowując procedurę przechowywaną, oto SQLXQuery Wstaw bez przestrzeni nazw 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;
Teraz kiedy MSSQL ma wkładkę pusta przestrzeń nazw jest także wstawiony więc wynik jest ten
<move xmlns="">
<player>black</player>
<piece>king</piece>
<start>E7</start>
<end>E6</end>
</move>
Teraz Próbowałem przy użyciu zarówno
WITH XMLNAMESPACES(DEFAULT 'http://my.name.space')
i
GameHistory.modify('declare default element namespace "http://my.name.space"; insert ...')
Ale kończę z prefiksami wszędzie i deklaracją przestrzeni nazw dla każdego elementu.
Problemy pojawiają się w bibliotekach kodu, które nie mają logiki, aby obsłużyć prefiksy, które wprowadza MSSQL. Na koniec chcę tylko wstawić nowy element do mojego xml root i pozostawić pustą przestrzeń nazw (użyj domyślnego katalogu głównego?). Jestem bardzo nowy w tym, ale jak rozumiem, jeśli mam obszar nazw w moim głównym elementem, czy nie wszystkie childnodes mają domyślny obszar nazw mojego katalogu głównego?
Zarówno swoich stanowisk pracy 100% znalazłem problem, który łamie kopalni chociaż. jako ostatnia do (/ gra) [0] powinna być ostatnia do (/ gra) [1] Czy [0] nie reprezentuje pierwszego wystąpienia? Podobnie jak w przypadku tablicy zerowej? – Matt
@RBarry: dlaczego wolisz '/ *: node'? Czy to oznacza "węzeł gry z * dowolną * przestrzenią nazw"? –
Matt: Nie, jest porządkowa: [1] jest pierwszą instancją. – RBarryYoung