XQuery 1.0, XPath 2.0 и XSLT 2.0 разделяют те же функции библиотеки.
Функции XQuery
XQuery построен на XPath выражений. XQuery 1.0 и XPath 2.0 одни и те же модели данных и поддерживать одни и те же функции и операторы.
Вы также можете определить свои собственные функции в XQuery.
Типы данных XQuery
XQuery разделяет те же типы данных , как XML Schema 1.0 (XSD) .
Примеры вызовов функций
Вызов функции может появиться где может появиться выражение. Посмотрите на примерах ниже:
Пример 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 Заметки о пользовательских функциях: - Используйте функцию объявить ключевое слово
- Имя функции должно быть приставкой
- Тип данных параметров в основном так же, как типы данных, определенных в 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>