ایکس کویری فونکشن

XQuery 1.0, XPath 2.0 ਅਤੇ XSLT 2.0 ਸਾਂਝੇ ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਸਾਂਝਾ ਕਰਦੇ ਹਨ。

ایکس کویری فونکشن

XQuery ਵਿੱਚ 100 ਤੋਂ ਵੱਧ ਨਿਰਮਿਤ ਫੰਕਸ਼ਨ ਹਨ। ਇਹ ਫੰਕਸ਼ਨ ਸਟਰਿੰਗ ਮੁੱਲ, ਸੰਖਿਆ, ਤਾਰੀਖ ਅਤੇ ਸਮੇਂ ਤੋਂ ਤੁਲਨਾ, ਨੋਡ ਅਤੇ QName ਕਾਰਵਾਈ, ਸੀਕਵੈਂਸ ਕਾਰਵਾਈ, ਲਾਜਿਕਲ ਮੁੱਲ ਆਦਿ ਦੇ ਲਈ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ XQuery ਵਿੱਚ ਆਪਣੇ ਫੰਕਸ਼ਨ ਵੀ ਨਿਰਮਿਤ ਕਰ ਸਕਦੇ ਹੋ।

XQuery ਨਿਰਮਿਤ ਫੰਕਸ਼ਨ

XQuery ਫੰਕਸ਼ਨ ਨਾਮ ਸਪੇਸਸ਼ਨ ਦੀ URI:

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

ਫੰਕਸ਼ਨ ਨਾਮ ਸਪੇਸਸ਼ਨ ਦੀ ਮੂਲ ਪ੍ਰਤੀਸ਼ਤੀ fn: ਹੈ。

ਸੁਝਾਅ:ਫੰਕਸ਼ਨ ਨਾਮ ਮੰਤਰੀ ਪ੍ਰਤੀਸ਼ਤੀ ਰਾਹੀਂ fn: ਪ੍ਰੋਫ਼ਾਈਕਸ ਦੁਆਰਾ ਬੱਜਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਉਦਾਹਰਣ fn:string()। ਪਰ, ਕਿਉਂਕਿ fn: ਨਾਮ ਸਪੇਸਸ਼ਨ ਦੀ ਮੂਲ ਪ੍ਰਤੀਸ਼ਤੀ ਹੈ, ਫੰਕਸ਼ਨ ਨਾਮ ਬੱਜਟ ਕਰਨ ਲਈ ਪ੍ਰੋਫ਼ਾਈਕਸ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੁੰਦੀ।

ਤੁਸੀਂ ਸਾਡੇ XPath ਸਿਖਲਾਈ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਪੂਰੇਨਿਰਮਿਤ XQuery ਫੰਕਸ਼ਨ ਪੁਸਤਕਾਲ》。

ਫੰਕਸ਼ਨ ਬੱਜਟ ਉਦਾਹਰਣ

ਫੰਕਸ਼ਨ ਬੱਜਟ ਨਾਲ ਵੀ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਹੇਠ ਦੇ ਉਦਾਹਰਣ ਨੂੰ ਦੇਖੋ:

ਉਦਾਹਰਣ 1: ਏਕਲੇਖ ਵਿੱਚ

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

ਉਦਾਹਰਣ 2: ਪਥ ਪ੍ਰਗਟਾਵੇ ਵਿੱਚ

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

ਉਦਾਹਰਣ 3: let ਵਾਕਯ ਵਿੱਚ

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

XQuery 用户定义函数

如果找不到所需的 XQuery 函数,你可以编写自己的函数。

可在查询中或独立的库中定义用户自定义函数。

语法

declare function 前缀:函数名($参数 AS 数据类型)
  AS 返回的数据类型
AS xs:decimal?
(: ...函数代码... :)
return ($price - $disc);

关于用户自定义函数的注意事项:

  • 请使用 declare function 关键词
  • 函数名须使用前缀
  • 参数的数据类型通常与在 XML Schema 中定义的数据类型一致
  • 函数主体须被花括号包围

一个在查询中声明的用户自定义函数的例子:

declare function local:minPrice(
  declare function local:minPrice(
  $price as xs:decimal?,
  $discount as xs:decimal?
AS xs:decimal?
{
let $disc := ($price * $discount) div 100;
return ($price - $disc);
;
(: نیچے واضح ہوگا کہ اس فونکشن کو کس طرح سے بلائی گا :)