XQuery Functions
- Previous Page XQuery Selection
- Next Page XQuery Summary
XQuery 1.0, XPath 2.0 en XSLT 2.0 delen dezelfde functiebibliotheek.
XQuery Functions
XQuery bevat meer dan 100 ingebouwde functies. Deze functies kunnen worden gebruikt voor stringwaarden, getallen, datum- en tijdsvergelijkingen, knopen en QName-operaties, sequentie-operaties, logische waarden, enz. U kunt ook uw eigen functies definiëren in XQuery.
Ingebouwde functies van XQuery
URI van de XQuery-functienamenruimte:
http://www.w3.org/2005/02/xpath-functions
De standaard voorvoegsel voor de functienamenruimte is fn:.
Tip:Functies worden vaak aangeroepen met het voorvoegsel fn:, bijvoorbeeld fn:string(). Echter, aangezien fn: de standaard voorvoegsel voor de naamruimte is, hoeft de naam van de functie niet te worden gebruikt bij de aanroep.
U kunt de volledigeReferentiemanual voor ingebouwde XQuery-functies》。
Voorbeeld van functie-aanroep
Een functie-aanroep kan worden gebruikt samen met een expressie. Zie het volgende voorbeeld:
Voorbeeld 1: In een element
<name>{upper-case($booktitle)}</name>
Voorbeeld 2: In de predicaat van een padexpressie
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'
Voorbeeld 3: In een let-statement
let $name := (substring($booktitle,1,4))
XQuery User-Defined Functions
If the required XQuery function cannot be found, you can write your own function.
User-defined functions can be defined in the query or in an independent library.
Syntax
declare function prefix:function name($parameter AS data type)
AS return data type
{
(: ...function code... :)
;
Considerations for user-defined functions:
- Use the declare function keyword
- The function name must use a prefix
- The data type of the parameters is usually consistent with the data type defined in XML Schema
- The function body must be enclosed in curly braces
An example of a user-defined function declared in a query:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(Below is an example of calling the function above :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Previous Page XQuery Selection
- Next Page XQuery Summary