XQuery چیست؟
XQuery چیست؟
xml یکی از آن مواردی بود که بسیار مورد علاقه تمامی برنامهنویسان قرار گرفت، دلیل این امر هم قالب ساده ارائه شده توسط آن برای ذخیرهسازی و ارسال اطلاعات بود. قواعد مورد نظر برای ساخت یک ساختار xml به قدری ساده بود که باعث محبوبیت سریع آن شد.
حال فرض کنید که دارای یک فایل xml هستید که دادههای مورد نظر شما در آن ذخیره شده است. برای تحلیل و بیرون کشیدن اطلاعات مورد نظر، راههای مختلفی وجود دارد، به عنوان مثال میتوانید با زبان برنامهنویسی مورد علاقه خود یک parser برای این ساختارمتنی بنویسید و دادههای مورد نظر خود را از داخل ساختار تودرتوی آن بیرون بکشید.
در اینجاست که XQuery میتواند وارد شده و کار شما را با قواعد خود، بسیار ساده کرده و شما را از دردسر نوشتن یک parser پیچیده خلاص کند.
XQuery زبانی است که به برنامهنویسان اجازه کوئری زدن روی اطلاعات موجود در یک ساختار xml را میدهد. با استفاده از این زبان میتوانید عناصر (element) و خصوصیات (attribute) آن در ساختار xml را شناسایی کرده و آنها را استخراج نمایید XQuery از عبارات XPath برای مشخص کردن گره خاصی در xml استفاده کرده و آن گره را از اجزای دیگر مشتق مینماید. از آنجا که در خیلی موارد از ساختار xml برای ارسال و نگهداری دادهها استفاده میشود لذا استفاده از این زبان میتواند بسیار مفید و پرکاربرد باشد.
در زیر میتوانید برخی از موارد استفاده این زبان را ملاحظه فرمایید:
۱- تولید گزارش
۲- جستجوی پایگاه داده
۳- جدا کردن بخشی از عناصر xml و ساختن یک xml جدید
۴- تبدیل یک ساختار xml به XHTML
۵- …
XQuery به صورت خلاصه در یک نگاه:
• XQuey زبان کوئری زدن روی داده xml است
• XQuery برای xml مانند SQL برای پایگاه دادههاست
• XQuery بر اساس عبارات XPath ساخته شده است
• XQuery توسط پایگاه دادههای اصلی و مطرح پشتیبانی میشود
• XQuery پیشنهادی از کنسرسیوم W3C میباشد
نمونه سادهای از کاربرد XQuery :
فرض کنید که یک xml با ساختار زیر داشته باشید:
<bookstore>
<book category=»COOKING»>
<title lang=»en»>Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>31.00</price>
</book>
<book category=»CHILDREN»>
<title lang=»en»>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
عبارت زیر که با زبان XQeury نوشته شده است روی تمام عناصر book میگردد و عنوان کتابهایی را که دارای قیمت کمتر از ۳۰ میباشند را باز میگرداند :
for $x in doc(«books.xml»)/bookstore/book
where $x/price>30
order by $x/title
return $x/title
نحوه دیگر نوشتن کوئری میتواند به صورت زیر باشد :
doc(«books.xml»)/bookstore/book[price<30]
خروجی کوئری بالا به صورت زیر خواهد بود :
<book category=»CHILDREN»>
<title lang=»en»>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
حال اگر عبارت زیر را اجرا کنیم میتوانیم به نتیجه کوئری اول برسیم :
doc(«books.xml»)/bookstore/book[price>30]/title
اولین کوئری نوشته شده را یک عبارت FLWOR مینامند. FLWOR مخففی از ابتدای عبارات For, Let, Where,Order by و Return میباشد.