XQuery-Funktionen
- Vorherige Seite XQuery-Wahl
- Nächste Seite XQuery-Zusammenfassung
XQuery 1.0, XPath 2.0 und XSLT 2.0 teilen die gleiche Funktionsbibliothek.
XQuery-Funktionen
XQuery enthält über 100 eingebaute Funktionen. Diese Funktionen können für Zeichenfolgenwerte, numerische Werte, Datum und Zeitvergleiche, Knoten- und QName-Operationen, Sequenzoperationen und logische Werte verwendet werden. Sie können auch Ihre eigenen Funktionen in XQuery definieren.
Eingebaute Funktionen von XQuery
URI des Namensraums der XQuery-Funktionen:
http://www.w3.org/2005/02/xpath-functions
Der Standardpräfix für den Namensraum der Funktionen ist fn:.
Hinweis:Funktionen werden oft durch den Präfix fn: aufgerufen, z.B. fn:string(). Allerdings ist fn: der Standardpräfix für Namensräume, daher ist der Präfix bei der Aufrufung der Funktion nicht erforderlich.
Sie finden das vollständige "Referenzhandbuch für eingebaute XQuery-Funktionen》。
Funktionaufrufbeispiel
Funktionsaufgerufe können zusammen mit Ausdrücken verwendet werden. Sehen Sie sich die folgenden Beispiele an:
Beispiel 1: In Elementen
<name>{upper-case($booktitle)}</name>
Beispiel 2: In Prädikaten von Pfadausdrücken
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'
Beispiel 3: In let-Anweisungen
let $name := (substring($booktitle,1,4))
XQuery benutzerdefinierte Funktionen
Wenn Sie die erforderliche XQuery-Funktion nicht finden, können Sie Ihre eigenen Funktionen schreiben.
Benutzerdefinierte Funktionen können in der Abfrage oder in einer separaten Bibliothek definiert werden.
Syntax
declare function Präfix:Funktionsname($Parameter AS Datentyp)
AS Rückgabetyp
{
(: ...Funktionssyntax... :)
;
Hinweise zur Erklärung benutzerdefinierter Funktionen:
- Verwenden Sie den Schlüsselwort 'declare function'
- Der Name der Funktion muss mit einem Präfix verwendet werden
- Der Datentyp des Parameters entspricht normalerweise dem in XML Schema definierten Datentypen
- Der Funktionstext muss in geschweiften Klammern eingeschlossen sein
Ein Beispiel für eine vom Benutzer erklärte benutzerdefinierte Funktion in der Abfrage:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(: Hier ist ein Beispiel für die Aufruf eines obigen Funktionen :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Vorherige Seite XQuery-Wahl
- Nächste Seite XQuery-Zusammenfassung