دورة 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>https://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>https://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 .

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