سلام اڄ اسان هڪ ٻيو ڊيٽا فارميٽ متعارف ڪنداسين جنهن کي XML سڏيو ويندو آهي. هي هڪ تمام اهم موضوع آهي. جڏهن حقيقي جاوا ايپليڪيشنن تي ڪم ڪري رهيا آهيو، توهان کي لڳ ڀڳ ضرور ضرور ملندو XML سان لاڳاپيل ڪم. جاوا ڊولپمينٽ ۾، هي فارميٽ تقريباً عالمگير طور استعمال ڪيو ويندو آهي (اسان اهو معلوم ڪنداسين ته هيٺ ڇو)، تنهن ڪري مان سفارش ڪريان ٿو ته توهان هن سبق جو سطحي جائزو نه وٺو، بلڪه هر شيءِ جي مڪمل ڄاڻ حاصل ڪريو ۽ اضافي ادب/لنڪن جو مطالعو ڪريو :) هي يقيني طور تي وقت ضايع نه ٿيندو. سو، اچو ته آسان شين سان شروع ڪريون: ”ڇا“ ۽ ”ڇو“!
Java XML ڇا آهي؟
XML جو مطلب آهي ايڪسٽينيبل مارڪ اپ ٻولي. توهان شايد اڳ ۾ ئي هڪ مارڪ اپ ٻولي سان واقف آهيو - ڇا توهان HTML بابت ٻڌو آهي، جيڪو ويب صفحا ٺاهڻ لاء استعمال ڪيو ويندو آهي :) HTML ۽ XML جيتوڻيڪ هڪجهڙائي ظاهر ڪن ٿا:
XML اصل ۾ ايجاد ڪئي وئي هئي وڌيڪ آساني سان ڊيٽا کي ذخيرو ڪرڻ ۽ موڪلڻ، بشمول انٽرنيٽ ذريعي. ان ۾ ڪيترائي فائدا آھن جيڪي توھان کي حاصل ڪرڻ ۾ مدد ڪن ٿيون. پهريون، انسان ۽ ڪمپيوٽر ٻنهي کي پڙهڻ آسان آهي. منهنجو خيال آهي ته توهان آساني سان سمجهي سگهو ٿا ته هي XML فائل ڇا بيان ڪري ٿو:
<?xml version="1.0" encoding="UTF-8"?><book><title>HarryPotter and the Philosopher’s Stone</title><author>J. K. Rowling</author><year>1997</year></book>
هڪ ڪمپيوٽر پڻ آساني سان هن فارميٽ کي سمجهي ٿو. ٻيو، جيئن ته ڊيٽا سادي متن جي طور تي ذخيرو ٿيل آهي، اتي ڪو به مطابقت وارو مسئلو نه هوندو جڏهن اسان ان کي هڪ ڪمپيوٽر کان ٻئي ڏانهن منتقل ڪندا آهيون. اهو سمجهڻ ضروري آهي ته XML قابل عمل ڪوڊ نه آهي - اها ڊيٽا جي وضاحت جي ٻولي آهي. XML استعمال ڪندي ڊيٽا کي بيان ڪرڻ کان پوء، توهان کي ڪوڊ لکڻو پوندو (مثال طور، جاوا ۾) جيڪو هن ڊيٽا کي موڪلي / وصول / پروسيس ڪري سگهي ٿو.
XML ڪيئن ٺهيل آهي؟
مکيه حصو ٽيگ آهي: اهي شيون آهن زاوي بریکٹ ۾:
<book></book>
اتي اوپننگ ٽيگ ۽ بند ڪرڻ جا ٽيگ آھن. بند ٿيڻ واري ٽيگ ۾ اضافي علامت (" / ") آهي، جيئن مٿي ڏنل مثال ۾ ڏسي سگھجي ٿو. هر افتتاحي ٽيگ کي بند ڪرڻ واري ٽيگ هجڻ گهرجي. اهي ڏيکاريندا آهن جتي فائل ۾ هر عنصر جي وضاحت شروع ٿئي ٿي ۽ ختم ٿئي ٿي. ٽيگ nested ٿي سگهي ٿو! اسان جي ڪتاب جي مثال ۾، <book> ٽيگ ۾ 3 nested ٽيگ آهن: <title>، <author>، ۽ <year>. اهو nesting جي هڪ سطح تائين محدود نه آهي: nested tags جا پنهنجا پنهنجا nested tags وغيره هوندا. هن ڍانچي کي ٽيگ ٽري چئبو آهي. اچو ته هن وڻ کي ڏسو هڪ نموني XML فائل استعمال ڪندي جيڪو ڪار ڊيلرشپ کي بيان ڪري ٿو:
هاڻي اسان جو پروگرام مختلف ادارن جي وچ ۾ فرق ڪرڻ جي قابل هوندو! هر شيءِ جنهن ۾ رانديڪن جو اڳياڙي آهي ان کي رانديڪن وانگر سمجهيو ويندو :) بهرحال، اسان اڃا تائين مڪمل نه ڪيو آهي. اڳياڙين کي استعمال ڪرڻ لاءِ، اسان کي انهن مان هر هڪ کي نالي جي جاءِ طور رجسٽر ڪرڻ جي ضرورت آهي. دراصل، "رجسٽر" ھڪڙو مضبوط لفظ آھي :) اسان کي صرف انھن مان ھر ھڪڙي لاء ھڪڙو منفرد نالو آڻڻ جي ضرورت آھي. اهو طبقن سان گڏ آهي: هڪ طبقي جو مختصر نالو آهي ( Cat ) ۽ هڪ مڪمل طور تي قابل نالو آهي جنهن ۾ سڀئي پيڪيجز شامل آهن ( zoo.animals.Cat ). هڪ URI عام طور تي استعمال ڪيو ويندو آهي هڪ منفرد نالي جي جڳهه جو نالو ٺاهڻ لاء. ڪڏهن ڪڏهن اهو انٽرنيٽ ايڊريس استعمال ڪندي ڪيو ويندو آهي، جتي هن نالي جي جڳهه جا ڪم بيان ڪيا ويا آهن. پر اهو ضروري ناهي ته صحيح انٽرنيٽ ايڊريس هجي. گهڻو ڪري، منصوبا صرف URI-like strings استعمال ڪندا آهن جيڪي مدد ڪن ٿا نالو اسپيس جي درجه بندي کي ٽريڪ ڪرڻ ۾. هتي هڪ مثال آهي:
يقينن، "http://testproject.developersgroup1.companyname/department2/namespaces/real" تي ڪا به ويب سائيٽ موجود ناهي، پر هي اسٽرنگ مفيد معلومات تي مشتمل آهي: ڊپارٽمينٽ 2 ۾ گروپ 1 جا ڊولپرز "حقيقي" نالي جي جڳهه ٺاهڻ جا ذميوار آهن. . جيڪڏهن اسان کي نوان نالا متعارف ڪرائڻ گهرجن يا ممڪن تڪرارن تي بحث ڪرڻ جي ضرورت آهي، اسان کي خبر پوندي ته ڪيڏانهن وڃو. ڪڏهن ڪڏهن ڊولپر هڪ حقيقي تشريحاتي ويب ايڊريس استعمال ڪندا آهن هڪ منفرد نالي جي جڳهه جي نالي سان. مثال طور، اهو ٿي سگهي ٿو هڪ وڏي ڪمپني جو معاملو جنهن جي منصوبي کي دنيا جي لکين ماڻهن طرفان استعمال ڪيو ويندو. پر اهو يقيني طور تي هميشه نه ڪيو ويو آهي: اسٽيڪ اوور فلو
هن مسئلي تي بحث ڪيو آهي. عام طور تي، URIs کي استعمال ڪرڻ جي ڪا سخت ضرورت نه آهي نالن جي جڳهه جي طور تي: توهان پڻ استعمال ڪري سگهو ٿا بي ترتيب واري تار. هي اختيار پڻ ڪم ڪندو:
XML معيار ملندڙن جو ھڪڙو سيٽ آھن جيڪي XML فائلن ۾ اضافي ڪارڪردگي شامل ڪن ٿا. XML جا ڪيترائي معيار آھن، پر اسان صرف سڀ کان وڌيڪ اھم معيارن تي نظر ڪنداسين ۽ معلوم ڪنداسين ته اھي AJAX کي ممڪن بڻائين ٿا، جيڪو ھڪڙو مشهور XML معيار آھي. اهو توهان کي ويب پيج جي مواد کي ٻيهر لوڊ ڪرڻ جي بغير تبديل ڪرڻ جي اجازت ڏئي ٿو! XSLT توهان کي XML ٽيڪسٽ کي ٻين فارميٽ ۾ تبديل ڪرڻ جي اجازت ڏئي ٿي. مثال طور، توهان XML کي HTML ۾ تبديل ڪرڻ لاءِ XSLT استعمال ڪري سگهو ٿا! جيئن اسان چيو آهي، ايڪس ايم ايل جو مقصد ڊيٽا کي بيان ڪرڻ آهي، نه ان کي ڊسپلي ڪرڻ. پر XSLT سان اسان هن حد جي چوڌاري حاصل ڪري سگهون ٿا! XML DOM توهان کي هڪ XML فائل مان انفرادي عناصر کي ٻيهر حاصل ڪرڻ، تبديل ڪرڻ، شامل ڪرڻ، يا حذف ڪرڻ جي اجازت ڏئي ٿو. هتي هڪ ننڍڙو مثال آهي ته اهو ڪيئن ڪم ڪري ٿو. اسان وٽ هڪ books.xml فائل آهي:
<bookstore><book category="cooking"><title lang="en">EverydayItalian</title><author>GiadaDeLaurentiis</author><year>2005</year><price>30.00</price></book><book category="children"><title lang="en">HarryPotter</title><author>J. K. Rowling</author><year>2005</year><price>29.99</price></book></bookstore>
ان ۾ ٻه ڪتاب آهن. ڪتابن ۾ هڪ <عنوان> عنصر هوندو آهي. هتي اسان پنهنجي XML فائل مان سڀني ڪتابن جا عنوان حاصل ڪرڻ لاءِ جاوا اسڪرپٽ استعمال ڪري سگهون ٿا ۽ پهرين کي پرنٽ ڪنسول ڏانهن:
DTD ("دستاويز جي قسم جي تعريف") توهان کي اجازت ڏئي ٿي ته توهان هڪ XML فائل ۾ هڪ اداري لاءِ اجازت ڏنل عنصرن جي فهرست بيان ڪريو. مثال طور، فرض ڪريو ته اسان ڪتاب اسٽور جي ويب سائيٽ تي ڪم ڪري رهيا آهيون ۽ سڀ ڊولپمينٽ ٽيمون ان ڳالهه تي متفق آهن ته XML فائلن ۾ ڪتاب جي عناصر لاءِ صرف عنوان، ليکڪ، ۽ سال جون خاصيتون بيان ڪيون وڃن. پر اسان پاڻ کي بي پرواهه کان ڪيئن بچائي سگهون ٿا؟ تمام آسان!
<?xml version="1.0"?><!DOCTYPE book [<!ELEMENT book (title,author,year)><!ELEMENT title (#PCDATA)><!ELEMENT author (#PCDATA)><!ELEMENT year (#PCDATA)>]><book><title>TheLord of TheRings</title><author>JohnR.R. Tolkien</author><year>1954</year></book>
هتي اسان <book> لاءِ صحيح خاصيتن جي فهرست بيان ڪئي آهي. اتي ھڪڙو نئون عنصر شامل ڪرڻ جي ڪوشش ڪريو ۽ توھان کي فوري طور تي غلطي ملندي!
<book><title>TheLord of TheRings</title><author>JohnR.R. Tolkien</author><year>1954</year><mainhero>FrodoBaggins</mainhero></book>
غلطي! "عنصر مکيه هيرو هتي اجازت ناهي" اتي ٻيا ڪيترائي XML معيار آهن. توهان انهن مان هر هڪ سان پنهنجو پاڻ کي واقف ڪري سگهو ٿا ۽ ڪوڊ ۾ گهڻي کوٽائي ڪرڻ جي ڪوشش ڪري سگهو ٿا. بهرحال، جيڪڏهن توهان کي XML تي معلومات جي ضرورت آهي، توهان اتي تقريبا هر شيء ڳولي سگهو ٿا :) ۽ انهي سان، اسان جو سبق ختم ٿئي ٿو. اهو وقت آهي ڪمن ڏانهن واپس وڃڻ جو! :) ٻئي دفعي تائين!
GO TO FULL VERSION