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


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

اهداء الدرس الثالث +الرابع

الأربعاء مايو 25, 2011 7:10 pm
الدرس الثالث +الرابع  Teacher86.net_12989900721




  • قواعد كتابة ملف الـ XML :

*

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

ورغم ذلك ، فقواعد الـ XML تسمح للمطورين بكتابة وسوم مفردة شريطة أن يتمّ إغلاق الوسم في وسم الفتح نفسه .

وكمثال ، نعود لملف الـ XML الذي قمنا بإنشائه في الدرس السابق :

الدرس الثالث +الرابع  Xml7

العنصرين B1 و D1 لا يحتاجان إلى وسم إغلاق ، هذه الوسوم تُعرف بالعناصر الفارغة Empty Elements ، ويمكن إعادة كتابة الملف السابق اختصارًا بهذا الشكل :

الدرس الثالث +الرابع  Xml8

2- لغة الـ XML حساسة لحالة الأحرف ، أي أنها تفرّق بين الحرف الكبير والحرف الصغير :

PHP كود :

<A> لا تساوي <a>

<
B1> لا تساوي<b1>

<
Ab> لا تساوي<AB>



3- أسماء العناصر لا يمكن أن تحتوي على مسافات .

4- أسماء العناصر يمكن أن تحتوي على حروف أو أرقام أو رموز مثل : * $ _

5- أسماء العناصر لا يمكن أن تبدأ بأرقامٍ أو رموز ، بل بحروفٍ دائمًا .

6- أسماء العناصر لا يمكن أن تبدأ بكلمة XML .. جميع الوسوم التالية هي وسوم خاطئة :
PHP كود :

<XML> X

<xMl> X

<xmle7san> X

<Xmllang> X

<xMl> X



7- قيم صفات العناصر يجب أن تكتب بين علامتي تنصيص ” ” .

أفضل أسلوب لكتابة عناصر الـ XML هو :

* استخدم الحروف الصغيرة عوضًا عن الكبيرة .
* اجعل أسماءك واضحة وذات معنى مباشر .
* استخدم علامة ( _ ) للفصل بين الكلمة والأخرى مثل : visitor_name أو city_code .
* لا تستخدم إحدى هذي العلامات للفصل بين الكلمات ( - : . ) .

التعليقات في ملفات XML :

مثل أي لغة ترميز أو لغة برمجة ، يمكنك كتابة ملاحظاتك في ملف XML .

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

لكتابة ملاحظة في ملف XML ، اكتب ما تريد وضعه بين هاتين العلامتين :

PHP كود :

—write any comment اكتب أي ملاحظة -->





  • تطبيق عملي لإنشاء ملف XML :

سوف ننشئ معًا ملف XML يحتوي على بيانات كتّاب مدونة جماعيَّة مثل عالم التقنيَّة .

أوّل خطوة هي اختيار اسم مناسب لعنصر الجذر ، اسم يعبّر عن محتوى الملف بوضوح ويكون مختصرًا وقصيرًا ما أمكن :

الدرس الثالث +الرابع  Xml9


بذلك نكون قد أنشأنا نواة أو أساس ملف الـ XML .

نحتاج إلى تضمين سجلات لعددٍ من كتاب عالم التقنية ، سنقم بإدخال 3 سجلات الآن .

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

الدرس الثالث +الرابع  Xml10

كل عنصر باسم author سوف يتضمن معلومات خاصَّة بكاتبٍ معين :

1- اسمه

2- رقم id

3- بعض مهاراته

4- رابط لمدونته

5- رابط آخر لصفحته في عالم التقنية

الدرس الثالث +الرابع  Xml11

قم بحفظ الملف باسم techwldAuthors.xml في مجلدٍ خاص ، سوف نستخدمه لاحقًا في الدروس إن شاء الله .

انتهى الدرس الثالث ، في الدرس الرابع بإذن الله سوف نناقش :

1- الإبحار في ملفات XML .

2- Namespaces .


الدرس الثالث +الرابع  64491

الدرس الرابع


الدرس الثالث +الرابع  Teacher86.net_12989900721



  • الإبحار في ملفات الـ XML :


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

الآن ، ماذا لو أردنا الوصول إلى بيانات كاتبٍ معين ، عن طريق رقم الـ id الخاصّ به مثلاً .. أو عن طريق اسمه أو رابط مدونته ؟

إنّ معرفتنا لاسم العنصر الَّذي يحمل بيانات الكاتب الواحد وهو لا يكفي ، لا بدّ إذًا من وجود طريقة تساعدني على الوصول إلى عناصر معيّنة ، بعبارةٍ أخرى أسلوب للإبحار في ملفات XML ” XML Files Navigation ” .

توجد طريقتين لذلك وهما :

1- استخدام لغات مخصّصة للاستعلام في ملفات XML ، وعلى رأسها :

XPath ، XQuery

هذه اللغات تقدّم أسلوبًا معيّنًا للبحث في ملف XML بالاعتماد على وجود معلوماتٍ حول العناصر ، على سبيل المثال :

  • اسم العنصر .
  • اسم أحد أبناءه .
  • اسم العنصر الأب .
  • قيمة إحدى الصفات .



2- التعامل المباشر مع الهيكل الشجريّ لملف الـ XML ، وهنا يكون الوصول للعنصر عن طريق تتبع المسار الوراثي له .

بالنسبة للغة XPath فسوف نتناولها بالتفصيل في الجزء الثاني من الدورة بإذن الله ، أمّا درسنا اليوم فسوف نتحدّث فيه عن الطريقة الثانية .

مع ملاحظة أنّنا نستطيع الجمع بين الطريقتين أثناء البرمجة .


افتح ملف techwldAuthors.xml الذي قمنا بإنشائه في المرة السابقة عبر المتصفح .

لاحظ الهيكلية الشجرية التي تحدثنا عنها في الدرس الأول ، فهم هذه الهيكلية مهمّ جدًا للتعامل مع عناصر الـ XML برمجيًا .

الدرس الثالث +الرابع  Xml-navegation-jpg

لاحظ المستويات المختلفة في الشجرة ، التي تبدأ بالجذر ، ثمّ بأبناء الجذر ، ثم بأبناء أبناءه .. وهكذا .

1- الوصول إلى العناصر سيكون عبر ترقيمها ، طريقة الترقيم سهلة جدًا لكن تحتاج إلى تركيز شديد أثناء التنفيذ ، ببساطة سوف نأخذ كل مجموعة إخوة “Siblings” ونقوم بترقيمهم بدءًا من الصفر ثم 1 .. 2 .. 3 وهكذا .

1- لكل عنصر مسار “path” يجب عبوره للوصول إليه ، المسار يبدئ من رقم الجذر 0 ويمر بجميع أرقام آباء العنصر حتى يصل إليه .

بعبارة أخرى ، كتابة مسار العنصر يشبه كتابة اسم الإنسان ! نحن نكتب اسم الفرد ثم اسم والده ثم اسم جده .. حتى نصل إلى جده الكبير ، في حالة العناصر يحدث العكس ، حيث نبدأ بكتابة رقم الجد الكبير وهو ” الجذر ” ثمّ رقم الجد الذي يليه .. حتى نصل إلى رقم الأب ثمّ رقم العنصر المراد الوصول إليه :

1- مسار الوصول إلى العنصر techwld_authors: 0 .

2- مسار الوصول إلى العنصر author : 00 .

3- مسار الوصول إلى العنصر author : 01 .

4- مسار الوصول إلى العنصر author : 02 .

5- مسار الوصول إلى العنصر name : 000 .

6- مسار الوصول إلى العنصر skills : 001 .

7- مسار الوصول إلى العنصر techwld_page : 002 .

8- مسار الوصول إلى العنصر blog : 003 .

9- مسار الوصول إلى العنصر skill: 0010 .

10- مسار الوصول إلى العنصر skill: 0011 .

لتقريب المفهوم صوريًا ، للوصول إلى العنصر blog نتبع المسار التالي 003 :

الدرس الثالث +الرابع  Xml-navegation21-jpg

أنبّه على أمرٍ مهم ، لو لاحظتم الوسم author مكرر في المستوى الواحد ، قد أجده في الخانة 0 أو 1 أو حتى 1000 ، لذلك فمن الاستحالة الوصول إليه إلاّ بمعرفة معلومات يحملها ، على سبيل المثال رقم الـ id أو اسم الكاتب name ، كذلك ينطبق الأمر على الوسم skill .. من المستحيل تحديد ما هي المهارة الَّتي أبحث عنها دون أن أعرفها ” بالنصّ ” حتى لو كنتُ قد توصلتُ لصاحبها .

بالنسبة للوسوم name , blog , skills , techwld_page فهي وسوم غير مكررة في المستوى الواحد ، دائمًا سوف يكون الوسم name في الخانة 0 والوسم blog في الخانة 3 ، لذلك فبمجرّد وصولي للوسم author يصبح بإمكاني الوصول إليها جميعًا .

أمر آخر ، المسارات الَّتي ذكرتُها سابقًا تبدأ من جذر الملف ، أستطيع أن أبدأ من أيّ عنصرٍ آخر ، على سبيل المثال إذا وصلت إلى العنصر author باتباعي المسار 002 فأستطيع مباشرةً أن أنتقل إلى 0 للوصول إلى العنصر name .

قد يبدو الأمر سهلاً ومملاً للوهلة الأولى ، لكنّ هذا نموذج صغير جدًا لملف XML .

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

ما رأيكم بكتابة مسار للوصول بجانب كل عنصر في ملف techwldAuthors.xml ؟

الدرس الثالث +الرابع  Xml12


  • XML name spaces :


اقرأ ملف الـ XML التالي :

الدرس الثالث +الرابع  XML13

هل هذا ملف XML أم XHTML ؟ O_O

في حال تشابه أسماء العناصر واختلاطها علينا فإنّنا نستخدم ما يُعرف بفضاءات الأسماء أو الـ Namespaces .

لنفرض أنّ لدينا 3 عناصر تحمل الاسم لكنّ كلاً منها يعبّر عن محتوىً مختلف ، سوف نُلحق كلّ وسم بلاحقٍ مختلف يميّزه عن الآخر .

تتكون فضاءات الأسماء في لغة xml من جزئين :

1- Prefix Name ، وهو اللاحق الذي يوضع قبل اسم العنصر لتمييزه ، ونفصل بينهما بعلامة ( : )

2- وصف الـ Name Prefix ونوضّحه في العنصر الجذر root element .


ليصبح ملفّ الـ XML بهذا الشكل :

الدرس الثالث +الرابع  XML14

ثمّ نضع تعريف لكلّ name prefix في عنصر الـ root :

صيغة التعريف هي :

PHP كود :

xmlns:prefix="URI"




ماذا نعني بالـ URI ؟

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

وبدلاً من أن يضع المطورون وصف للـ namespaces في تعريفهم له ، يشيرون إلى روابط تعرّفها وبذلك يختصرون على أنفسهم الوصف المتكرر الَّذي لا طائل له .

ليصبح الملفّ بهذا الشكل :

الدرس الثالث +الرابع  Xml15

هل سأستفيد من استخدام فضاءات الأسماء في التطوير ؟

غالبًا لا .. لكنّي أحببتُ وضعها ضمن الدروس لأنّ الكثير من اللغات والملفات المساعدة للـ XML تعتمد عليها .

على سبيل المثال ملّفات xml schema الَّتي تُستخدم لتعريف عناصر الـ xml تستخدم فضاء اسم هو / xmlns:xs=”http://www.w3.org/2001/XMLSchema” .



الدرس الثالث +الرابع  64491 الدرس الثالث +الرابع  64491 الدرس الثالث +الرابع  64491 الدرس الثالث +الرابع  64491 الدرس الثالث +الرابع  576261 الدرس الثالث +الرابع  576261 الدرس الثالث +الرابع  576261

الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى