Funktionen in XQuery
- <minPrice>{local:minPrice($book/price, $book/discount)}</minPrice> Vorherige Seite
- XQuery-Abfragen Einführung in DTD
XQuery 1.0, XPath 2.0 und XSLT 2.0 teilen die gleiche Funktionsbibliothek.
Funktionen in XQuery
XQuery enthält über 100 eingebaute Funktionen. Diese Funktionen können für Zeichenfolgen, numerische Werte, Datum und Zeitvergleiche, Knoten- und QName-Operationen, Sequenzoperationen, logische Werte usw. verwendet werden. Sie können auch Ihre eigenen Funktionen in XQuery definieren.
Eingebauter XQuery-Funktionen
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:.
Tipp:Funktionen werden oft über den Präfix fn: aufgerufen, z.B. fn:string(). Allerdings ist fn: der Standardpräfix für Namensräume, daher muss der Präfix nicht im Aufruf verwendet werden.
Sie finden das vollständigeBibliothek der eingebauten XQuery-Funktionen》。
Funktionsaufrufbeispiel
Funktionsaufrufe können zusammen mit Ausdrücken verwendet werden. Sehen Sie sich das folgende Beispiel 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 die benötigte XQuery-Funktion nicht gefunden wird, können Sie Ihre eigenen Funktionen schreiben.
Benutzerdefinierte Funktionen können in der Abfrage oder in separaten Bibliotheken definiert werden.
Syntax
declare function Präfix:Funktionsname($Parameter AS Datentyp)
AS Rückgabetyp
{
(: ...Funktionssource... :)
return ($price - $disc)
Hinweise zur benutzerdefinierten Funktion:
- Verwenden Sie den Schlüsselwort 'declare function'
- Die Funktionsbezeichnung muss einen Präfix verwenden
- Der Datentyp der Parameter stimmt in der Regel mit dem Datentyp überein, der im XML Schema definiert ist
- Der Funktionskörper muss in Klammern eingeschlossen werden
Ein Beispiel für eine vom Benutzer deklarierte 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 Aufrufe der obigen Funktion :)
- <minPrice>{local:minPrice($book/price, $book/discount)}</minPrice> Vorherige Seite
- XQuery-Abfragen Einführung in DTD