وظائف XQuery
- الصفحة السابقة اختيار XQuery
- الصفحة التالية ملخص XQuery
تشارك XQuery 1.0 و XPath 2.0 و XSLT 2.0 نفس مكتبة الدوال.
وظائف XQuery
يحتوي XQuery على أكثر من 100 دالة مدمجة. يمكن استخدام هذه الدوال مع القيم النصية والرقمية، مقارنة التواريخ والوقت، معالجة العقد والQName، عمليات السلسلة، القيم المنطقية وما إلى ذلك. يمكنك أيضًا تعريف دوال خاصة بك في 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")/book[substring(title,1,5)='Harry']
مثال 3: في جملة let
let $name := (substring($booktitle,1,4))
دوال المستخدم في XQuery
إذا لم تجد الدالة المطلوبة في XQuery، يمكنك كتابة دالة خاصة بك.
يمكن تعريف الدوال المستخدمية في الاستعلام أو في مكتبة مستقلة.
النحو
declare function prefix:اسم الدالة($معلمات AS نوع البيانات)
AS نوع البيانات للناتج
{
(: ...كود الدالة... :)
;
ملاحظات حول الدوال المستخدمية:
- استخدم كلمة المفتاح 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>
- الصفحة السابقة اختيار XQuery
- الصفحة التالية ملخص XQuery