Latest web development tutorials

XQuery-Funktionen

XQuery 1.0, XPath 2.0 und XSLT 2.0 die gleiche Bibliothek.


XQuery-Funktionen

XQuery enthält mehr als 100 eingebaute Funktionen. Diese Funktionen können für String-Werte, numerisch, Datum und Zeitvergleich, Knoten und QName Manipulation, Sequenz Manipulation, Boolesche Werte, und so weiter verwendet werden. Sie können auch Ihre eigenen Funktionen in XQuery definieren.


XQuery integrierten Funktionen

XQuery-Funktion Namespace-URI:

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

Die Standardfunktion Namespacepräfix ist fn:.

Tipp: Call - Vorwahl, wie fn :: function oft durch fn string (). Da jedoch fn: ist das Standard-Präfix des Namespace, die Funktionsnamen müssen nicht das Präfix zu verwenden, wenn sie aufgerufen wird.

Sie können die komplette finden "in unserem XPath Tutorial integrierten in XQuery - Funktionen Referenzhandbuch ."


Beispiele für Funktionsaufrufe

Funktionsaufrufe können mit einem Ausdruck verwendet werden. Betrachten Sie das folgende Beispiel:

Beispiel 1: Das Element

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

Beispiel 2: In der Pfadausdruck in das Prädikat

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

Beispiel 3: let Aussage

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


Benutzerdefinierte Funktionen XQuery

Wenn Sie nicht die erforderliche XQuery-Funktion finden, können Sie Ihre eigenen Funktionen schreiben.

Oder Benutzer können separate Datenbankabfrage benutzerdefinierte Funktion definieren.

Grammatik

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

Über benutzerdefinierte Funktionen Hinweise:

  • Bitte benutzen Sie die declare Funktion Schlüsselwort
  • Funktionsnamen müssen das Präfix
  • Datentyp-Parameter ist in der Regel im Einklang mit den Daten in der XML-Schema-Typ definiert
  • Funktionskörper müssen von geschweiften Klammern umgeben sein

In einer Abfrage-Anweisung benutzerdefinierte Funktion Beispiele:

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>