XQuery API for Java
جاوا (XQJ) کے لیے XQuery API سے مراد W3C XQuery 1.0 تفصیلات کے لیے عام جاوا API ہے۔ XQJ API جاوا پروگرامرز کو XML ڈیٹا سورس کے خلاف XQuery کو چلانے کے قابل بناتا ہے (مثال کے طور پر۔ ایک ایکس ایم ایل ڈیٹا بیس) وینڈر لاک ان کو کم کرتے یا ختم کرتے ہوئے۔ XQJ API جاوا ڈویلپرز کو XQuery ڈیٹا ماڈل کا انٹرفیس فراہم کرتا ہے۔ اس کا ڈیزائن جے ڈی بی سی اے پی آئی سے ملتا جلتا ہے جس میں کلائنٹ/سرور کا احساس ہوتا ہے اور اس طرح سرور پر مبنی ایکس ایم ایل ڈیٹا بیس کو اچھی طرح سے قرض دیتا ہے اور کلائنٹ سائیڈ ایکس کوری پروسیسرز کو کم اچھی طرح سے، حالانکہ "کنکشن" حصہ پورے اے پی آئی کا ایک بہت ہی معمولی حصہ ہے۔ XQJ API کے صارفین جاوا ویلیوز کو XQuery کے تاثرات سے باندھ سکتے ہیں، کوڈ انجیکشن کے حملوں کو روک سکتے ہیں۔ نیز، متعدد XQuery تاثرات کو جوہری لین دین کے حصے کے طور پر انجام دیا جا سکتا ہے۔ تاریخ اور نفاذ جاوا کے لیے XQuery API جاوا کمیونٹی پروسیس میں JSR 225 کے طور پر تیار کیا گیا تھا۔ اس کے پاس اوریکل، آئی بی ایم، بی ای اے سسٹمز، سافٹ ویئر اے جی، انٹیل، نوکیا اور ڈیٹا ڈائریکٹ جیسے کچھ بڑے ٹیکنالوجی معاون تھے۔ جاوا اسپیسیفیکیشن کے لیے XQuery API کا ورژن 1 جون 24، 2009 کو جاوا ڈاکس، ایک حوالہ نفاذ اور ایک TCK (ٹیکنالوجی مطابقت کٹ) کے ساتھ جاری کیا گیا تھا جس کو نافذ کرنے والے وینڈرز کو اس کے مطابق ہونا چاہیے۔ XQJ کلاسیں جاوا پیکیج javax.xml.xquery میں موجود ہیں۔ XQJ کا کوئی ورژن بنانے کے لیے کوئی (مرئی) سرگرمی نہیں ہے جو XQuery 3.0 یا 3.1 کے لیے سپورٹ فراہم کرتی ہو، مثال کے طور پر ڈیٹا ماڈل جیسے افعال، صفوں، یا نقشوں میں اضافے کے لیے جاوا بائنڈنگ فراہم کر کے۔ فنکشنلٹی XQJ متعدد نفاذات کو موجود رکھنے اور ایک ہی ایپلی کیشن کے ذریعے استعمال کرنے کی اجازت دیتا ہے۔ XQJ کنکشن XQuery کے تاثرات بنانے اور ان پر عمل درآمد میں مدد کرتے ہیں۔ تاثرات کو اپ ڈیٹ کیا جا سکتا ہے اور اس میں مکمل ٹیکسٹ سرچز شامل ہو سکتی ہیں۔ XQJ مندرجہ ذیل کلاسوں میں سے کسی ایک کا استعمال کرتے ہوئے XQuery کے تاثرات کی نمائندگی کرتا ہے: XQExpression-اظہار ہر بار XQuery پروسیسر کو بھیجا جاتا ہے۔ ایکس کیو پریپریڈ ایکسپریشن-اظہار کیشے کیا جاتا ہے اور اس پر عمل درآمد کا راستہ پہلے سے طے کیا جاتا ہے جس سے اسے موثر انداز میں متعدد بار انجام دیا جا سکتا ہے۔ ایکس کیوری کے تاثرات ایکس ڈی ایم آئٹمز کا نتیجہ ترتیب واپس کرتے ہیں جن کی نمائندگی ایکس کیو جے میں ایکس کیو ریسلٹسیکوینس انٹرفیس کے ذریعے کی جاتی ہے۔ پروگرامر نتیجہ کی ترتیب میں انفرادی ایکس ڈی ایم آئٹمز پر چلنے کے لیے ایکس کیو ریسلٹ سیکوینس کا استعمال کر سکتا ہے۔ ترتیب میں ہر آئٹم میں اس سے وابستہ ایکس ڈی ایم قسم کی معلومات ہوتی ہے، جیسے کہ اس کے نوڈ کی قسم۔ ، یا ایک ایکس ڈی ایم جوہری قسم جیسے، یا۔ ایکس کیو جے میں ایکس ڈی ایم قسم کی معلومات کو ایکس کیو آئٹم ٹائپ انٹرفیس کے ذریعے حاصل کیا جا سکتا ہے۔ ایٹمک ایکس کوری آئٹمز کو آسانی سے جاوا پرائمیٹیوز میں ایکس کیو آئٹم ایکسیسور طریقوں جیسے کہ حاصل بائٹ () اور حاصل فلوٹ () کے ذریعے کاسٹ کیا جا سکتا ہے۔ اس کے علاوہ ایکس کوری آئٹمز اور سیکوینسز کو ڈی او ایم، ایس اے ایکس، ایس ٹی اے ایکس اور عام آئی او اور کلاسز میں سیریلائز کیا جا سکتا ہے۔ مثالیں بنیادی مثال مندرجہ ذیل مثال ایکس ایم ایل ڈیٹا بیس سے کنکشن بنانے، ایکس کوری کا اظہار جمع کرنے، پھر جاوا میں نتائج پر کارروائی کرنے کی وضاحت کرتی ہے۔ ایک بار جب تمام نتائج پر کارروائی ہو جاتی ہے، تو اس سے وابستہ تمام وسائل کو آزاد کرنے کے لیے کنکشن بند کر دیا جاتا ہے۔ //ایکس ایم ایل ڈیٹا بیس ایکس کیو کنکشن کون = vendorDataSource.getConnection ("مائی یوزر"، "مائی پاس ورڈ") کے لیے نیا کنکشن بنائیں ؛ ایکس کیو ایکسپریشن ایکسپریس = conn.createExpression () ؛// دوبارہ قابل استعمال ایکس کیوری ایکسپریشن آبجیکٹ ایکس کیو ریسلٹسیکوینس کا نتیجہ = expr.executeQuery بنائیں ("fn میں $n کے لیے: کلیکشن ('کیٹلاگ')// آئٹم" + "ریٹرن ایف این: ڈیٹا ($n/نام)") ؛// ایک ایکس کیوری ایکسپریشن پر عمل کریں// نتیجہ کی ترتیب کو بار بار عمل کریں جب کہ (result.next ()) فرض کریں کہ کنکشن پہلے سے موجود ہے: ایکس کیو ایکسپریشن ایکسپریس = conn.createExpression () ؛// XQuery ایکسپریشن جسے انجام دیا جانا ہے سٹرنگ ایس = "متغیر $x کو xs کے طور پر اعلان کریں: انٹیجر بیرونی ؛" + "fn میں $n کے لیے: مجموعہ ('کیٹلاگ')// آئٹم" + "جہاں $n/قیمت <= $x" + "واپسی fn: ڈیٹا ($n/نام)" ؛// QName x expr.bindInt (نیا QName ("x")، 21، null) کے ساتھ ایک بیرونی متغیر کے لیے ایک ویلیو (21) کو باندھ دیں ؛// XQuery ایکسپریشن XQResquance نتیجہ کو انجام دیں۔ نقشہ سازی کے یہ قوانین جے اے ایکس بی میں پائے جانے والے نقشہ سازی کے قوانین سے بہت مماثلت رکھتے ہیں۔ مندرجہ ذیل ٹیبل XQuery کے تاثرات میں جاوا ویلیوز کو بیرونی متغیرات سے پابند کرتے وقت ڈیفالٹ میپنگ کے اصولوں کی وضاحت کرتا ہے۔ معروف نفاذ مقامی XML ڈیٹا بیس درج ذیل مقامی XML ڈیٹا بیس کی ایک فہرست ہے جو جاوا کے نفاذ کے لیے XQuery API کے لیے جانا جاتا ہے۔ مارک لاجک ایکسسٹ بیس ایکس سیڈنا اوریکل ایکس ڈی بی تامینو ٹائیگر لاجک ریلیشنل ڈیٹا بیس ڈیٹا ڈائریکٹ ریلیشنل ڈیٹا بیس کے لیے ایکس کیو جے اڈاپٹر فراہم کرتا ہے، ایکس کوری کوڈ کو فلائی پر ایس کیو ایل میں ترجمہ کرکے، پھر ایس کیو ایل کے نتائج کے سیٹ کو ایکس کیو جے کے لیے موزوں فارمیٹ میں تبدیل کر کے۔ مندرجہ ذیل چند معروف نفاذ ہیں۔ اوریکل ڈی بی (ناٹ ایکس ڈی بی) آئی بی ایم ڈی بی 2 مائیکروسافٹ ایس کیو ایل سرور سائ بیس اے ایس ای انفارمیکس مائی ایس کیو ایل پوسٹگری ایس کیو ایل نان ڈیٹا بیس نفاذ مندرجہ ذیل غیر ڈیٹا بیس ایکس کوری پروسیسرز کی ایک فہرست ہے جو جاوا انٹرفیس کے لیے ایکس کوری اے پی آئی فراہم کرتے ہیں (عام طور پر فائل اسٹور میں ایکس ایم ایل سے تجزیہ شدہ دستاویزات کے خلاف استفسار کی اجازت دیتے ہیں، اور میموری میں ڈی او ایم یا اسی طرح کے درختوں کے طور پر رکھے جاتے ہیں)۔ سیکسون ایکس ایس ایل ٹی اور ایکس کوری پروسیسر زوربا ایم ایکس کوری اوریکل ایکس کوری پروسیسر لائسنس تفصیلات کو "کاپی رائٹ ® 2003، 2006-2009 اوریکل" کے طور پر نشان زد کیا گیا ہے۔ تمام حقوق محفوظ ہیں۔ " تفصیلات میں دو الگ الگ لائسنس شامل ہیں: ایک "تفصیلات کا لائسنس" اور ایک "حوالہ عمل درآمد کا لائسنس"۔ تفصیلات کا لائسنس تفصیلات کی مفت کاپی کرنے کی اجازت دیتا ہے بشرطیکہ کاپی رائٹ نوٹس برقرار رکھے جائیں۔ یہ تفصیلات کے نفاذ کو بنانے اور تقسیم کرنے کا لائسنس بھی دیتا ہے بشرطیکہ یہ پوری تفصیلات کو مکمل طور پر نافذ کرے، کہ یہ کسی بھی انٹرفیس میں ترمیم یا توسیع نہیں کرتا ہے، اور یہ کہ یہ مطابقت کے ٹیسٹ پاس کرتا ہے۔ اس شق سے کچھ تنازعہ پیدا ہوا ہے۔ سب سے پہلے، یہ عالمی سطح پر قبول نہیں کیا جاتا ہے کہ شائع شدہ تفصیلات کو نافذ کرنا ایک ایسی چیز ہے جس کے لیے لائسنس کی ضرورت ہوتی ہے (یعنی، کاپی رائٹ قانون لائسنس کی عدم موجودگی میں اس کی اجازت نہیں دے گا)۔ دوسرا، توسیع اور ترمیم کرنے پر پابندی کی وجہ سے لائسنس اوپن سورس لائسنس کے طور پر اہل ہونے کے معیار پر پورا نہیں اترتا (اوپن سورس کی تعریف دیکھیں)۔ اس نے کچھ اوپن سورس کے شوقین افراد کو چیلنج کرنے پر مجبور کیا ہے کہ آیا XQJ کے نفاذ کو کبھی بھی واقعی اوپن سورس سمجھا جا سکتا ہے۔ حوالہ جات کے نفاذ کا لائسنس کافی حد تک روایتی بی ایس ڈی طرز کا اوپن سورس لائسنس ہے۔ حوالہ جات بیرونی روابط XQJ XQJ ٹیوٹوریل بلڈنگ برج جاوا سے XQuery، چارلس فوسٹر کے لیے جاواڈوک۔ XML پراگ 2012 (پریزی پریزنٹیشن) جاوا انٹیگریشن آف XQuery، ہنس-جرگن ریناؤ۔ XQJ اسپرنگ انٹیگریشن XQuery سپورٹ XQS کا استعمال کرتے ہوئے بالسیج 2010 اوربین فارم: اسکالا کے لیے XQuery (XQJ کے اوپر بیٹھتا ہے) انٹلی جے XQuery سپورٹ پلگ ان جاوا APIs جاوا تفصیلات XML ڈیٹا تک رسائی کی درخواست کرتی ہیں XML ڈیٹا بیس APIs کے لیے جاوا API