| Каталог | Индекс раздела |
| Назад | Оглавление | Вперед |
>>-XMLFOREST--(--+------------------------------+--------------->
'-объявление-пространств-имен---,-'
.-,-------------------------------------------------.
V |
>---- выражение-значения-атрибута--+------------------+-+-------->
'-AS--имя-элемента-'
>--+-------------------------------------------------------+---->
| .-------------------------------------------. |
| V .-NULL ON NULL--. (1) | |
'-OPTION----+-+-EMPTY ON NULL-+----------------+------+-'
| .-USING-. |
| .-XMLBINARY--+-------+--BASE64-. |
| | .-USING-. | |
'-+-XMLBINARY--+-------+--HEX----+-'
>--)-----------------------------------------------------------><
Примечание:
Схема - SYSIBM. Имя функции не может задаваться как квалифицированное имя.
Функция XMLFOREST возвращает XML-значение, которое является последовательностью элементных узлов XQuery.
объявление-пространств-имен
Задает объявления пространств имен XML, которые являются результатом объявления XMLNAMESPACES. Объявляемые пространства имен находятся в области видимости функции XMLFOREST. Пространства имен применяются ко всем вложенным функциям XML внутри функции XMLFOREST, даже если они появляются внутри другого подзапроса.Если объявление-пространств-имен не задано, с конструируемыми элементами не связываются объявления пространств имен.
выражение-значения-атрибута
Содержимое генерируемого элементного узла XML задается выражением. Тип данных выражения-значения-атрибута не может быть структурированным типом. Выражение может быть любым SQL-выражением. Если выражение не является простой ссылкой на столбец, должно быть задано имя элемента.
AS имя-элемента
Задает имя элемента XML как идентификатор SQL. Имя элемента должно быть в форме квалифицированного имени XML или QName (SQLSTATE 42634). См. подробнее о допустимых именах в спецификациях пространства имен W3C. Если имя квалифицированное, в области видимости должен быть определен префикс пространства имен (SQLSTATE 42635). Если имя-элемента не задано, выражение-значения-атрибута должно быть именем столбца (SQLSTATE 42703, SQLCODE -206). Имя элемента создается отображением имени столбца на QName.
OPTION
Задает дополнительные опции для конструирования элемента XML. Если фраза OPTION не задана, по умолчанию принимается EMPTY ON NULL XMLBINARY USING BASE64. Эта фраза не влияет на вложенные вызовы XMLELEMENT, заданные в выражении-содержимого-элемента.EMPTY ON NULL или NULL ON NULL
Задает, должно возвращаться значение null или пустой элемент, если - значение каждого выражения-содержимого-элемента - значение null. Эта опция влияет только на значения null в содержимом элемента, а не в значениях атрибутов. По умолчанию принимается EMPTY ON NULL.XMLBINARY USING BASE64 или XMLBINARY USING HEXEMPTY ON NULL
Если значение каждого выражения-содержимого-элемента - null, возвращается пустой элемент.NULL ON NULLЕсли значение каждого выражения-содержимого-элемента - null, возвращается значение null.Задает подразумеваемую кодировку двоичных входных данных, символьных строк с атрибутом FOR BIT DATA или различимых типов, базирующихся на этих типах. Кодировка применяется к содержимому элемента или к значениям атрибутов. По умолчанию принимается XMLBINARY USING BASE64.XMLBINARY USING BASE64
Задает подразумеваемую кодировку base64, как определено для типа XML-схемы xs:base64Binary. Кодировка base64 использует 65-символьное подмножество US-ASCII (10 цифр, 26 символов нижнего регистра, 26 символов верхнего регистра, '+' и '/') для представления каждых шести бит двоичных или битовых данных. Эти символы выбраны так, что они универсально представимы. При использовании этого метода размер кодированных данных на 33 процента больше, чем исходных двоичных или битовых данных.XMLBINARY USING HEXЗадает подразумеваемую кодировку в 16-ричных символах, как определено для типа XML-схемы xs:hexBinary. 16-ричнвя кодировка представляет каждый байт (8 бит) двумя 16-ричными цифрами. При использовании этого метода размер кодированных данных вдвое больше, чем исходных двоичных или битовых данных.
Эта функция принимает - необязательно - коллекцию объявлений пространств имен, необязательно - коллекцию атрибутов и ноль или более аргументов, которые составляют содержимое элемента XML. Результатом является XML-последовательность, содержащая узел элемента XML или значение null.
Эта функция принимает необязательный набор объявлений пространств имен и один или более аргументов, которые составляют содержимое элемента для одного или более элементных узлов. Результатом является XML-последовательность, содержащая последовательность элементных узлов XQuery или значение null.
Тип данных результата - XML. Если любой из аргументов выражения-содержимого-элемента может быть null, результат может быть null; если все значения аргументов выражения-содержимого-элемента - null и работает опция NULL ON NULL, результат - значение null.
Функция XMLFOREST может быть выражена при помощи XMLCONCAT и XMLELEMENT. Например, следующие выражения семантически эквивалентны.
XMLFOREST(объявления-xmlnamespace, arg1 AS name1, arg2 AS name2 ...)
XMLCONCAT(
XMLELEMENT(
NAME name1, объявления-пространств-имен, arg1
),
XMLELEMENT(
NAME name2, объявления-пространств-имен, arg2
)
...
)
Примечания:
Пример:
SELECT EMPNO,
XMLFOREST(
XMLNAMESPACES (
DEFAULT 'http://hr.org', 'http://fed.gov' AS "d"
),
LASTNAME, JOB AS "d:job"
)
AS "Result"
FROM EMPLOYEE
WHERE EDLEVEL = 12
Этот запрос вырабатывает следующий результат (форматирован для читабельности):
EMPNO Result 000290 <LASTNAME xmlns="http://hr.org" xmlns:d="http://fed.gov">PARKER</LASTNAME> <d:job xmlns="http://hr.org" xmlns:d="http://fed.gov">OPERATOR</d:job> 000310 <LASTNAME xmlns="http://hr.org" xmlns:d="http://fed.gov">SETRIGHT</LASTNAME> <d:job xmlns="http://hr.org" xmlns:d="http://fed.gov">OPERATOR</d:job> 200310 <LASTNAME xmlns="http://hr.org" xmlns:d="http://fed.gov">SPRINGER</LASTNAME> <d:job xmlns="http://hr.org" xmlns:d="http://fed.gov">OPERATOR</d:job>
| Назад | Оглавление | Вперед |
| Каталог | Индекс раздела |