ماهي لغة XML¿
إن لغة SGML شكلت الأساس الذي بنيت عليه لغة XML¡ ويمكننا القول إن XML هي لغة مجتزأة من SGML وتحمل بعض خصائصها¡ إذن لماذا لم تستخدم SGML¿ الجواب هو لأنها معقدة جدا بحيث يصعب استخدامها لتبادل العلومات عبر الويب. وحتى لغة HTML لا تصلح لهذا الغرض¡ لأنها بنيت أساسا لعرض المعلومات وليس لحفظها أو نقلها¡ فمثلا يمكن لصفحة HTML أن تعرض لك اسم المستخدم وكلمة المرور والبريد الإلكتروني وما إلى ذلك¡ ولكنها تبقى بالنسبة لملف HTML مجرد نصوص معروضة بتنسيق معين¡ وبالتالي لا يمكنك أن تطلب من ملف HTML أن يستخرج لك المعلومات المعروضة.


من هنا جاءت فكرة XML والمقصود بها Extensible Markup Language¡ وبما أنها مبنية على أساس SGML ولكن بعد استبعاد بعض التعقيدات وتبسيطها إلى أبعد حد ممكن¡ ولكن دون الخروج على القواعد العامة للغة السابقة SGML. أي أن أي ملف XML مكتوب بالقواعد الصحيحة لهذه اللغة يمكن قراءته من قبل البرنامج الذي يقرأ SGML¡ لكن العكس ليس صحيحا بالضرورة.

حقيقة XML ليست لغة برمجة بالمعنى المتعارف عليه¡ إنما هي مجموعة من القواعد التي تجعل الملف النصي يتبع شكلا معينا بحيث يسمى عندها ملف XML¡ وسنتحدث لاحقا عن هذه القواعد بإذن الله. مثلا لو أردنا أن نخزن معلومات حول اسم معين بصيغة XML¡ يمكننا كتابة الملف بالشكل التالي:
كود:
John

Doe
من هذا المثال يتضح لنا معنى Self-Describing أو الوصف الذاتي للبيانات¡ مثلا بمجرد نظرة

على هذا الكود البسيط¡ نستنتج أنه يتحدث عن اسم ¡ وأنه مقسم إلى اسم أول وقيمته John¡ وإلى اسم أخير وقيمته Doe. أي أنه يصف نفسه¡ ولا داعي لشرحه. طبعا يمكننا أن نلاحظ أن حجم الملف قد زاد بنسبة كبيرة¡ مثلا لو أردنا أن نخزن نفس البيانات بملف نص عادي يمكننا أن نكتب ببساطة John Doe وانتهى الأمر¡ لكن الحجم الصغير للملف ليس هدفا مهما بالمقارنة مع ما سنصل إليه من سهولة في قراءة المعلومات واستخراجها بطريقة منظمة سواء من قبل الشخص العادي أو من قبل برامج القراءة المختلفة.
لو حاولت كتابة الملف أعلاه على notepad وحفظه بامتداد xml¡ ومن ثم فتحه باستخدام Internet Explorer فستلاحظ أن البرنامج قام بتتنع الملف وعرضه على شكل شجره كالمبينة أدناه.

على الرغم من أن الملف لا يحتوي على أي نوع من المعلومات التي تصف كيفية عرضه¡ إلا أن برنامج Internet Explorer (الإصدار 5 فما فوق) بإمكانه تتبع الملف وعرضه بطريقة مرتبة كالتي شاهدناها¡ وذلك لاحتوائه على Stylesheet تلقائي لعرض هذه الملفات. (سنتحدث عن Stylesheet بشكل مفصل إن شاء الله عندما نتحدث عن XSLT).
متتبعات XML (XML parsers):
أذا كتبنا ملف XML متقيدين بالقواعد الموضوعة لها¡ فإننا نضمن أننا سنجد برامج جاهزة تقوم بتتبع هذا الملف¡ وبالتالي يمكنك الاستفادة من مميزات XML دون الحاجة لكتابة أكواد التتبع والتي قد تكون معقدة وصعبة¡ بل إنك ستجد متتبعات جاهزة تستخدمها لقراءة الملفات داخل برنامجك.

في الماضي لم يكن الأمر بهذه السهولة¡ كان على كاتب البرنامج أن يحدد قواعده الخاصة وأنواع الفواصل التي سيستخدمها وترتيبها. لو عدنا للمثال السابق المتعلق بالاسم¡ وأردنا تطبيقه بدون XML¡ لزم أن نضع القواعد التي تحدد أن أول كلمة في الملف هي الاسم الأول¡ ثم تأتي مسافة أو اثنتان أو أكثر¡ ثم الاسم الآخر هو الاسم الأخير¡ وماذا لو قررنا أن نضيف الاسم الأوسط¿عندها علينا تغيير المتتبع الذي كتبناه لكي يقرأ أن الكلمة الثانية هي الاسم الأوسط والكلمة الثالثة هي الاسم الأخير¿ ويتعقد الموضوع أكثر لو أردتا جعل الاسم رباعيا.
لماذا نصفها بـ Extensible¿
نصفها بهذا الوصف لأننا قادرون على تشكيل البيانات بأي صورة نشاء شريطة التقيد بالخطوط العريضة لقواعد اللغة¡ مثلا لو أردنا جعل المثال السابق أقل تعقيدا بإمكاننا أن نكتب ببساطة
John Doe
وهذا ما يميزها عن لغة HTML¡ فهي ليست قابلة لإضافات جديدة أو تشكيل البيانات بصور مختلفة¡ مثلا النص العريض في HTML يكون كالتالي Bold **** ولا يمكنك أن تظهرها بأي شكل آخر لأن متتبعات HTML الموجودة في مستعرضات الويب مكتوبة لتتعرف على هذه العلامة أو الـ tag لكي تظهر النص العريض. وبالتالي يمكننا كتابة قواعد جديدة لتكون لغات مستقلة بحد ذاتها مثل HTML ولها متتبعاتها الخاصة التي نكتبها لتقرأهذه اللغات وتستخرج البيانات منها¡ ومن الأمثلة الكثيرة على اللغات التي بنيت باستخدام XML لغة Scalable Vector Graphics (SVG) التي تصف الرسومات ثنائية الأبعاد¡ ولغة MathML لوصف المعدلات الرياضية¡ وأخرى للعناصر الكيميائية وغيرها.
المصدر: سكريبت أرابيا

0 التعليقات:

إرسال تعليق

البحث

بحث مخصص

القائمة البريدية

Enter your email address:

تابعنا

انضم الينا على الفيس بوك http://www.apha.org/NR/rdonlyres/B48602A9-5AD5-46AB-80E5-انضم الينا في تويتر

الاحصائيات

معلومات عامة

PageRank