Latest web development tutorials

Функции XQuery

XQuery 1.0, XPath 2.0 и XSLT 2.0 одни и те же библиотеки.


Функции XQuery

XQuery содержит более 100 встроенных функций. Эти функции могут быть использованы для строковых значений, числовой, дата и время сравнения, узел и манипуляции QName, манипуляции последовательности, булевых значений, и так далее. Вы также можете определить свои собственные функции в XQuery.


XQuery встроенные функции

XQuery функция пространства имен URI:

http://www.w3.org/2005/02/xpath-functions

префикс пространства имен Функция по умолчанию Fn:.

Подсказка: вызвать префикс, например, Fn :: функция часто через Fn строки (). Однако, так как Fn: это по умолчанию префикс пространства имен, имена функций не должны использовать префикс при вызове.

Вы можете найти полный "в нашем учебнике XPath встроенные функции XQuery Reference Manual " .


Примеры вызовов функций

Функциональные вызовы могут быть использованы с выражением. Рассмотрим следующий пример:

Пример 1: Элемент

<name>{upper-case($booktitle)}</name>

Пример 2: В выражении пути в предиката

doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']

Пример 3: пусть заявление

let $name := (substring($booktitle,1,4))


Функции, определяемые пользователем XQuery

Если вы не можете найти нужную функцию XQuery, вы можете написать свои собственные функции.

Или пользователи могут определять отдельный запросов к базе данных пользовательской функции.

грамматика

declare function前缀:函数名($参数 AS 数据类型)
AS返回的数据类型
{
...函数代码...
}

О определяемые пользователем функции Примечания:

  • Пожалуйста, используйте функцию DECLARE ключевое слово
  • Имена функций должны использовать префикс
  • Параметр Тип данных, как правило, в соответствии с данными, определенными в типе схемы XML
  • Тело функции должны быть окружены фигурными скобками

В пользовательском определенных примерах функции оператор запроса:

declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
AS xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
}

Below is an example of how to call the function above:

<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>