Συνάρτησεις του XQuery

Το XQuery 1.0, XPath 2.0 και XSLT 2.0 μοιράζονται την ίδια βιβλιοθήκη των συνάρτησης.

Συνάρτησεις του XQuery

Το XQuery περιέχει περισσότερα από 100 ενσωματωμένες συνάρτησεις. Αυτές οι συνάρτησεις μπορούν να χρησιμοποιηθούν για τιμές字符串, αριθμούς, ημερομηνίες και ώρες, συγκρίσεις μεταξύ κόμβων και QName, 操作 sequences, λογικές τιμές, κ.λπ. Μπορείτε επίσης να ορίσετε τις δικές σας συνάρτησεις στο XQuery.

Ενσωματωμένες συνάρτησεις XQuery

URI του ονόματος του χώρου των συνάρτησης XQuery:

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

Το προεπιλεγμένο πρόθεμα του ονόματος του χώρου των συνάρτησης είναι fn:.

Συμβουλή:Οι συνάρτησεις συχνά καλείται μέσω του πρόθεματος fn: όπως fn:string(). Ωστόσο, επειδή το fn: είναι ο προεπιλεγμένος πρόθεμας του ονόματος του χώρου, το όνομα της συνάρτησης δεν χρειάζεται να χρησιμοποιείται ως πρόθεμα κατά την κλήση.

Μπορείτε να βρείτε την πλήρη《Εγχειρίδιο αναφοράς των ενσωματωμένων συνάρτησης XQuery》。

Παράδειγμα κλήσης συνάρτησης

Η κλήση της συνάρτησης μπορεί να χρησιμοποιηθεί μαζί με την έκφραση. Δείτε τον παρακάτω παράδειγμα:

παράδειγμα 1: Στο στοιχείο

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

παράδειγμα 2: Στο πρότυπο του εκφράσεων του διαδρόμου

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

παράδειγμα 3: Στο let εντολή

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

Χρήσεις του χρήστη του XQuery

Αν δεν βρείτε τη ζητούμενη συνάρτηση XQuery, μπορείτε να γράψετε τη δική σας.

Οι χρήσεις του χρήστη μπορεί να οριστούν στο ερώτημα ή σε一个 ανεξάρτητη βιβλιοθήκη.

Γλώσσα

declare function πρόθεμα:όνομα της συνάρτησης($παράμετροι AS τύπος δεδομένων)
  AS τύπος δεδομένων επιστροφής
{
(: ...κώδικας συνάρτησης... :)
;

Σημεία προσοχής για τις χρήσεις των χρήσεων του χρήστη:

  • Χρησιμοποιήστε το keyword declare function
  • Το όνομα της συνάρτησης πρέπει να χρησιμοποιεί πρόθεμα
  • Ο τύπος δεδομένων των παραμέτρων συνήθως συμφωνεί με τον τύπο δεδομένων που ορίζεται στο XML Schema
  • Η σώμα της συνάρτησης πρέπει να περιλαμβάνεται σε κεραία

Παράδειγμα χρήσης μιας χρήσης του χρήστη που αναφέρεται στη συναρτηση

declare function local:minPrice(
  $price as xs:decimal?,
  $discount as xs:decimal?)
  AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(Παράδειγμα κλήσης της παραπάνω συνάρτησης :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>