The XMLNAMESPACES declaration constructs namespace declarations from the arguments.
xmlnamespaces-declaration |--XMLNAMESPACES------------------------------------------------> .-,---------------------------------------. V | >--(----+-namespace-uri--AS--namespace-prefix-+-+--)------------| | (1) | '-+-DEFAULT--namespace-uri-----+------' '-NO DEFAULT-----------------'
The schema is SYSIBM. The declaration name cannot be specified as a qualified name.
This declaration can only be used as an argument for specific functions such as XMLELEMENT, XMLFOREST and XMLTABLE. The result is one or more XML namespace declarations containing in-scope namespaces for each non-null input value.
The data type of the result is XML. The result is an XML namespace declaration for each specified namespace. The result cannot be null.
SELECT EMPNO, XMLELEMENT(
NAME "adm:employee", XMLNAMESPACES(
'http://www.adm.com' AS "adm"
),
XMLATTRIBUTES(
WORKDEPT AS "adm:department"
),
LASTNAME
)
FROM EMPLOYEE
WHERE JOB = 'ANALYST'
This query produces the
following result: 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>
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
This query produces the
following result: 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>