КаталогИндекс раздела
НазадОглавлениеВперед


Скалярная функция XMLELEMENT

 
>>-XMLELEMENT--(--NAME--имя-элемента---------------------------->
 
>--+-------------------------------------+---------------------->
   '-,--объявление-пространства имен-xml-'
 
>--+--------------------------+--------------------------------->
   '-,--функция-XMLATTRIBUTES-'
 
>--+---------------------------------------+-------------------->
   | .-----------------------------------. |
   | V                                   | |
   '---,--выражение-содержимого-элемента-+-'
 
>--+------------------------------------------------------------+-->
   |              .-------------------------------------------. |
   |        (1)   V   .-EMPTY ON NULL-. (2)              (3)  | |
   '-OPTION---------+-+-NULL ON NULL--+----------------+------+-'
                    |              .-USING-.           |
                    | .-XMLBINARY--+-------+--BASE64-. |
                    | |            .-USING-.         | |
                    '-+-XMLBINARY--+-------+--HEX----+-'
 
>--)-----------------------------------------------------------><

Примечания:

  1. Фраза OPTION может задаваться только, если задано не менее одной функции-XMLATTRIBUTES или выражения-содержимого-элемента.
  2. NULL ON NULL или EMPTY ON NULL может задаваться только, если задано не менее одного выражения-содержимого-элемента.
  3. Одна и та же фраза не должна задаваться более одного раза.

Схема - SYSIBM. Имя функции не может быть задано как квалифицированное имя.

Функция XMLELEMENT Возвращает XML-значение, которое является элементным узлом XQuery.

NAME имя-элемента

Задает имя элемента XML. Имя является идентификатором SQL, который должен быть в форме квалифицированного имени XML или QName (SQLSTATE 42634). См. подробнее о допустимых именах в спецификациях пространства имен W3C. Если имя квалифицировано, то префикс пространства имен должен быть объявлен в области видимости (SQLSTATE 42635).

объявление-пространства имен-xml

Задает объявления пространств имен XML, которые являются результатом функции XMLNAMESPACES. Пространства имен, которые объявлены, находятся в области видимости функции XMLELEMENT. Пространства имен применяются ко всем вложенным функциям XML внутри функции XMLELEMENT, даже если они появляются внутри другого подзапроса.

Если объявление-пространства имен-xml не задано, объявления пространств имен с конструируемым элементом не связываются.

функция-XMLATTRIBUTES

Задает атрибуты XML для элемента. Атрибуты являются результатом функции XMLATTRIBUTES.

выражение-содержимого-элемента

Содержимое генерируемого элементного узла XML задается выражением или списком выраженией. Тип данных выражения-содержимого-элемента не может быть структурированным. Выражение может быть любым SQL-выражением.

Если выражение-содержимого-элемента не задается, в качестве содержимого элемента используется пустая строка и OPTION NULL ON NULL или EMPTY ON NULL не должны задаваться.

OPTION
Задает дополнительные опции для конструирования элемента XML. Если фраза OPTION не задана, по умолчанию принимается EMPTY ON NULL XMLBINARY USING BASE64. Эта фраза не влияет на вложенные вызовы XMLELEMENT, заданные в выражении-содержимого-элемента.

EMPTY ON NULL или NULL ON NULL

Задает, должно возвращаться значение null или пустой элемент, если - значение каждого выражения-содержимого-элемента - значение null. Эта опция влияет только на значения null в содержимом элемента, а не в значениях атрибутов. По умолчанию принимается EMPTY ON NULL.

EMPTY ON NULL

Если значение каждого выражения-содержимого-элемента - null, возвращается пустой элемент.

NULL ON NULL

Если значение каждого выражения-содержимого-элемента - null, возвращается значение null.

XMLBINARY USING BASE64 или XMLBINARY USING HEX

Задает подразумеваемую кодировку двоичных входных данных, символьных строк с атрибутом 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. Если любой из аргументов выражения-содержимого-элемента может быть null, результат может быть null; если все значения аргументов выражения-содержимого-элемента - null и работает опция NULL ON NULL, результат - значение null.

Примечания:

  1. Поддержка в базах данных не-Unicode и базах данных с многими разделами: Функция поддерживается только как в версии 8. Результат на внешнем уровне вложений функций с XML-значением должен быть аргументом функции XMLSERIALIZE. Опции обработки null и двоичного кодирования задаваться не могут (SQLSTATE 42997). BLOB и данные символьной строки, определенные как FOR BIT DATA задаваться не могут (SQLSTATE 42884).
  2. Конструирование элементного узла: Результирующий элементный узел конструируется следующим образом:
  3. Правила для использования пространств имен внутри XMLELEMENT: Следующие правила относятся к области видимости пространств имен:

Примеры:


НазадОглавлениеВперед
КаталогИндекс раздела