Xquery (SQL server 2005/2008) außer / äußere Verknüpfung?

Ich verwende SQL server 2005/2008 xml / xquery. Ich habe die folgenden xml und ich möchte alle Elemente in <all> außer diesen in <except> .

 declare @x xml = ' <except> <x>1</x> <x>4</x> </except> <all> <x>1</x> <x>2</x> <x>3</x> <x>4</x> </all>' select @x.query('for $x in /all return $x') -- How to except the elements in <except>? 

Erwartetes Ergebnis: <x>2</x><x>3</x> .

Ich habe versucht und eine Lösung gefunden. Es ist ok?

 select @x.query('let $e := /all/x[not(. = /except/x)] return $e')