دروس في XML !

الغياب في الفترة السابقة كان بسبب حالة احباط أعيشها الآن ، وهي حالة تساعدك على أن تكتب شيء سخيف عن واقعك الذي تعيشه .. لكن سأحاول أن أستغل هذه الحالة لمحاولة الكتابة عن XML ، لعل هذا يكون داعياً لزوال هذه الحالة مع الوقت إن شاء الله . ستكون هذه السلسة من الدروس مفتاحاً لمعرفة قيمة XML لمن لم يعرفها ، وستجيب عن أسئلة بدائية قد يطرحها الكثير مثل :   مافائدة XML ؟ أسمع عنها كثيراً ! لماذا تجبرني < script src="http://blog.agdn-online.com/abdullah/editors/tiny_mce3/themes/advanced/langs/ar.js" type="text/javascript"> على استخدام XML بينما INI أسهل ؟ لماذا تضيف دروس عن XML ، بينما يكفينا درسين " على الماشي " للاستفادة من XML ؟ ما علاقة XML بلغات البرمجة و ما علاقة XML ببرمجة الألعاب تحديداً ؟ ما علاقة XML بقواعد البيانات ؟ ما علاقة XML بـ HTML مثلاً ؟ الذي دعاني لكتابة هذه الدروس - أو الشروع في كتابتها - ، هو " مقرر " دراسي قد درسته قبل سنة من الآن ، غيّر وأجاب وأحاط بكثير من الأسئلة التي تدور في رأسي عن XML .. وغيّر طريقة تفكيري تجاه المشاكل التي كنت أقوم بحلّها بطرق أخرى ملتوية .. عرفت الآن لماذا حصلت XML على هذا الكم الهائل من الزخم الإعلامي في أوساط المبرمجين و التقنيين بشكل عام !   وبما أننا في مدونة مستضافة من قبل موقع مهتم ببرمجة وتطوير الألعاب .، فمن المناسب أن نذكر أحد مميزات XML ، وهي أنها وسيلة ممتازة لتخزين وتبادل المعلومات بين كافة البرامج ومحركات الألعاب . لنأخذ Collada كمثال ، فهي مواصفات معتمدة من جهة رسمية وتستخدم XML لتخزين بيانات " المجسمات وأمور أخرى " وتصديرها من برامج الرسم مثل 3d Studio max ، و نقلها لبرامج أخرى مثل Maya ، بل وحتى استيرادها في محرك ألعابك لو أردت ذلك ، فالأمر بسيط ، فأنت أمام ملف XML بسيط ، يمكنك قراءته واستنباط أي معلومة تريد . صحيح أن هناك عيوب مثل ضخامة حجم الملف ، ولكن في الغالب يكون الهدف الأساسي هو تبادل البيانات ، بينما لو وصلت لمرحلة نهائية وهي عملية اقحام Collada في لعبتك ، فهناك خيارات أخرى من الأفضل أن تقوم بها وهي تحويل ملف XML إلى ملف ثنائي Binary .   في السابق كنّا نمضي الوقت و الجهد في التعرّف على هيكلة و بنية الملفات مثل 3ds  و Obj و MD2 .. الخ ، بينما الآن ، كل ما تحتاجه هو التعرف على صيغة واحدة وهي Collada ثم تحويل أي ملف باستخدام أدوات عينة إلى صيغة Collada ، ثم من صيغة Collada تستطيع توليد ملفّك الخاص بك ، أو حتى استخدام Collada في التطبيق النهائي . الدروس      في البداية سأكتب الدروس بناءً على معلوماتي العامة ، وعلى مراجع سريعة ، سأستخدمها ، وبعد الانتهاء من عدّة دروس ، سأعيد كتابة تلك الدروس بطريقة أكثر دقّة . علماً أني لست " محترفاً " في هذا المجال ، ولكن هي اجتهادات .. أتمنى بإذن الله أن تصيب ويستفيد منها أحد . المحتوى  دروس عن : مبادئ و أساسيات XML . دروس عن : مفهوم Schema وأنواعها مثل DTD أو XML Schema . دروس عن : قراءة وكتابة ملفات XML باستخدام طريقة DOM أو SAX . دروس عن : تطبيقات متنوعة مبنية على XML مثل : RSS و Collada و SVG .. الخ . دروس عن : XSLT بشكل مختصر . دروس عن : XPath و استخدامها مع XSLT ومع لغات البرمجة عموماً . دروس عن : أمور أخرى لم نتطرّق لها مثل XQuery أو بعض البروتوكلات المبنية على XML. علماً أني سأنشر الدروس بدايةً على مدونتي هذه ، ثم قد أعيد نشرها في مواقع أخرى . نسأل الله التوفيق و السداد للجميع .