XQuery Functions
XQuery 1.0, XPath 2.0, and XSLT 2.0 share the same functions library.
XQuery Functions
XQuery includes over 100 built-in functions. There are
functions for string values, numeric values, date and time comparison, node and QName manipulation, sequence manipulation, Boolean
values, and more. You can also define your own functions in XQuery.
XQuery Built-in Functions
The URI of the XQuery function namespace is:
http://www.w3.org/2005/02/xpath-functions
The default prefix for the function namespace is fn:.
Tip: Functions are often called with the fn: prefix, such as fn:string().
However, since fn: is the default prefix of the namespace, the function names do
not need to be prefixed when called.
The reference of all the built-in XQuery 1.0 functions is located
in our XPath tutorial.
Examples of Function Calls
A call to a function can appear where an expression may appear. Look at the examples below:
Example 1: In an element
| <name>{uppercase($booktitle)}</name> |
Example 2: In the predicate of a path expression
| doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'] |
Example 3: In a let clause
| let $name := (substring($booktitle,1,4)) |
XQuery User-Defined Functions
If you cannot find the XQuery function you need, you can write your own.
User-defined functions can be defined in the query or in a separate library.
Syntax
declare function prefix:function_name($parameter AS datatype)
AS returnDatatype
{
...function code here...
} |
Notes on user-defined functions:
- Use the declare function keyword
- The name of the function must be prefixed
- The data type of the parameters are mostly the same as the data types
defined in XML Schema
- The body of the function must be surrounded by curly braces
Example of a User-defined Function Declared in the Query
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> |
Click here to design a Stunning Flash Website for Free
Wix is a revolutionary web design tool that provides anyone with the possibility to create professional and beautiful websites for free.
With e-commerce features, search engine visibility and many more professional tools, Wix is the ultimate solution for creating a spectacular site while saving tons of money.
|