WITH XMLNAMESPACES

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Declara uno o varios espacios de nombres XML.

Convenciones de sintaxis de Transact-SQL

Sintaxis

  
WITH XMLNAMESPACES ( <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>  
  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

xml_namespace_uri
Identificador uniforme de recursos (URI) que identifica el espacio de nombres XML que se va a declarar. xml_namespace_uri es una cadena de SQL.

xml_namespace_prefix
Especifica un prefijo que se va a asignar y asociar al valor URI del espacio de nombres especificado en xml_namespace_uri. xml_namespace_prefix debe ser un identificador de SQL Server.

Observaciones

Al utilizar la cláusula WITH XMLNAMESPACES en una instrucción que también incluye una expresión de tabla común, la cláusula WITH XMLNAMESPACES debe preceder a la expresión de tabla común en la instrucción.

Estas son las reglas generales de sintaxis que se aplican cuando se usa la cláusula WITH XMLNAMESPACES:

  • Cada declaración de espacio de nombres XML debe contener al menos un elemento de declaración de espacio de nombres XML predeterminado.

  • Cada prefijo de espacio de nombres XML utilizado debe ser un nombre no colonizado (NCName) y que el carácter de dos puntos (:) no forme parte del nombre.

  • No se puede definir un prefijo de espacio de nombres dos veces.

  • Los prefijos del espacio de nombres XML y los URI distinguen entre mayúsculas y minúsculas.

  • No se puede declarar el prefijo del espacio de nombres XML xmlns .

  • No se puede reemplazar el prefijo del espacio de nombres xml con un espacio de nombres distinto del URI de los espacios de nombres 'http://www.w3.org/XML/1998/namespace' y este URI no se puede asignar a diferentes prefijos.

  • No se puede volver a declarar el prefijo del espacio de nombres XML xsi cuando se va a utilizar la directiva ELEMENTS XSINIL en la consulta.

  • No es necesario declarar "http://www.w3.org/2001/XMLSchema-instance" para usar el espacio de nombres estándar de xsi. Se agrega de forma implícita mediante el procesador de XML/XPATH si no se especifica y las expresiones de XPath pueden usar el prefijo xsi siempre que se declare correctamente el esquema "http://www.w3.org/2001/XMLSchema-instance" en el documento XML.

  • Los valores de la cadena del URI se codifican según la página de códigos de la intercalación de la base de datos actual y se traducen internamente a Unicode.

  • Se eliminarán los espacios en blanco del URI del espacio de nombres XML siguiendo las reglas de eliminación de espacios en blanco de XSD que se usan para xs:anyURI. Además, tenga en cuenta que no se definirán entidades ni se eliminarán entidades en los valores de URI del espacio de nombres XML.

  • Se comprobará el URI del espacio de nombres XML para buscar caracteres XML 1.0 no válidos y se generará un error si se encuentran (por ejemplo, U+0007).

  • El URI del espacio de nombres XML (después de eliminar los espacios en blanco) no puede ser una cadena de longitud cero o se producirá un error de URI de espacio de nombres vacío no válido.

  • La palabra clave XMLNAMESPACES está reservada en el contexto de la cláusula WITH.

Ejemplos

Para obtener ejemplos, vea Agregar espacios de nombres a consultas con WITH XMLNAMESPACES.

Consulte también

Referencia del lenguaje XQuery (SQL Server)