الاثنين، 12 مارس 2012

XML - Part 1



سلام الله وعليكم ورحمته وبركاته


XML: هى اختصار Extensible Markup Language والتى تعرف بلغة الترميز الموسعة كترجمة حرفية للمصطلح، وقد جائت XML فى عام 1996 كتطور طبيعى للغة Standard Generalization Markup Language او مايعرف اختصارا SGML وهى لغة ترميز نصية استخدمت قبلا فى وصف البيانات بطريقة تشرح نفسها بنفسها او مايعرف باسم self describing اى ذاتية الوصف وتميزت هذه اللغة بالقوة ولكن عابها التعقيد وكثرة الاعتبارات فى ترميزها للبيانات مما جعلها لاتناسب تبادل البيانات عبر الشكبات بنجاح وقياسية.
  
ومن عبائتها ظهرت XML  بقوة لتقدم حلا مميزا لترميز البيانات بقياسية وسهولة، وتستخدم XML لغرض هيكلة البيانات او بناء البيانات عن طريق وصفها باوسمة بين اقواس < > مثل لغة الويب HTML غير ان HTML تختلف عنها بكون اوسمتها كلمات محجوزة سلفا او معرفة مسبقا فضلا عن كون HTML لغة ترميز تهتم بطريقة عرض البياناتاى الشكل الذى ستظهر عليه البيانات فى المتصفح مثلا - وليس بنية البيانات ذتها او وصفها.

وافضل طريقة لكى تتضح فكرة هيكلة البيانات هو تطبيق مثال لنفترض فيه ان لدينا مجموعة من الكتب المختلفة، وكل كتاب بالمجموعة له صفات تميزه مثل العنوان والمؤلف والرقم الدولى ISBN والسعر، وكل مانريده هنا هو وصف هذه المجموعة بطريقة تشرح كل عنصر وتبين قيمة صفاته – وهذا هو المفهوم الأبسط لهيكلة البيان او العنصر – بطريقة سهلة مقروءة وتتمتع بالقياسية ، ولكى يتضح المثال اكثر فسنخطو نحو تطبيقة بكلتا اللغتين - HTML و XML -  لبيان الفرق بين توصيف البيانات وهيكلتها.

الآن لدينا عدة عناصر وهى الكتب وكل عنصر منها يحتوى على مجموعة من الصفات الأساسية الخاصة به وهى العنوان والمؤلف وISBN والسعر، وجدير بالذكر ان هذه الصفات الاساسية قد يتسم بها اكثر من عنصر مع اختلاف القيم بالطبع ( مثلا وجود كتاب بعنوان اخر او مؤلف اخر وهكذا ) كما يمكن لكل عنصر ان يحتوى على صفات اضافية مثل تاريخ الاصدار او رقم الطبعة او حتى دار النشر مما يعنى وجود عناصر متشابهة فى النوع متشاركة فى وجود بعض الصفات الاساسية مختلفة فى عدد هذة الصفات وبالطبع فى قيمتها.

ولتبسيط هذا المثال تعالوا نبدأ فى توصيف عنصر واحد – كتاب واحد – بلغة HTML وبيان كيف تهتم هذه اللغة فقط بطريقة عرض العنصر على المتصفح، ثم نمضى بترميز هذا العنصر بلغة XML وبيان كيف تهتم هذه اللغة بالبيانات نفسها وطريقة تخزينها وتوصيفها فضلا عن نقلها بمعيارية قياسية.
يمكننا الآن ان نفتح ملف text ونكتب بداخلة الكود التالى والذى يمثل سطور بلغة HTML توضح عرض عنصر واحد وهو كتاب " One Hundred Years of Solitude " - مائة عام من العزلة - لماركيز:

<html>
<head>
<title> Book </title>
</head>
<body>
<p>
Title: One Hundred Years of Solitude.
<br/> Author: Gabriel Garcia Marquez.
<br/> ISBN: 128-541-99
<br/> Price: 88 L.E.
</p>
</body>
</html>

 نقوم بغلق ملف text وتغيير امتدادة من .txtالى .html وتأكيد التغيير لذلك الامتداد بالضغط على زر الموافقة (فى بعض الاحيان يكون الامتداد غير ظاهر ويمكننا اظهاره فقط بتغيير اعدادات النظام كالأتى:
(<click>Computer - <open> Organize- <click> Folder and search options - <select tab> View - <uncheck option> Hide extensions for known files types - <press> OK)
سنلاحظ تغيير شكل الايقونة الخاصة بملف text لتتحول الى ايقونة صفحات الويب والخاصة بالمتصفح المستخدم، وعند تشغيل الملف على المتصفح يظهر كالشكل 1.

Figure 1 - Book HTML


ونلاحظ ان اكواد HTML السابقة اهتمت بطريقة عرض العنصر وكيفية ظهوره على المتصفح مستخدمة فى ذلك اكواد واوسمة HTML القياسية والتى يترجم كل منها لأداء وظيفة محددة معرفة مسبقا بالضرورة مثل وسم <br/> والذى يقوم بانهاء السطر الحالى والتحرك لسطر جديد ، ومثل وسم <p> والذى يحدد فقرة كتابية جديدة، ونلاحظ ايضا ان هذه الاوسمة لاتعمل فى حالة تغيريها فلكل منها وظيفة منوطه بها.

وذلك على عكس XML والذى تحتوى اوسمته على كلمات حرة تحددها بنية العنصر فى نسق الملف - بشرط ان نلتزم بقواعد بناء الملف بالطبع - كما سنتحدث عنها لاحقا، وعليه فلو اردنا ان نصف العنصر السابق فى ملف XML فسيكون علينا ان نفتح ملف Text ونكتب بداخله الكود كالتالى:

<Book>
<Title> One Hundred Years of Solitude </Title>
<Author> Gabriel Garcia Marquez </Author>
<ISBN>128-541-99</ISBN>
<Price> 88 L.E. </Price>
</Book>

وسنغير الامتداد هذه المرة الى .xml ثم نوافق على حفظ التغيرات، وسيتغير شكل الايقونة وسيصبح ايضا بامكان المتصفح ان يفتحه ليكون كالشكل 2.

Figure 2 - Book XML


ونلاحظ من الشكل الشجرى للعرض ان المتصفح اهتم هذه المرة ببيان هيكل العنصر<Book>  ذاته وبأنه يحتوى على اربعة خصائص هى <Title> <Author> <ISBN> <Price> ولكل خاصية قيمة - المحددة بالاسود السميك مثل 88 L.E. - كما هو موضح بالشكل السابق، وبالطبع ان اردنا اضافة عناصر جديد – كتب جديدة – فان ذلك ممكنا بسهولة وستأخد ترتيبها فى الهيكل الشجرى حسب وضعها شرط ان نراعى التركيز والدقة اثناء كتابة الملف وذلك لعدم قدرة المتصفح على معالجة الاخطاء او التعامل معها مثلما يتعامل مع اخطاء ملفات HTML.

وبعد ان تعرفنا على XML يتضح ان مصطلح ترميز البيانات هذا ياتى من كونها لاتحتوى على اى اوسمه خاصة بها وانما تمثل اوسمتها العنصر وخصائصة فقط لتعطى بنية منظمة سهلة الكتابة والقراءة والحفظ وكذلك الاسترجاع ، والاكثر اهمية من ذلك هو قياسية XML نفسها بين المنصات او الاجهزة على حد سواء.

والنقطة السابقة هى من اهم المميزات والتى تعطى اللغة قوتها الحقيقية حيث يمكننا نقل بيانات الملف السابق مثلا او مشاركته بين عدة منصات او انظمة (Frameworks or Systems) مثل  (Windows, Linux, Mac... etc)، وليست المنصات والانظمة فقط بل المكونات المادية كذلك (Devises or Components) مثل  (Computers, Mobiles, PDA …etc) وهو مايعطى لهذه اللغة مرونتها وقابلية استخدامها لتمثل حلا ذكيا لتبادل البيانات وحفظها ومشاركتها الى اخر هذه العمليات الى جانب امكانية توصيف البيانات وتعريفها على ملف XML وفرض التحقق من صحتها كما سنتعلم بعد ذلك.

والتدوينة ماهى الا مدخل للتعريف بلغة الترميز الرائعة XML وستتبع لاحقا باذن الله باجزاء اخرى فى انشاء الملفات ونقلها وعملها مع قواعد البيانات الى آخر هذه الموضوعات الشيقة..

الى حينها دمتم فى رعاية الله ..


ليست هناك تعليقات:

إرسال تعليق

Microsoft Excel VBA – Part 1

سلام الله عليكم ورحمته وبركاته تأتى هذه التدوينة لا لتأصل نظريا لمفهوم VBA ...