WITH XMLNAMESPACES (Transact-SQL)

Declares one or more XML namespaces.

Topic link iconTransact-SQL Syntax Conventions

Syntax

WITHXMLNAMESPACES( <XML namespace declaration item>
[ { , <XML namespace declaration item> }...] )<XML namespace declaration item> ::=
<xml_namespace_uri> AS <xml_namespace_prefix>
| <XML default namespace declaration item>
<xml_namespace_uri> ::= <character string literal>

<xml_namespace_prefix> ::= <identifier>

<XML default namespace declaration item> ::=DEFAULT <xml_namespace_uri>

Arguments

  • xml_namespace_uri
    A Uniform Resource Identifier (URI) that identifies the XML namespace that is being declared. xml_namespace_uri is an SQL string.

  • xml_namespace_prefix
    Specifies a prefix to be mapped and associated with the namespace URI value specified in xml_namespace_uri. xml_namespace_prefix must be a SQL Server identifier.

Remarks

When you use the WITH XMLNAMESPACES clause in a statement that also includes a common table expression, the WITH XMLNAMESPACES clause must precede the common table expression in the statement.

The following are general syntax rules that apply when you use the WITH XMLNAMESPACES clause:

  • Each XML namespace declaration must contain at least one XML default namespace declaration item.

  • Each XML namespace prefix used must be a non-colonized name (NCName) in which the colon character (:) is not part of the name.

  • You cannot define a namespace prefix two times.

  • XML namespace prefixes and URIs are case-sensitive.

  • The XML namespace prefix xmlns cannot be declared.

  • The XML namespace prefix xml cannot be overridden with a namespace, other than the namespaces URI 'http://www.w3.org/XML/1998/namespace', and this URI that cannot be assigned a different prefix.

  • The XML namespace prefix xsi cannot be redeclared when the ELEMENTS XSINIL directive is being used on the query.

  • URI string values are encoded according to the current database collation code page and are internally translated to Unicode.

  • The XML namespace URI will be white-space collapsed following the XSD white-space collapse rules that are used for xs:anyURI. Also, note that no entitization or deentitization are performed on XML namespace URI values.

  • The XML namespace URI will be checked for XML 1.0 characters that are not valid, and an error will be raised if one is found (such as, U+0007).

  • The XML namespace URI (after all white space is collapsed) cannot be a zero-length string or an "invalid empty namespace URI" error occurs.

  • The XMLNAMESPACES keyword is reserved in the context of the WITH clause.

Examples

For examples, see Adding Namespaces Using WITH XMLNAMESPACES.