Объявления функций

Объявление функции с именем имя-функции (типа QName) имеет следующий вид:

declare function имя-функции($имя-параметра-1 as тип-параметра-1, …)

as тип-возвращаемого-значения

{

тело-функции

};

Если имя функции не имеет префикса, имя функции считается заданным в пространстве имен по умолчанию. Для каждого параметра задается его имя и тип. Если ключевое слово as и тип-параметра не задан, либо не задано ключевое слово as и тип-возвращаемого-значения, по умолчанию принимается тип item()*, т.е. произвольная последовательность. После типа параметра или возвращаемого значения может следовать:

· символ "?", означающий, что данный параметр может быть задан, а может быть не задан;

· символ "*", означающий, что данный параметр может быть задан 0 и более раз;

· символ "+", означающий, что данный параметр может быть задан 1 и более раз.

В теле-функции задаются выражения (как правило, конструкторы), реализующие алгоритм функции.

Функции в XQuery могут быть рекурсивными, т.е. в теле функции может быть задан вызов самой функции.

В объявлениях функций не должно быть двух и более функций с одинаковыми расширенными именами и одинаковым количеством параметров.

Вызов функции имеет следующий вид:

имя-функции(аргумент-1, аргумент-2,…)

С помощью следующего объявления функция может быть задана как внешняя:

declare function имя-функции($имя-параметра-1 as тип-параметра-1, …)

as тип-возвращаемого-значения external;

В этом случае используется функция, заданная в импортируемом модуле. Количество параметров и их типы, а также тип возвращаемого значения для внешней и импортируемой функции должны совпадать.

Примеры объявления и использования функций приведены ниже.








Дата добавления: 2015-03-19; просмотров: 516;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.