دورة XML: الدرس الثالث

نبدأ الدرس الثالث بالإجابة عن السؤال الَّذي وردنا من أكثر من زائر في الدرس الثاني ، وهوَ :

ما هي فائدة استخدام الصفات attributes ، وما الفرق بينها وبين العناصر ?

تقنيًا ، يمكنك استخدام أيٍ منهما في حفظ ما تشاء من البيانات ، طريقة الاستعلام عن البيانات في كل منهما وتعديلها وقراءتها متشابهة أيضًا .

من ناحيةٍ عمليّة ، الصفات تُستخدم غالبًا في كتابة بيانات خاصّة بالعنصر نفسه ، رقم الـ id ، رقم التصنيف ، النوع .. إلخ ، هذه البيانات يستفيد منها المطوّر ولا تهمّ المستخدم ، أمّا البيانات الَّتي يمكن الاستفادة منها حتّى مع عزلها عن العناصر الأخرى ، فيفضّل أن تُكتب في عنصرٍ مستقلّ .

أيضًا ، اللغات الَّتي بُنيت بواسطة الـ XML مثل : XSLT استفادت من الصفات ، كما سنرى لاحقًا إن شاء الله .

في النهاية ، اختيار وضع البيانات في صفة أو عنصر مستقل يعود إلى رأيك الشخصيّ .

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

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

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

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

[xml] <?xml version="1.0" encoding="utf-8"?>
<A>
<B1></B1>
<B2>
<C1>
<D1></D1>
<D2>E7san</D2>
</C1>
<C2> Learn XML</C2>
</B2>
</A>
[/xml]

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

[xml] <?xml version="1.0" encoding="utf-8"?>
<A>
<B1/>
<B2>
<C1>
<D1/>
<D2>E7san</D2>
</C1>
<C2> Learn XML</C2>
</B2>
</A>
[/xml]

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

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

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

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

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

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

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

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

<XML> X

<xMl> X

<xmle7san> X

<Xmllang> X

<xMl> X

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

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

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

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

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

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

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

[xml]

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

[/xml]

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

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

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

[xml]

<?xml version="1.0" encoding="utf-8"?>

<techwld_authors>

</techwld_authors>

[/xml]


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

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

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

[xml] <?xml version="1.0" encoding="utf-8"?>
<techwld_authors>
<author>
</author>

<author>
</author>

<author>
</author>
</techwld_authors>
[/xml]

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

1-     اسمه

2-    رقم id

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

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

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

[xml] <?xml version="1.0" encoding="utf-8"?>
<techwld_authors>
<author id="1">
<name>سعود الهواوي</name>
<skills>
<skill>برمجة تطبيقات </skill>
<skill>التعامل مع تقارير الكريستال ريبورت</skill>
</skills>
<techwld_page>http://www.tech-wd.com/wd/author/saud-hawawi/</techwld_page>
</author>

<author id="2">
<name>عبد الملك الثاري</name>
<skills>
<skill>تصميم جرافيكس</skill>
<skill>تصميم مواقع الويب</skill>
<skill>تطوير مواقع الويب</skill>
</skills>
<techwld_page>http://www.techwd.com/wd/author/althari/</techwld_page>
<blog>http://althari.ws/</blog>
</author>

<author id="3">
<name>إحسان فهمي</name>
<skills>
<skill>تصميم مواقع الويب</skill>
<skill>jتطوير مواقع الويب</skill>
</skills>
<techwld_page>http://www.tech-wd.com/wd/author/e7san/</techwld_page>
<blog>http://e7san1988.wordpress.com/</blog>
</author>
</techwld_authors>
[/xml]

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

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

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

2-     Namespaces .

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

  • السلام عليكم ..
    لجميع الزوّار اعتذاري الشديد عن تأخير طرح هذا الدرس لظروف خارج إرادتي منعتني من دخول الشبكة خلال الأسبوع الماضي .
    شكرًا لكم ^_^

  • درس اليوم شيق، كلما تعمقتوا أكثر في مسائل التطبيق التي يحتاجها المطورون، كلما ازدادت هذه الدورة تشويقا.

  • meGenius

    اقتباس:
    “وهذه هي إحدى الفروقات النحوية الهامّة بين XMLوHTML ، ففي لغة HTML تستطيع فتح وسمٍ بدون إغلاقه مثل وسم ”
    ألا تضن أن هذا الأمر نسيناه بعد ظهور XHTML فكل الوسوم التي كانت لا تغلق في HTML أصبحت – و بسبب اعتمادها على معمارية الـXML – تتطلب إغلاقاً للوسم سواءً أكان هذا منفصلاً أو في الوسم نفسه،،
    فمثلاً، وسم السطر الجديد br كان يكتب في HTML و لكن بعد ظهور XHTML أصبح يكتب و ذلك للسبب الذي ذكرته..

    تحياتي ||| meGenius

    • ما قلتَه صحيح ولا يُعارض النقطة الّتي ذُكرت ..
      HTML لغة بلا قواعد ، تستطيع كتابة الوسم دون إغلاقه واستخدام الحروف الكبيرة مع الصغيرة … إلخ
      XHTML لغة مبنية على على الـ XML لذلك هيَ تخضع لقواعدها وقوانينها .

  • درس جميل وواضح جزاك الله خيرا ,مع ملاحظة انه يُفضل الاقلال من Attributes كلما امكن بل الافضل استخدام العناصر حتى فى مفتاح التعريف لسهولة استخدام الملف مع الكثير من البرامج والتى تتجاهل الاتريبيوت

  • سميه

    اختي الكريمة إحسان : جزاك الله خيرا على هذا الشرح والدرس الممتع كتبت البرنامج ولكن لايتنفذ
    هذا هو البرنامج

    سعودالهواوي

    برمجة تطبيقات

    وهذا ما يكتب عند عملية التنفيذ :

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

    ——————————————————————————–

    ‏‏تم العثور على حرف غير صالح في محتوى النص. ‏‏خطأ في معالجة المورد ‘file:///C:/Documents and Settings/TOSHIBA/My Documents/…

    فأرجو منك أن تشرحي لي هذا الكلام وتوضحي الخطأ

    وأسعدكي الله في الدنيا والآخره على ماتفيدينا به من علم

    • سمية ..
      أرسلت لك رسالة على إيميلك
      ألم تصلكِ ؟ 🙂

  • سميه

    لقد وضعت البرنامج ولكن لم تظهر الوسوم
    لا أدري مالعمل

  • السلام عليكم ورحمة الله وبركاته.
    منذ زمن وأنا أفكر في التفرغ لتعلم لغة xml، وكنت متابعا للدروس لكن من غير تطبيق على أمل التفرغ للتطبيق، واليوم بدأت ذلك ولله الحمد، لكن هناك خطأ حدث سهوا منك أختي إحسان في كتابة الملف، ويتعلق الأمر بإغلاق وسم وهو ما جعل أختي الكريمة سمية تواجه مشكلة في عرض محتوى الملف على المتصفح، لذلك أرجو تصحيح الأمر، لأن هناك من الإخوة الكرام من قد لا يفهم الخطأ إن أراد نسخ الكود كاملا ولصقه ربحا للوقت رغم أنه يفضل كتابته من الصفر للتعود على هذه اللغة..
    أشكرك شكرا جزيلا أختي الكريمة إحسان، وجزاك الله عنا كل خير..
    مني لك أرق تحية..

    • مرحبا أخي عبد الهادي ..
      شكرًا جدًا لتنبيهك بخصوص إغلاق الوسم ، لم أنتبه إلى أن علامة الإغلاق غير مكتوبة 🙂

  • Rached Noureddine

    شكرنا جزيلا أخت إحسان لتقديم هذه الدروس
    طريقة إلقاء محببة 🙂

تعليقات عبر الفيسبوك