اهلا وسهلا بك من جديد زائر آخر زيارة لك كانت في مجموع مساهماتك 85 آخر عضو مسجل Amwry فمرحباً به


اذهب الى الأسفل
ميلاد البغدادي
ميلاد البغدادي
عضو جديد
عضو جديد
الجنس : ذكر
عدد المساهمات : 22
المزاج : حزين
النقاط : 64

اهداء الدرس الاول + الثانى

الأربعاء مايو 25, 2011 7:01 pm
•نبذة عن لغات الترميز.



لغة XML ليست لغة برمجيَّة!

إنَّها تنتمي لعائلة لغات الترميز “Markup Languages” الَّتي تنتمي إليها أيضًا لغة HTML المعروفة.

هذه العائلة تنحدر عن اللغة الأمّ المسمَّى بـ SGML والَّتي ظهرت لأوّل مرَّةٍ في عام 1960 أي قبل ظهور الويب بكثير “30 عامًا تقريبًا”، لتساعد على ترميز وتنسيق المستندات والرسائل الإلكترونيَّة المتبادلة عبر الإنترنت.

وتتميَّز عائلة لغات الترميز بوسومها ذات الأقواس المثلثَّة ، وبهيكليتها الشبيهة بالشجرة TreeLike Structure، بالإضافة إلى أنَّها لا تحتوي على أوامر أو عمليَّات، ووظيفتها تنحصر على ترميز النصوص برموزٍ معيَّنة تفهمها جميع المتصفحات.


•التعريف والوظائف:



ماذا يقول لنا موقع w3schools عند تعريفه لغة XML؟


•XML هي اختصار لـ: eXtendable Markup Language أي: لغة الترميز القابلة للتوسّع .
•XML صُمّمت لنقل وتخزين البيانات.
•من المهمّ أن نفهم لغة XML ومن السهل أن نتعلمها!


.نعرف بأنَّ HTML هي لغة توصيف تُستخدم لعرض البيانات على صفحات الويب، البعض يعتقد بأنَّ لغة XML تعمل لذات الهدف، لا بالتأكيد.. XML تختلف تمامًا تمامًا عن الـ HTML، يمكن أن نقول بأنَّ ما يجمع بينهما فقط هو انحدارهما من نفس العائلة!

أنتَ تعرف بأنَّ هناك عددٌ محدود من الوسوم في لغة HTML، وأنَّ المتصفحات تترجم هذه الرموز تلقائيًا بغرض تنسيق عرض البيانات في صفحات الويب.

في لغة XML.. ليس هناك وسومٌ محددة!!.. أنتَ –كمطور ويب– تصنع وسومك بنفسك، لك مطلق الحرّيّة في كتابة الوسوم التي ترغب بها، ولذلك يصبح لدينا عدد لا نهائي من الوسوم التي يمكنك كتابتها عبر لغة XML!

كمثال، في لغة XML أستطيع كتابة الوسوم التالية:


حسنًا إذًا، ماذا سوف أستفيد من ذلك؟

ببساطة شديدة، سوف تقوم بوصف بياناتك بالطريقة التي تعجبك!!

وكيف سيستفيد المتصفح من هذا الوصف؟

هنا يأتي الفرق الجوهري بين HTML و XML، أنا أستطيع الاستفادة من لغة HTML بحدّ ذاتها والمتصفح لديه “قاموس” بكافة وسومها، لكن لغة XML تصبح عديمة الفائدة إذا لم أستخدم معها لغات وتقنيات تخبر المتصفح بكيفية التعامل مع الوسوم التي قمتُ بكتابتِها!

هذه هي الفكرة النظريّة للـ XML، تعبّر عنها دكتورتي في الجامعة بقولها: إنه مبدأ أن أمنح الجميع فرصة كتابة لغتهم الخاصّة بأنفسهم!

فما هي وظائف XML عمليًا؟

يمكننا تصنيف وظائف XML إلى 3 تصنيفات:

1- الاستفادة من لغة XML ضمن موقع واحد:

وهذه الاستفادة تكون على وجهين غالبًا/


•استخدام ملفات الـ XML كقاعدة بيانات:



إمّا عن طريق استخدام مستندات XML لتخزين البيانات ، أو تحويل مجموعة من المستندات إلى قواعد بيانات عن طريق استخدام إحدى التطبيقات ، وكلتاهما يمكن ان تكوّن قواعد بيانات علائقيّة .

” أشكر الأخ محمّد سفيان شراب على توضيح هذه النقطة وتصحيحها “


•تحويل ملفات XML إلى ملفات أخرى مثل CSS أو Text Files.. وغيرها.



2- الاستفادة من لغة XML عند تبادل البيانات بين موقعين فأكثر:

هل ستصدقني إذا أخبرتُك بأنّ إحدى أسس ظهور مصطلح الويب2.0 هي لغة XML؟

نسمع كثيرًا ونلمس بأنفسنا التعاون الهائل في مشاركة البيانات بين مواقع الويب 2.0، يمكننا نشر روابطنا المفضلة في Delicious على صفحاتنا في Facebook و Twitter وغيرهما من المواقع الاجتماعية بكلّ سهولة.

مستخدمي موقع Goodreads أيضًا يعرضون آخر تحديثاتهم على Twitter وFacebook، ويكفينا كمثال واضح لمشاركة البيانات بين المواقع موقع FriendFeed الّذي يقوم بجمع خلاصات أغلب الشبكات الاجتماعية ويعرضها!

إنّ ذلك كلّه يتمّ عبر لغة XML إمّا عن طريق ملفات RSS أو ملفات XML أخرى .

” أشكر الأخ محمّد سفيان شراب على تصحيح المعلومة ، للمزيد حول هذا الموضوع ، اقرأ تعليقه حول هذه النقطة “

3- الاستفادة من لغة XML عند تبادل البيانات بين الأجهزة والتطبيقات المختلفة:

لنأخذ موقع Twitter على سبيل المثال لا الحصر!

أستطيع الدخول إلى حسابي وقراءة تحديثات أصدقائي في موقع تويتر عبر:


•موقع http://www.twitter.com.
•إضافة Echofon في متصفح FireFox.
•تطبيقات AdobeAir مثل: Twhirl.
•جهاز الجوال.
•أجهزة الكمبيوتر الكفية.



وغيرها الكثير الكثير، كلها تتعامل مع نفس قاعدة البيانات وتعرض لي نفس التحديثات، لكن كلّ منها مبرمجٌ بلغةٍ مختلفة ويعمل بطريقةٍ مختلفة، كيف يحدث هذا؟، بالاستفادة من لغة XML!

لغة XML كالبحر حقًا لمن أراد الاستفادة منها، ومهما اغترفنا منها فإنّنا سوف نظلّ جاهلين أمام الكثير من أسرارها وتقنياتها، ولا أعدكم بأن أقدّم في هذه الدورة كلّ صغيرةٍ وكبيرة حول XML، فمعرفتي عنها متواضعة في النهاية، لكنّني سوف أحاول قدر المستطاع إضافة مصدرٍ تعليميّ حولها إلى المحتوى العربي في الشبكة.

في الدرس القادم بمشيئة الله سوف نناقش:


•البنية الهيكلية.
•إنشاء ملف XML.








الدرس الثانى





•البنية الهيكلية :



الهيكلية الشبيهة بالشجرة Treelike Structure :

هي أحد أشهر أشكال تنظيم البيانات في الحاسوب ، حيث تخزّن البيانات في وحداتٍ Nodes متفرّعة عن بعضها البعض ، تبدأ من الجذر Root الَّذي يحمل جميع الوحداتِ الأخرى ، وتنتهي بالأوراق Leaves الّتي لا تتفرّع عنها أيّ وحدات ، ومن هنا جاء الاسم treelike structure ، غير أنّ الفرق بين الشجرة الحقيقيّة وشجرة البيانات هو أنّ جذر الشجرة الحقيقيّة يكون في الأسفل بينما تكون أوراقها في الأعلى ، لكنّ جذر شجرة البيانات يكون في الأعلى وتكون الأوراق في الأسفل .

ولكلّ وحدةٍ من هذه الوحدات اسمًا تُعرف به ، ولا يوجد حرجٌ من أن تحمل أكثر من وحدة نفس الاسم ، فالوصول إلى الوحدات لا يعتمد على اسمها فقط ، بل يعتمد على المسار الذي تعبره لتصل إليها .



وشجرة البيانات تنتهج نهجًا وراثيًا ، حيث :

1- لكلّ شجرة جذر واحد فقط ، لا يمكن للشجرة أن يكون لها أكثر من جذرٍ ولا أقل ، والجذر هو الوحدة الوحيدة الَّتي ليس لها أب تتفرّع عنه .

2- كلّ الوحداتِ الَّتي تتفرّع عن وحدةٍ ما تصبح أبناء Children لها.

3- أبناء الأبناء يصبحون أحفادًا descendants للوحدة الأب .

4- آباء الآباء يُعرفون بالأجداد أو الأسلاف ancestors للوحدة الابن .

5- الوحدات الَّتي تتفرّع عن الأب نفسه تسمّى بالإخوة Siblings .

وبالنظر إلى شكل الشجرة أعلاه ، يمكننا استنتاج أنّه :

1- جذر هذه الشجرة هو الوحدة A .

2- يتفرَّع من الجذر A ابنين هما الوحدتين B1,B2 .

3- يتفرَّع من الوحدة B2 ابنين هما الوحدتين C1,C2 .

4- يتفرَّع من الوحدة C1 ابنين هما الوحدتين D1,D2 .

5- الوحدة B1 هو أخ للوحدة B2 .

6- الوحدة C1 هو أخ للوحدة C2 .

7- الوحدة D1 هو أخ للوحدة D2 .

8- النصّ ( Learn XML ) هو وحدة نصيّة “Text Node” متفرعة كابن من الوحدة C2 .

9- النصّ ( E7san ) هو وحدة نص متفرعة كابن من الوحدة D2 .

وليست ملّفات الـ XML وحدها لها هيكليّة شبيهة بالشجرة ، فكما أردفنا في الدرس الأول ، الهيكلية الشبيهة بالشجرة هي ميزة تتميّز بها لغات الترميز عامّة ، HTML أيضَا على سبيل المثال .

بعض النقاط المهمّ إدراكها عند التعامل مع ملفات XML :

1- تُعرف الوحدات في ملف XML بالعناصر XML Elements .

2- هذه العناصر :

•قد تحمل بياناتٍ نصيّة.
•أو قد تحمل وحداتٍ أخرى .
•أو قد تجمع بين هذا وذاك .
•أوقد تكون عناصر فارغة .



على اختلاف وكثرة اللغات والتقنيات الَّتي تتعامل برمجيًّا مع ملفات XML ، إلاّ أنّها في النهاية تتفق على فهم الهيكليّة الشجريّة للـ XML .

.

.

•إنشاء ملف XML :


1- افتح برنامج المفكرة أو أي محرر آخر .

ملاحظة :

توجد محررات خاصّة بلغة XML ، لكنّي أنصح باستخدام محرر Notepad++ لتحرير ملفات الـ XML والـ HTML والـ CSS وغيرها .

2- يفضل كتابة إعلان ” Declaration ” في أعلى الصفحة عن ملف الـ XML يحتوي على رقم الإصدار وعلى نوع التشفير :



- سوف نقوم بتحويل مثال الشجرة البيانيّة أعلاه إلى ملف XML عن طريق تحويل الوحدات إلى وسوم مزدوجة “Tags” :



العنصر الأول هو عنصر الجذر A ، جميع العناصر الأخرى سوف تكون محصورةً بين الوسمين .

لذلك عادة ما يكون اسم الجذر معبرًا عن محتوى ملف الـ XML ، فإذا كان لدينا ملف XML يحتوي على بيانات زوار الموقع مثلاً ، يكون اسم الجذر : visitors_info .



قمنا بتحويل الوحدتين B1 وB2 إلى وسمين مزدوجين ووضعهما داخل عنصر الجذر ، وهكذا .. كلّ وحدة سوف تُحوّل إلى وسم فتح ووسم إغلاق يوضع داخل وسمي العنصر الأب لها .



أخيرًا ، نكتب الوحدات النصيَّة داخل الوسوم :



قم بحفظ الملف بامتداد .xml مثال / any_name.xml .

الآن لو قمتَ بفتح هذا الملف عبر المتصفح سوف تظهر لك العناصر بشكلٍ شجري دون أي تنسيق .

الصفات Attributes :

عناصر الـXML يمكن أن تحتوي على صفة أو أكثر تقدّم معلومات إضافية يكتبها المبرمج حول العنصر .

تُكتب هذه الصفات داخل وسم الفتح ، وتتكون من جزئين :

1- اسم الصفة .

2- قيمة الصفة .



وبهذا ينتهي الدرس الثاني ، آمل أن يحوز على رضاكم وأن تخرجوا بفائدة منه ..

في الدرس الثالث سوف نناقش إن شاء الله :
1- قواعد كتابة ملفات الـ XML
2- تطبيق عملي لإنشاء ملف يحتوي على بيانات كتّاب مدونة جماعية .



321 321 321
ارام
ارام
مراقب ومساعد
مراقب ومساعد
الجنس : ذكر
عدد المساهمات : 3294
النقاط : 8204
MMS : فيس بوك العراق والعرب iq-fb.com

اهداء رد: الدرس الاول + الثانى

الأربعاء مايو 25, 2011 9:37 pm
شكرا جزيلا نتمنى ان نرى المزيد من ابداع مواضيعك المفيدة
الدرس الاول + الثانى  574714
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى