Declaración XMLNAMESPACES

La declaración XMLNAMESPACES construye las declaraciones de espacios de nombres a partir de los argumentos.

xmlnamespaces-declaration
Read syntax diagramSkip visual syntax diagramXMLNAMESPACES( ,namespace-uriASnamespace-prefixDEFAULTnamespace-uri1NO DEFAULT )
Notes:
  • 1 DEFAULT or NO DEFAULT can only be specified once in arguments of XMLNAMESPACES.

El esquema es SYSIBM. El nombre de la declaración no puede especificarse como un nombre calificado.

Esta declaración únicamente puede emplearse como argumento de funciones específicas como XMLELEMENT, XMLFOREST y XMLTABLE. El resultado es una o varias declaraciones de espacios de nombres XML que contienen espacios de nombres con ámbito para cada uno de los valores de entrada no nulos.

uri-espacio-nombres
Especifica el identificador de recursos universal (URI) de espacio de nombres como una constante de serie de caracteres de SQL. Esta constante de serie de caracteres no puede estar vacía si se utiliza con un prefijo-espacio-nombres (SQLSTATE 42815).
prefijo-espacio-nombres
Especifica un prefijo de espacio de nombres. El prefijo es un identificador de SQL que debe tener el formato de un nombre XML NCName (SQLSTATE 42634). Consulte las especificaciones de espacio de nombres XMLW3C para obtener más detalles sobre los nombres válidos. El prefijo no puede ser xml ni xmlns y el prefijo debe ser exclusivo dentro de la lista de declaraciones de espacios de nombres (SQLSTATE 42635).
DEFAULT uri-espacio-nombres
Especifica el espacio de nombres por omisión que debe utilizarse en el ámbito de esta declaración de espacio de nombres. El uri-espacio-nombres es válido para los nombres no calificados del ámbito salvo que otra declaración DEFAULT o una declaración NO DEFAULT altere temporalmente este valor en un ámbito anidado.
NO DEFAULT
Especifica que no se utilizará ningún espacio de nombres por omisión en el ámbito de esta declaración de espacio de nombres. No existe ningún espacio de nombres por omisión en el ámbito salvo que una declaración DEFAULT altere temporalmente este valor en un ámbito anidado.

El tipo de datos del resultado es XML. El resultado es una declaración de espacio de nombres XML para cada uno de los espacios de nombres indicados. El resultado no puede ser nulo.

ejemplos

Nota: XMLNAMESPACES no inserta espacios en blanco ni caracteres de nueva línea en la salida. Todas las salidas de los ejemplos se han formateado para mejorar la legibilidad.
  • Ejemplo 1: Genere un elemento XML denominado adm:employee y un atributo XML adm:department, ambos asociados con un espacio de nombres cuyo prefijo es adm.
       SELECT EMPNO, XMLELEMENT(
         NAME "adm:employee", XMLNAMESPACES(
           'http://www.adm.com' AS "adm"
         ),
         XMLATTRIBUTES(
           WORKDEPT AS "adm:department"
         ),
       LASTNAME
       )
       FROM EMPLOYEE
       WHERE JOB = 'ANALYST'
    Esta consulta genera el resultado siguiente:
    000130 <adm:employee xmlns:adm="http://www.adm.com" adm:department="C01">
      QUINTANA</adm:employee>
    000140 <adm:employee xmlns:adm="http://www.adm.com" adm:department="C01">
      NICHOLLS</adm:employee> 
    200140 <adm:employee xmlns:adm="http://www.adm.com" adm:department="C01">
      NATZ</adm:employee>
  • Ejemplo 2: Genere un elemento XML denominado 'employee' asociado con un espacio de nombres por omisión y un subelemento denominado 'job' que no utilice un espacio de nombres por omisión y cuyo subelemento 'department' utilice un espacio de nombres por omisión.
       SELECT EMP.EMPNO, XMLELEMENT(
         NAME "employee", XMLNAMESPACES(
           DEFAULT 'http://hr.org'
         ),
         EMP.LASTNAME, XMLELEMENT(
           NAME "job", XMLNAMESPACES(
             NO DEFAULT
           ),
           EMP.JOB, XMLELEMENT(
             NAME "department", XMLNAMESPACES(
               DEFAULT 'http://adm.org'
             ),
             EMP.WORKDEPT
           )
         )
       )
       FROM EMPLOYEE EMP
       WHERE EMP.EDLEVEL = 12
    Esta consulta genera el resultado siguiente:
    000290 <employee xmlns="http://hr.org">PARKER<job xmlns="">OPERATOR
      <department xmlns="http://adm.org">E11</department></job></employee>
    000310 <employee xmlns="http://hr.org">SETRIGHT<job xmlns="">OPERATOR
      <department xmlns="http://adm.org">E11</department></job></employee>
    200310 <employee xmlns="http://hr.org">SPRINGER<job xmlns="">OPERATOR
      <department xmlns="http://adm.org">E11</department></job></employee>