با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته آموختیم که چگونه و به چه روش هایی می توان عناصر را در XQuery انتخاب کرد و چگونه به فیلتر کردن این عناصر پرداخت. در این جلسه که آخرین جلسه از سر فصل آموزش XQuery است سعی می کنیم که با ارائه آموزش کار با توابع در XQuery شما را با تعدادی از توابع کاربردی در آن آشنا کنیم و کار با آن ها را به شما بیاموزیم.
ما تاکنون FLWOR با آشنا شدیم و فهمیدیم که FLWOR (تلفظ “flower”) مخفف “For، Let، Where، Order by، Return” است و این کلمات هر یک دارای معنا ور کاربرد خاصی اند که عبارت است از :
در جلسه شصت و سوم آموختیم که چگونه از HTML در XQuery استفاده کنیم.
در جلسات بعدی به ترتیب یک سری از اصطلاحات مهم در XQuery را توضیح دادیم.
در ادامه با سینتکس XQuery آشنا شدیم.
سپس آموختیم که Attributes ها و عناصر را به عنوان اضافه کنیم و سپس به انتخاب و فیلتر عناصر پرداختیم.
در این جلسه این سر فصل را با آموزش کار با توابع در XQuery به پایان می بریم.
یک call زمانی می تواند در یک تابع ظاهر شود که یک عبارت نیز ظاهر می شود.
به مثال زیر توجه نمایید:
مثال ۱: در عنصر
1 | <name>{upper-case($booktitle)}</name> |
مثال ۲: در پیش فرض یک عبارت مسیر
1 | doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'] |
مثال ۳: در یک let clause
1 | let $name := (substring($booktitle,1,4)) |
اگر نمی توانید عملکردی از XQuery را که لازم دارید پیدا کنید، می توانید خود تان آن را بنویسید!
توابع تعریف شده توسط کاربر را می توان در کوئری یا در یک کتابخانه جداگانه تعریف کرد.
1 2 3 4 5 | declare function prefix:function_name($parameter as datatype) as returnDatatype { ...function code here... }; |
نکاتی در مورد توابع تعریف شده توسط کاربر:
1 2 3 4 5 6 7 8 9 10 | 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> |
سر فصل XQuery را با آموزش کار با توابع در XQuery به پایان بردیم.
جلسه بعدی با سر فصل DTD در XML همراه شما خواهیم بود.
با پی وی لرن همراه باشید.