views:

337

answers:

1

Hi All, I would like to have a few namespaces available by default when running an XQuery in SQL Server 2005, is this possible?

For example, I would like to do the following:

select * from TableWithXML
where
FieldWithXML.exist(
declare namespace nsp="http://www.example.com/exampleNamespace";
nsp:root/nsp:childnode) = 1

Without having to redeclare the namespace each time, so that SQL will recognize nsp without me including the prolog each time.

Thoughts?

+1  A: 

The 'xml' and 'xsi' namespaces are the only pre-defined namespaces that you do not have to declare yourself. All other namespaces must be explicitally declared in every query. There are two ways to declare namespaces: 1) via the "declare" statement inside the XQuery, and 2) via the WITH XMLNAMESPACES clause on the TSQL statement.

Remy Lebeau - TeamB