Question

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?

Was it helpful?

Solution

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.
  2. via the WITH XMLNAMESPACES clause on the TSQL statement.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top