11.07.2015 Views

طريقك إلى اكس ام ال xml

طريقك إلى اكس ام ال xml

طريقك إلى اكس ام ال xml

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

تم تحميل <strong>ال</strong>ملف من موقع<strong>ال</strong>بوصلة <strong>ال</strong>تقنيةwww.boosla.com


<strong>ال</strong>موسوعة <strong>ال</strong>عربیة للكمبیوتر/‏ قسم <strong>ال</strong>دورات <strong>ال</strong>تعلیمیةسلسلة كتب <strong>ال</strong>دورات <strong>ال</strong>تعلیمیة <strong>ال</strong>إلكترونیةC4arab.comطریقك <strong>ال</strong>ى .....<strong>اكس</strong> <strong>ام</strong> <strong>ال</strong> <strong>xml</strong>تألیفعماد عدليمشرف ساحة برمجة <strong>ال</strong>مواقع و إدارتھایسمح بتوزیع <strong>ال</strong>كتاب على صورته <strong>ال</strong>إلكترونیة لكن لا یسمح بطبع <strong>ال</strong>كتاب أو تغییر هیئتهإلا بعد أخذا إذن من <strong>ال</strong>كاتب<strong>ال</strong>موسوعة <strong>ال</strong>عربیة للكمبیوتر و<strong>ال</strong>إنترنت©‏ ‎2000-2005‎جمیع <strong>ال</strong>حقوق محفوظة -


<strong>ال</strong>تواصل مع <strong>ال</strong>قراء<strong>إلى</strong> <strong>ال</strong>قارئ <strong>ال</strong>عزیز ،،،و<strong>ال</strong>إنترنت __.حرصت <strong>ال</strong>موسوعة <strong>ال</strong>عربیة للكمبیوتر ومن منطلق اهتم<strong>ام</strong>ها <strong>ال</strong>ع<strong>ام</strong> بعلوم <strong>ال</strong>حاسب و<strong>ال</strong>تقنیةواهتم<strong>ام</strong>ها <strong>ال</strong>خاص بتقدیم هذه <strong>ال</strong>علوم ب<strong>ال</strong>لغة <strong>ال</strong>عربیة _ على تقدیم هذه <strong>ال</strong>سلسة من<strong>ال</strong>كتب <strong>ال</strong>إلكترونیة <strong>ال</strong>تى نتمنى أن تحقق طموحات <strong>ال</strong>قارئ <strong>ال</strong>عربى <strong>ال</strong>ذى اعتاد على قراءة أجود<strong>ال</strong>مطبوعات بكافة <strong>ال</strong>لغات <strong>ال</strong>ع<strong>ال</strong>میةإن <strong>ال</strong>موسوعة <strong>ال</strong>عربیة ‏_من خل<strong>ال</strong> هذه <strong>ال</strong>سلسلة تطمح لتقدیم سلسلة من <strong>ال</strong>كتب بمستوى ع<strong>ال</strong>ٍ‏ من<strong>ال</strong>شيء <strong>ال</strong>ذى لن یتحقق بدون ملاحظاتكم واقتراحاتكم حول <strong>ال</strong>سلسلة<strong>ال</strong>أخطاء <strong>ال</strong>إملائیة و<strong>ال</strong>نحویة ، <strong>ال</strong>تنظیم و<strong>ال</strong>ترتیب ، طریقة نشر <strong>ال</strong>كتاب وتوزیعه ، <strong>ال</strong>إخراج <strong>ال</strong>فنى<strong>ال</strong>خ..._ طریقة <strong>ال</strong>كتابة ،<strong>ال</strong>جودة ،ننتظر سماع أراءكم على <strong>ال</strong>برید <strong>ال</strong>إلكتروني <strong>ال</strong>مخصص لذلكebooks@c4arab.comنرجو ذكر اسم <strong>ال</strong>كتاب و<strong>ال</strong>كاتب و<strong>ال</strong>طبعة مع ذكر ملاحظاتكم لناتهانى <strong>ال</strong>سبیتمشرفة <strong>ال</strong>موسوعة <strong>ال</strong>عربیة للكمبیوتر و<strong>ال</strong>إنترنت1


هذا <strong>ال</strong>كتاب ....لیس فى <strong>ال</strong>أصل ألا دورة تم تدریسها فى ساحة <strong>ال</strong>دورات <strong>ال</strong>تعلیمیة ب<strong>ال</strong>موسوعة<strong>ال</strong>عربیة للكمبیوتر و<strong>ال</strong>إنترنت ، وتم جمع تلك <strong>ال</strong>دروس وسلسلة <strong>ال</strong>نقاش <strong>ال</strong>تىدارت حولها هنا فى هذا <strong>ال</strong>كتاب ، وتم وضع <strong>ال</strong>نقاشات على هیئة أسئلةوأجوبة لكى یستفید <strong>ال</strong>جمیع منها ،،،،،،،،،لذلك تعتبر سلسلة كتب<strong>ال</strong>دورات <strong>ال</strong>تعلیمیة :أول سلسلة كتاب إلكترونیة عربیة خاصة ب<strong>ال</strong>مبتدأین.‏<strong>ال</strong>سلسلة <strong>ال</strong>وحیدة <strong>ال</strong>تى تتبع نظ<strong>ام</strong> <strong>ال</strong>أسئلة و<strong>ال</strong>أجوبة <strong>ال</strong>ناتجة فعلاً‏ من مشاكل حقیقة لأشخاص من مختلف<strong>ال</strong>أماكن و<strong>ال</strong>دول ، مما یهیئ عندك نوع من استعداد لأى مشكلة وكیفیة <strong>ال</strong>تع<strong>ام</strong>ل معها.‏تعتبر سلسلة <strong>ال</strong>كتاب <strong>ال</strong>وحیدة <strong>ال</strong>مدعومة اربع وعشرین ساعة طو<strong>ال</strong> <strong>ال</strong>ع<strong>ام</strong> ، فیمكنك <strong>ال</strong>استفسار عن اىمشكلة وحلها عن طریق وضعها فى ساحة <strong>ال</strong>نقاش و<strong>ال</strong>أسئلة ب<strong>ال</strong>موسوعة.إن هذا <strong>ال</strong>كتاب هو من اجل نشر <strong>ال</strong>معرفة وتوسیع <strong>ال</strong>تفكیر <strong>ال</strong>منطقى <strong>ال</strong>أساسي ، <strong>ال</strong>احتراف هو لیس <strong>ال</strong>هدففى حد ذاته،‏ بل <strong>ال</strong>استطلاع واكتشاف <strong>ال</strong>ذات و<strong>ال</strong>إلم<strong>ام</strong> <strong>ال</strong>جید ب<strong>ال</strong>أساسیات و<strong>ال</strong>مبادئ <strong>ال</strong>أولیةمن اجل شق طریق <strong>ال</strong>نجاح بكل سهولة ویسر.‏••••3


<strong>ال</strong>محتويات :<strong>ال</strong>درس <strong>ال</strong>أول :ماذا قبلXML<strong>ال</strong>درس <strong>ال</strong>ثاني :مقدمة <strong>إلى</strong> تقنیةوما حولھا-:XML<strong>ال</strong>درس <strong>ال</strong>ث<strong>ال</strong>ث :لماذاXML<strong>ال</strong>درس <strong>ال</strong>رابع :<strong>ال</strong>ھرميوفیما تستخدم؟:-‏تابع منھجیة عمل مستنداتوتكوينھاXML .<strong>ال</strong>درس <strong>ال</strong>خ<strong>ام</strong>س:‏مقابلHtml XML4


<strong>ال</strong>درس <strong>ال</strong>أولماذا قبل XML.لقد قمت بكتابة ھذه <strong>ال</strong>سلسلة <strong>ال</strong>تي تصف وصف دقیق <strong>إلى</strong> تقنیات XML وإمكانیتھا وقدراتھا <strong>ال</strong>فريدة لكيتخدم <strong>ال</strong>أشخاص <strong>ال</strong>ذين يودون <strong>ال</strong>اطلاع على لغة XML ومعرفة <strong>ال</strong>مزيد عنھا وماذا يمكن أن يفعلوا بواسطتھاوكیفیة <strong>ال</strong>استفادة منھا..فھي لغة مصممه لتفید كل من يبحث عن بناء وتصمیم مواقع إنترنت ذات أساس صلب بأحدث <strong>ال</strong>تقنیاتلذلك وأيضا <strong>ال</strong>مبرمجین <strong>ال</strong>ذين يبحثوا عن لغة برمجة للإنترنت وتبادل <strong>ال</strong>معلومات و<strong>ال</strong>أشخاص <strong>ال</strong>ذين يريدوناستخد<strong>ام</strong> تقنیات قوية لاعادة تصمیم موقعھم بسھولة.متطلبات <strong>ال</strong>عمل مع . XMLجمیع ما تحتاجه <strong>إلى</strong> استخد<strong>ام</strong> XML موجود في معظم <strong>ال</strong>حواسب- برن<strong>ام</strong>ج تحرير نصوص عادى مثل <strong>ال</strong>مفكرة- متصفح يمكنه استعراض مستندات.. ( Notepad )XML مثل Internet Explorer 5.5 أو احدث ..قبل <strong>ال</strong>تعرف على تقنیات XML و<strong>ال</strong>دافع <strong>إلى</strong> تعلمھا نلقى نظرة على ھیئة <strong>ال</strong>بیانات و<strong>ال</strong>ملفات و<strong>ال</strong>نصوص ولغات<strong>ال</strong>ترمیز <strong>ال</strong>أخرى وتاريخھافلكي نفھم لغة <strong>ال</strong>ترمیز يجب علینا فھم كیفیة حفظ <strong>ال</strong>بیانات وكیفیة <strong>ال</strong>وصول لھا<strong>ال</strong>ملفات <strong>ال</strong>تي يفھمھا <strong>ال</strong>حاسب ‏.<strong>ال</strong>ملفات <strong>ال</strong>نصیة و<strong>ال</strong>ملفات <strong>ال</strong>ثنائیة.‏.فھناك نوعان رئیسان من.أولا : <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة :-وھى عبارة عن سلسلة من <strong>ال</strong>بتات (1-0) صفر و واحد ويتم <strong>ال</strong>تعرف علیھا وفھمھا بواسطة <strong>ال</strong>تطبیقات <strong>ال</strong>تيأنشأتھا ونلاحظ ذلك في عدم <strong>ال</strong>قدرة على قراءة ملف ما إلا بواسطة <strong>ال</strong>تطبیق <strong>ال</strong>ذي صنع لأجله فمثلا لو أرتفتح مستند مكتوب بواسطة برن<strong>ام</strong>ج مع<strong>ال</strong>ج كلمات ما ولنفرضفان <strong>ال</strong>ملف لم يفتح أو أنة يفتح بشكل غیر مناسب وذلك لأنة لم يعد للعمل على ھذا <strong>ال</strong>تطبیق ب<strong>ال</strong>اختلاف انهصمم لكي يناسب <strong>ال</strong>عمل على تطبیق أخر ولحسن <strong>ال</strong>حظ فان معظم تطبیقات مع<strong>ال</strong>جة <strong>ال</strong>كلمات <strong>ال</strong>یوم تحتوىعلى محولات تستطیع فتح وقراءة <strong>ال</strong>ملفات <strong>ال</strong>تي تم إنشاءه على مع<strong>ال</strong>جات أخرىMicrosoft Word على برن<strong>ام</strong>ج Word Perfect..5


أن <strong>ال</strong>میزة <strong>ال</strong>جیدة للملفات <strong>ال</strong>ثنائیة ھي سھولة فھم <strong>ال</strong>شفرات <strong>ال</strong>ثنائیة من قبل <strong>ال</strong>حاسب بما أن بنیة ،<strong>ال</strong>حاسب ھي أصلا بنیة ثنائیة تعتمد على <strong>ال</strong>وحدات و<strong>ال</strong>أصفار فان قراءة <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة ستكون أسرع منقراءة ھیئات <strong>ال</strong>ملفات <strong>ال</strong>أخرى ..وكما ذكرنا <strong>ال</strong>سیئة <strong>ال</strong>وحیدة ھي عدم <strong>ال</strong>قدرة على فتح تطبیق تم بناءة على تطبیق أخر وقد يصل <strong>ال</strong>أمر <strong>إلى</strong>عدم إمكانیة فتح وقراءة <strong>ال</strong>ملف في نفس <strong>ال</strong>تطبیق ولكن ضمن منصة تشغیل Platform مختلفة أو ضمنإصدارة سابقة لنفس <strong>ال</strong>تطبیق.‏: ثانیا<strong>ال</strong>ملفات <strong>ال</strong>نصیة.-:<strong>ال</strong>ملفات <strong>ال</strong>نصیة تشبه أيضا <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة فھیا أيضا تمثل سلسلة من <strong>ال</strong>بتاتتعمل مع بعضھا بصورة قیاسیة بحیث تشكل أرق<strong>ام</strong>ا على سبیل <strong>ال</strong>مث<strong>ال</strong>- 0).1100001ھذه <strong>ال</strong>مجموعة من <strong>ال</strong>بتات تترجم بحیث تمثل <strong>ال</strong>رقم 97 و<strong>ال</strong>ذي يتم أيضا بحیث يمثل <strong>ال</strong>حرف( 1 صفر و واحد ولكنھا. (a)وينتج عن ھذه <strong>ال</strong>شفرات <strong>ال</strong>قیاسیة أن <strong>ال</strong>ملفات <strong>ال</strong>نصیة يمكن قراءتھا من قبل معظم <strong>ال</strong>تطبیقات ھذا ب<strong>ال</strong>إضافة<strong>إلى</strong> إمكانیة قراءتھا من قبل <strong>ال</strong>بشر .6


.إذا قمنا بكتابة ملف نصي فان إي شخص في <strong>ال</strong>ع<strong>ال</strong>م يستطیع فھم لغة <strong>ال</strong>نص ويمكن قراءته بأي محرر نصوصيفضله فھو يساعد على مشاركة وتبادل <strong>ال</strong>معلومات مع <strong>ال</strong>آخرين.<strong>ال</strong>سیئة <strong>ال</strong>وحید لھذا <strong>ال</strong>نوع من <strong>ال</strong>ملفات ھو أننا لا نستطیع تھیئة <strong>ال</strong>نص <strong>ال</strong>مكتوب ب<strong>ال</strong>طريقة <strong>ال</strong>تي نرغب بھا كمافي <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة فلا نستطیع توسیط <strong>ال</strong>نص مثلا أو تلوينه بلون معین أو نجعل <strong>ال</strong>نص مائلا .تاريخ لغات <strong>ال</strong>ترمیز،-:لقد لاحظنا میزات <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة فھي سھلة <strong>ال</strong>فھم ب<strong>ال</strong>نسبة للحاسب ولاحظنا أيضا میزات <strong>ال</strong>ملفات <strong>ال</strong>نصیةفھي قابله للتشارك وتبادل <strong>ال</strong>معلومات بشكل واسع ألیست صفقة رابحة لنا أن توجد ھناك ھیئة ملفاتتجمع بین قابلیة تبادل <strong>ال</strong>معلومات <strong>ال</strong>واسعة <strong>ال</strong>تي توفرھا <strong>ال</strong>ملفات <strong>ال</strong>نصیة ب<strong>ال</strong>إضافة لفع<strong>ال</strong>یة وإمكانیات <strong>ال</strong>تخزين<strong>ال</strong>قوية <strong>ال</strong>تي توفرھا <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة ..أن ھذه <strong>ال</strong>فكرة لیست جديده فمنذ أن توفرا <strong>ال</strong>حاسب أما <strong>ال</strong>مبرمجین وھم يبحثون عن طرق لتبادل<strong>ال</strong>معلومات بین مختلف <strong>ال</strong>أنظمة و<strong>ال</strong>بر<strong>ام</strong>ج وكخطوة أولیة لذلك ظھرت لغة <strong>ال</strong>ترمیز <strong>ال</strong>معممة <strong>ال</strong>قیاسیةوھى اختصارا <strong>إلى</strong>SGML.Self DescribingStandard Generalized Markup Languge كانت تلك عبارة عن لغة نصیة تستخدم لترمیز <strong>ال</strong>بیانات مثل<strong>ال</strong>ملفات <strong>ال</strong>ثنائیة ولكن بطريقة تشرح نفسھا بنفسھا وھو ما يعرف ب<strong>ال</strong>ملفات ذاتیة <strong>ال</strong>وصفوھذه <strong>ال</strong>لغة احتلت موضعا مرموقا في <strong>ال</strong>عديد من أنظمة إدارة <strong>ال</strong>بیانات <strong>ال</strong>كبیرة فھیا تحتاج <strong>إلى</strong> <strong>ال</strong>كثیر من<strong>ال</strong>اعتبارات عن ترمیز <strong>ال</strong>بیانات <strong>ال</strong>ضخمة ونتیجة <strong>إلى</strong> ذلك أصبحت لغة معقدة جدا ولكن من <strong>ال</strong>تعقید تأتى <strong>ال</strong>قوة..و<strong>ال</strong>جدير ب<strong>ال</strong>ذكر أن <strong>ال</strong>تطبیق <strong>ال</strong>أفضل <strong>ال</strong>ذي انشق من ھذه <strong>ال</strong>لغة ، ھي لغة ترمیز <strong>ال</strong>نصوص <strong>ال</strong>متشعبةوبحیث تستخدم كلغة ترمیز ع<strong>ال</strong>میة لإظھار <strong>ال</strong>معلومات وربط أجزاء <strong>ال</strong>معلومات <strong>ال</strong>مختلفة مع بعضھاHTML...فلا نتحدث كثیرا عن HTML وطريقة عملھا وإمكانیتھا في وصف <strong>ال</strong>نصوص و إمكانیة ربطھا بصفحات شبكةأخرى وسھولة عملھا واستخد<strong>ام</strong> إي نوع من <strong>ال</strong>محررات لكتابة <strong>ال</strong>وصف <strong>ال</strong>خاص بھا و إمكانیة عرضھا على إينوع من متصفحات <strong>ال</strong>شبكة7


<strong>ال</strong>نقاش و <strong>ال</strong>اسئلةلدي ملف تم بناءه ببرن<strong>ام</strong>ج word perfect وطبعاً‏ لن أستطیع فتحه ببرن<strong>ام</strong>ج)‏ m.word ھكذا قلت)‏ولكن لنفرض أن برن<strong>ام</strong>ج m.wordھذا إصدار جديد ولیكن ‏.‏xpھل أستطیع فتح ھذا <strong>ال</strong>ملف ببرن<strong>ام</strong>جm.wordولكن إصدار ‎2000‎أو 97 مثلاً‏طبعاً‏ نظیر <strong>ال</strong>تطويرات <strong>ال</strong>كبیرة <strong>ال</strong>تى تقوم بھا <strong>ال</strong>مبرمجین لتوحید <strong>ال</strong>عمل واعتماد لغات ترمیز موحده.‏ب<strong>ال</strong>ضافة <strong>ال</strong>ى <strong>ال</strong>عدد <strong>ال</strong>كبیر من <strong>ال</strong>محولات <strong>ال</strong>مدمجة ب<strong>ال</strong>محررات <strong>ال</strong>تى تقوم بتحويل ھیئات <strong>ال</strong>نصوص <strong>ال</strong>ى ھیئاتاخرى.‏قد تجدين نتیجة لذلك ان <strong>ال</strong>ملف قد تم فتحة.‏ھل <strong>ال</strong>ملفات <strong>ال</strong>نصیة ھي <strong>ال</strong>ملفات <strong>ال</strong>تي تحوي plain text مثل <strong>ال</strong>ملفات ذات <strong>ال</strong><strong>ام</strong>تداد..‏ .txt ھىكذلك؟بینما <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة ھي <strong>ال</strong>ملفات <strong>ال</strong>تي تحوي <strong>ال</strong>نص و<strong>ال</strong>فورمات <strong>ال</strong>مصاحب له،‏ مثلrtf‏.‏ .doc orإن شاء ا<strong>ال</strong>له يكون فھمي صحیح؟!‏،تم<strong>ام</strong>كل<strong>ام</strong>ك مظبوط%100<strong>ال</strong>بتات كما فھمت انھا تترجم <strong>ال</strong>ارق<strong>ام</strong> <strong>ال</strong>ى اعدادصحیحه فمثلا رقم (79 ... ‏(فیتم ترجمة ھذا <strong>ال</strong>رقمھذا <strong>ال</strong>ى حرف.‏ ) a)سؤ<strong>ال</strong>ي كیف تتم عملیة <strong>ال</strong>ترجمة؟بمعنى انني فھمت ھذه <strong>ال</strong>نقطة وسبق ان عملتھا في <strong>ال</strong><strong>اكس</strong>یل باحد <strong>ال</strong>دو<strong>ال</strong> ؟ولكن ھل <strong>ال</strong>حاسوب ھو <strong>ال</strong>ذي يقوم بعملیة <strong>ال</strong>ترجمة من رقم <strong>ال</strong>ى حرف و<strong>ال</strong>ذي شرح ب<strong>ال</strong>ملفات<strong>ال</strong>نصیة؟يتم تحويل <strong>ال</strong>حرف a <strong>ال</strong>ى مايعادلة بنظ<strong>ام</strong> ASCII وھو <strong>ال</strong>شیفرة <strong>ال</strong>أمريكیة <strong>ال</strong>قیاسیة لتبادل <strong>ال</strong>معلومات ثم يتمتحويلة من نظ<strong>ام</strong> ASCII <strong>ال</strong>ى <strong>ال</strong>نظ<strong>ام</strong> <strong>ال</strong>ثنائى وھو <strong>ال</strong>نظ<strong>ام</strong> <strong>ال</strong>ذى يفھم <strong>ال</strong>حاسب.‏ف<strong>ال</strong>یك ھذا <strong>ال</strong>مث<strong>ال</strong> عملیا ,بعد تحويل <strong>ال</strong>حرف a <strong>ال</strong>ى ما يعادلة فى جدول <strong>ال</strong>اسكى <strong>ال</strong>مكون من وھو معرف مسبقا ‏.فمثلا حرفaھنا يساوى <strong>ال</strong>رقموتتم عملیه تحويل ھذا <strong>ال</strong>رقم <strong>ال</strong>ى <strong>ال</strong>نظ<strong>ام</strong> <strong>ال</strong>ثنائى <strong>ال</strong>ذى يفھمه <strong>ال</strong>حاسب ب<strong>ال</strong>طريقة <strong>ال</strong>ت<strong>ال</strong>یة.‏وھى قسمة <strong>ال</strong>رقم على <strong>ال</strong>ت<strong>ال</strong>ى256 حرف .2 بشكل.97= 48 ‎97/2‎خارج <strong>ال</strong>قسمة = 1= 24 ‎48/2‎خارج <strong>ال</strong>قسمة = 0= 12 ‎24/2‎خارج <strong>ال</strong>قسمة = 0= 6 ‎12/2‎خارج <strong>ال</strong>قسمة = 0= 3 2 ‏/‏‎6‎خارج <strong>ال</strong>قسمة = 0= 1 ‎3/2‎خارج <strong>ال</strong>قسمة = 1= 1 ‎1/2‎خارج <strong>ال</strong>قسمة = 1فبت<strong>ال</strong>ى يصبح <strong>ال</strong>حرف a فى لوحة <strong>ال</strong>مفاتیح مساوى للرقم <strong>ال</strong>ثنائىارجو ان يكون فھمت ماذا اقصد.‏11000018


ملفات <strong>ال</strong>جافا سكريبت و<strong>ال</strong>سي جي اي و aspما تصنیفھا ھل ھي ملفات نصیة <strong>ام</strong> ثنائیة؟وھل نعتبر ملف مثل html ملف ثنائي بما انه يحتوي على نص وفي نفس <strong>ال</strong>وقت على<strong>ال</strong>تعلیمات <strong>ال</strong>تي تحدد طريقة <strong>ال</strong>عرض؟ واذا لم يكن كذلك فماذا نصنفه ؟نحن تحدثنا عن نوعان من <strong>ال</strong>ملفات وھم <strong>ال</strong>نصیة و<strong>ال</strong>ملفات <strong>ال</strong>ثنائیة فلماذا نطلق او نربط ھذا <strong>ال</strong>نوعین من<strong>ال</strong>ملفات بلغات <strong>ال</strong>برمجة حیث ان لا علاقة بین ان كان <strong>ال</strong>لغه HTML واو غیرھا فكلھما ملفات نصیة لانكقمت بكتابتھا بطريقة نصیة داخل محررات للنصوص تتع<strong>ام</strong>ل مع <strong>ال</strong>بیانات بصورة نصیة مثل NotePad اى انك لمتقم ب<strong>ال</strong>رس<strong>ال</strong> اى معلومات اخرى تخص <strong>ال</strong>نص مثل لونة ولا حجمة ولا موقعة مثلا ما يحدث فى <strong>ال</strong>بر<strong>ام</strong>ج <strong>ال</strong>تىتعمل بنظ<strong>ام</strong> WYSIWYGارجو ان تكون تفھمت ما اقصدةاو PHPمثل.‏ MS wordھل تختلف <strong>ال</strong>بتات في <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة عنھا في <strong>ال</strong>ملفات <strong>ال</strong>نصیة لأنك ذكرت أنھا في <strong>ال</strong>ملفات<strong>ال</strong>نصیة قیاسیة؟ و اذا كانت كذلك كیف يفھمھا <strong>ال</strong>حاسب في <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة ما د<strong>ام</strong>ت غیرقیاسیة و تختص بكل برن<strong>ام</strong>ج؟لا يوجد اختلاف <strong>ال</strong>بتات ھى بتات<strong>ال</strong>حاسب لا يفھم غیر لغه واحد وھى للغة <strong>ال</strong><strong>ال</strong>ه ( صفر و واحد(‏ف<strong>ال</strong>ملفات <strong>ال</strong>ثنائیة تترجم <strong>ال</strong>ى ھذه <strong>ال</strong>لغة فى <strong>ال</strong>مرحلة <strong>ال</strong>اخیر وب<strong>ال</strong>ت<strong>ال</strong>ى يفھمھا <strong>ال</strong>حاسب بسھولھا.‏.استفسار آخر بخصوص <strong>ال</strong>بتات:‏ھل عند حفظ <strong>ال</strong>ملف <strong>ال</strong>ثنائي،‏ يقوم <strong>ال</strong>برن<strong>ام</strong>ج أو <strong>ال</strong>تطبیق بترجمة <strong>ال</strong>نص <strong>ال</strong>ى بتات و يضیف لهمعلومات خاصة ب<strong>ال</strong>تنسیق فلذلك لا يستطیع برن<strong>ام</strong>ج آخر فھمه و فتحه،‏ بینما يقوم <strong>ال</strong>برن<strong>ام</strong>ج<strong>ال</strong>مستخدم لكتابة <strong>ال</strong>ملف <strong>ال</strong>نصي بتحويله أولا <strong>ال</strong>ى بتات و من ثم <strong>ال</strong>ى أرق<strong>ام</strong> <strong>ال</strong>أسكي ثم <strong>ال</strong>ى<strong>ال</strong>حروف و <strong>ال</strong>أرق<strong>ام</strong> ؟لماذا ذكرت أنه من <strong>ال</strong>سھل على <strong>ال</strong>حاسب قراءة <strong>ال</strong>ملف <strong>ال</strong>ثنائي على عكس <strong>ال</strong>ملف <strong>ال</strong>نصي؟<strong>ال</strong>بتات فتتم <strong>ال</strong>عملیة كما ذكرتى وبفضل <strong>ال</strong>محولات <strong>ال</strong>متطورة قد تنجح بعض <strong>ال</strong>تطبیقات ب<strong>ال</strong>تع<strong>ام</strong>ل مع ملفات تمانتاجھا بواسطة تطبیقات اخرى.‏<strong>ام</strong>ا بخصوص سھولة تع<strong>ام</strong>ل <strong>ال</strong>حاسب مع <strong>ال</strong>ملفات <strong>ال</strong>ثنائیة لانھا ھى لغة <strong>ال</strong>حاسب <strong>ال</strong>تى تترجم جمیع <strong>ال</strong>تطبیقات<strong>ال</strong>ى ھذه <strong>ال</strong>لغة.‏فمثل انتى تجدين <strong>ال</strong>تع<strong>ام</strong>ل مع <strong>ال</strong>لغة <strong>ال</strong>عربیة وقد لا تجدين <strong>ال</strong>تع<strong>ام</strong>ل مع <strong>ال</strong>لغة <strong>ال</strong>یابانیة فايھم اسھل للتخاطبب<strong>ال</strong>تاكید <strong>ال</strong>لغة <strong>ال</strong><strong>ام</strong> لكى ف<strong>ال</strong>حاسب لغه <strong>ال</strong><strong>ام</strong> ھى لغه <strong>ال</strong>بتات صفر و واحدتم نقاش <strong>ال</strong>درس <strong>ال</strong>اول بحمد ا<strong>ال</strong>له9


<strong>ال</strong>درس <strong>ال</strong>ثانيمقدمة <strong>إلى</strong> تقنیة XMLوما حولها-:XMLلغة <strong>ال</strong>ترمیز <strong>ال</strong>موسعة eXtensible Markup Language <strong>ال</strong>تي يرمز لھا ب<strong>ال</strong>اختصار وھى تستخدم فيوصف وتخزين وتنظیم <strong>ال</strong>بیانات بخلاف لغة HTML <strong>ال</strong>تي تستخدم لكیفیة عرض <strong>ال</strong>بیانات على <strong>ال</strong>متصفح..تحدثنا سابقا عن لغة SGML وذكرنا إنھا لغة معقدة لا تصلح لتبادل <strong>ال</strong>معلومات عبر <strong>ال</strong>شبكة وعلى <strong>ال</strong>رغم منأنھا لغة لوصف <strong>ال</strong>بیانات على <strong>ال</strong>متصفح ولا يمكن استخلاص معلومات معینة حول شخص ما ولسبب قصور لغةHTML في قدرتھا على وصف أنواع محددة من <strong>ال</strong>معلومات دعت <strong>ال</strong>حاجة لوجود لغة تحقق ذلك وھى لغة<strong>ال</strong>ترمیز <strong>ال</strong>موسع أو XML وھى لغة أيضا مشتقة من لغة ومتوافقة بصورة كبیرة مع ھذه <strong>ال</strong>لغة.‏ ھذايعنى إن أي مستند يتبع مصطلحات وتعابیر لغة XML فأنة يتبع أيضا مصطلحات وتعابیر لغةSGML.SGMLوھنا يجب ملاحظة شي ھ<strong>ام</strong> أن لغة XML لیست لغة في <strong>ال</strong>أصل فا XML تصف مجموعة من <strong>ال</strong>تعابیر <strong>ال</strong>تيتستخدمھا لبناء لغاتك <strong>ال</strong>خاصة على سبیل <strong>ال</strong>مث<strong>ال</strong> لنفترض أن لدينا بیانات حول اسم شخص ما وانك تريدتبادل ھذه <strong>ال</strong>بیانات مع <strong>ال</strong>آخرين يمكنك تمثیل ھذه <strong>ال</strong>بیانات في ملف نصي ب<strong>ال</strong>صورة <strong>ال</strong>ت<strong>ال</strong>یة.‏أو بصیغة HTML بھذا <strong>ال</strong>شكلEmad Adly.يمكن تمثیل ھذه <strong>ال</strong>بیانات في XML ب<strong>ال</strong>شكل <strong>ال</strong>ت<strong>ال</strong>ي.ذكرنا سابقا أن لغة SGML وXML تسمیان ب<strong>ال</strong>غات ذاتیة <strong>ال</strong>وصف لان <strong>ال</strong>بیانات يمكنھا بسھولة معرفة أن ھذه<strong>ال</strong>معلومات تمثل اسم Name لشخص ما وأيضا ھناك بیانات تسمى ‏و بیانات أخرى تسمى يجب آن تكون ذات معنى طبعا <strong>ال</strong>معنى يدل على محتوى <strong>ال</strong>معلومة بداخلھا.10


.لو قمنا بحفظ <strong>ال</strong>ملف <strong>ال</strong>سابق باسم name.<strong>xml</strong> فیمكنا فتح ھذا <strong>ال</strong>ملف بواسطة متصفح <strong>ال</strong>إنترنت لديك بشرطأن لا يقل عن 5.5 وسوف يظھر بھذا <strong>ال</strong>شكل(-).وب<strong>ال</strong>رغم من أن ملف XML <strong>ال</strong>سابق لا يحتوى على إي معلومات حول كیفیة <strong>ال</strong>عرض فان <strong>ال</strong>متصفح ق<strong>ام</strong>باستعراض <strong>ال</strong>ملف بصورة لطیفة وبتنسیق لونى مختلف وأيضا <strong>ال</strong>بنیة <strong>ال</strong>شجرية <strong>ال</strong>تي فھمھا <strong>ال</strong>متصفح وترجمھاأيضا وذلك ب<strong>ال</strong>نقر على <strong>ال</strong>رمز بجانب <strong>ال</strong>بند وھذه <strong>ال</strong>طريقة مفیدة جدا عندما يكون <strong>ال</strong>ملف كبیر<strong>ال</strong>حجم.ونلاحظ أننا لم نقم بوصف <strong>ال</strong>بیانات لكي تظھر بھذا <strong>ال</strong>تنسیق <strong>ال</strong>موجود ولكن ھذا ما يقدمه لنا متصفح <strong>ال</strong>إنترنتفلھذا <strong>ال</strong>متصفح ورقة تنسیق Style Sheet افتراضیة مبیتة داخلة مما يمكن <strong>ال</strong>متصفح من عرض إي مستندXML وفق ورقة <strong>ال</strong>تنسیق ھذهوبھذا قد عرفنا مقدمة بسیطة <strong>إلى</strong> ھذه <strong>ال</strong>لغة وفى <strong>ال</strong>درس <strong>ال</strong>قادم سوف نتحدث عن <strong>ال</strong>أسباب <strong>ال</strong>تي تدفعن<strong>ال</strong>تعلم ھذه <strong>ال</strong>لغة .و<strong>ال</strong>جدير ب<strong>ال</strong>ذكر أن لغة XML تتطلب منا بعض <strong>ال</strong>قوانین <strong>ال</strong>محددة لكتابه وثائق XML قابلة للعرضHTML فیھا أيضا تتطلب دراية بطريقة كتابه <strong>ال</strong> Tags <strong>ال</strong>خاص بھا..معربات لغة -: XML Parsersمثلھا مثل لغة..إذا اتبعنا <strong>ال</strong>قوانین <strong>ال</strong>محددة وفق لغة XML يمكننا <strong>ال</strong>وثوق من سھولة استخلاص <strong>ال</strong>معلومات يعود ذلك <strong>إلى</strong>وجود برمجیات تسمى ب<strong>ال</strong>معربات Parsers وظیفتھا قراءة عبارات XML واستخلاص <strong>ال</strong>معلومات من تلك<strong>ال</strong>عباراتوھى تستخدم في بر<strong>ام</strong>جنا للتع<strong>ام</strong>ل مع مستندات..XML. XMLفلا داعي للقلق حول كیفیة استخلاص <strong>ال</strong>معلومات من ملفات ف<strong>ال</strong>یوم افضل من <strong>ال</strong>أمس في <strong>ال</strong>ماضيوقبل استخد<strong>ام</strong> ھذه <strong>ال</strong>معربات كان يتحتم علیك <strong>ال</strong>قی<strong>ام</strong> ب<strong>ال</strong>كثیر من <strong>ال</strong>عمل لبناء قوانین تحكم ھذه <strong>ال</strong>معلوماتولكن <strong>ال</strong>آن مع صیغة XML يمكنك فقط إعطاء معرب لغة XML ملفا كما يلي-:سیقوم <strong>ال</strong>معرب باستخلاص <strong>ال</strong>بیانات من ھذه <strong>ال</strong>شفرة وسیخبرنا بأن ھناك بندا للبینات باسم وأن <strong>ال</strong>معلومة<strong>ال</strong>مرفقة لھذا <strong>ال</strong>بند ھي Emad ولا يتحتم على معرب XML معرفة أي قوانین حول موضع <strong>ال</strong>اسم من <strong>ال</strong>بیانات .11


أن <strong>ال</strong>شفرة <strong>ال</strong>مكتوبة بلغة XML مھما كان نوعھا لا تؤثر في عمل <strong>ال</strong>معرب فان كنت كتبت شفرة XMLب<strong>ال</strong>إنجلیزية أو ب<strong>ال</strong>عربیة أو بأية لغة أخرى فجمیعھا يمكن قراءتھا وفھمھا بنفس <strong>ال</strong>معرب وحتى إذا كان<strong>ال</strong>شخص <strong>ال</strong>ذي كتبھا لا يعرف شي عن ھذه <strong>ال</strong>لغة..لغة XML لغة مرنة بدرجة كبیرة فھي تھدف <strong>إلى</strong> أن تكون <strong>ال</strong>أساس للغات تبادل <strong>ال</strong>معطیات <strong>ال</strong>مختلفة خاصةعبر <strong>ال</strong>إنترنت فھي تجعل من تشارك <strong>ال</strong>ملفات و<strong>ال</strong>معلومات على <strong>ال</strong>إنترنت وتبادلھا مس<strong>ال</strong>ة سھله جدا.‏<strong>ال</strong>ترمیز <strong>ال</strong>موسع :- Extensible.باعتبار أنة يمكننا <strong>ال</strong>تحكم بصورة ك<strong>ام</strong>لة في تكوين مستندات XML فیمكننا أن نشكل <strong>ال</strong>بیانات ب<strong>ال</strong>طريقة <strong>ال</strong>تيتحلو لناأو قررنا عدم احتیاجنا لمرونة اكبر في <strong>ال</strong>مث<strong>ال</strong> <strong>ال</strong>سابق فنقوم بكتابة <strong>ال</strong>شفرة ب<strong>ال</strong>طريقة <strong>ال</strong>ت<strong>ال</strong>یة..أنت حر في طريقة تمثیل <strong>ال</strong>بیانات يتوقف ذلك على <strong>ال</strong>طريقة <strong>ال</strong>تي تمكن بر<strong>ام</strong>جنا من استخد<strong>ام</strong> ھذه <strong>ال</strong>بیاناتأما إذا أردت استخد<strong>ام</strong> <strong>ال</strong>مرونة <strong>ال</strong>متوافرة <strong>xml</strong> فیمكنك <strong>ال</strong>قی<strong>ام</strong> بذلك فاختار ما يناسب احتیاجاتك....من ھنا جاءت تسمیة ھذه <strong>ال</strong>لغة ب<strong>ال</strong>ترمیز <strong>ال</strong>موسع أو Extensible فان أي شخص يستطیع ترمیز <strong>ال</strong>بیاناتنفسھا بأي طريقة باستخد<strong>ام</strong> ھذه <strong>ال</strong>لغةولكن يجب أن نأخذ ب<strong>ال</strong>حسبان أنه تكمن <strong>ال</strong>استفادة <strong>ال</strong>حقیقیة من لغة XML عندما يستخدم <strong>ال</strong>أشخاص نفس<strong>ال</strong>ھیئة لتمثیل <strong>ال</strong>بیانات <strong>ال</strong>شائعة لان ذلك سیسمح بتبادل <strong>ال</strong>معلومات بصورة اكبر واسھل.ھناك فعلا <strong>ال</strong>عید من <strong>ال</strong>مشاريع للوصول <strong>إلى</strong> مفردات قیاسیة لأنواع <strong>ال</strong>بیانات <strong>ال</strong>شائعة <strong>ال</strong>استخد<strong>ام</strong> فعلا سبیل .أو SVG وھى مفردات<strong>ال</strong>مث<strong>ال</strong> لغة <strong>ال</strong>رسومیات <strong>ال</strong>شعاعیة <strong>ال</strong>قابلة للتوسع<strong>ال</strong>تي تمثل قاعدة أساسیة لتمثیل <strong>ال</strong>رسومیات ثنائیة <strong>ال</strong>بعدXMLScalable Vector Graphics.ولغةMathMLوھى مفردات XML لوصف <strong>ال</strong>رياضیات كقاعدة أساسیة لاتص<strong>ال</strong> <strong>ال</strong>آلات ببعضھا <strong>ال</strong>بعض.ولغة <strong>ال</strong>ترمیز <strong>ال</strong>كیمیائیة Chemicalأو Markup LanguageCML ھي مفردات XML لأداره <strong>ال</strong>معلومات <strong>ال</strong>كیمیائیةوأيضا لغة<strong>ال</strong>خلويةWMLوھى لغة ترمیز <strong>ال</strong>لاسلكي و<strong>ال</strong>مستخدمة في بناء مواقع يمكن تصفحھا باستخد<strong>ام</strong> <strong>ال</strong>ھواتف12


وھناك <strong>ال</strong>كثیر من <strong>ال</strong>مفردات <strong>ال</strong>متخصصة في مج<strong>ال</strong>ات أخرى تجعل من كتابة <strong>ال</strong>بیانات باستخد<strong>ام</strong> XML خاصة بناإلا إن استخد<strong>ام</strong> <strong>ال</strong>مفردات <strong>ال</strong>قیاسیة يساعدك على زيادة توافقیة مستندات XML مع <strong>ال</strong>برمجیات <strong>ال</strong>أخرى.‏مما تتكون لغة XML ؟تعتبر تقنیة XML عائلة خاصة بذاتھا بعضھا ما يز<strong>ال</strong> في قید <strong>ال</strong>تطوير في سنواته <strong>ال</strong>أولى..ولكل فرد في ھذه <strong>ال</strong>عائلة موصفاته <strong>ال</strong>خاصة <strong>ال</strong>نسخة XML 1.0 ھي <strong>ال</strong>قاعدة <strong>ال</strong>أساسیة <strong>ال</strong>تي تبنى علیھاXML فھي تصف <strong>ال</strong>تراكیب <strong>ال</strong>تي يجب على مستند XML اتباعھا وكذلك <strong>ال</strong>قوانین <strong>ال</strong>تي يجب على معرباتتطبقھا ب<strong>ال</strong>إضافة <strong>إلى</strong> تعاريف أنواع <strong>ال</strong>مستنداتXML.sDTDلغة Xpathوھى أيضا جزء لا يتجزأ من تقنیة XML وھى لغة <strong>ال</strong>استعل<strong>ام</strong> لعنونة <strong>ال</strong>أقس<strong>ام</strong> في مستندفھي تمكن <strong>ال</strong>تطبیقات من إيجاد معلومات محدده ضمن مستندXML. XMLXMLتدخل لغة CSSضمن عائلة XML أيضا وذلك في ح<strong>ال</strong>ات استعراض مستندات <strong>ال</strong>بسیطة ويمكن <strong>ال</strong>عوضعنھا باستخد<strong>ام</strong> لغة XSL وذلك في <strong>ال</strong>ح<strong>ال</strong>ات <strong>ال</strong>معقدة وھى تتضمن تحويلات خاصة تسمى ھذه<strong>ال</strong>تحويلات و<strong>ال</strong>تي تستخدم لتحويل مستندات XML <strong>إلى</strong> أنواع مستندات أخرى ‏.بإضافة <strong>إلى</strong> أسلوبعرض <strong>ال</strong>معلوماتXSLT.XLink و<strong>ال</strong>أختان XPointer ھما لغتان تستخدما لربط مستندات XML مع بعضھما <strong>ال</strong>بعض بصورة مشابھ<strong>ال</strong>لوصلات <strong>ال</strong>تشعبیه في مستندات. HTMLنموذج كائن <strong>ال</strong>مستندتع<strong>ام</strong>ل من قبل مع لغةDocument Object ModelJavaScript و DHTMLأو DOM ھذا <strong>ال</strong>نوع من عائلة XML ھو معروف جیداً‏ لمنألم تمر علیك جملة Document.write قبل ذلك.فھذا <strong>ال</strong>كائن يمكنه ربط مستندات XML مع لغات برمجة أخرى مع إمكانیة <strong>ال</strong>إضافة و<strong>ال</strong>حذفمستندات XML بواسطة لغتك <strong>ال</strong>مفضلة<strong>ال</strong>تعديل داخل.13


<strong>ال</strong>نقاش و<strong>ال</strong>أسئلةلدي تساؤل حول <strong>ال</strong>تقنیات <strong>ال</strong>موجودة في عائلة <strong>ال</strong>ترمیز <strong>ال</strong>موسع،‏ فعلى سبیل <strong>ال</strong>مث<strong>ال</strong>:‏لوصف <strong>ال</strong>رياضیات كقاعدة أساسیة لاتص<strong>ال</strong> <strong>ال</strong>آلات ببعضھا <strong>ال</strong>بعض،‏ ھل يعني ذلكأن ترمیز <strong>ال</strong>بیانات باستخد<strong>ام</strong> ھذه <strong>ال</strong>لغة تقرأه <strong>ال</strong>آت <strong>ال</strong>تي تتصل ببعضھا <strong>ال</strong>بعض؟!‏ بمعنى أن تكون<strong>ال</strong>آلة أو برن<strong>ام</strong>ج فیھا قادر على نفسیر واستخلاص بیانات <strong>ال</strong>اتص<strong>ال</strong> <strong>ال</strong>مرمزة بھذه <strong>ال</strong>لغة؟!‏نفس <strong>ال</strong>شئ ب<strong>ال</strong>نسبة ل CMLو ؟؟WMLلغة MathML-1ب<strong>ال</strong>نسبة ل MathML و CMLو WMLكلھما لغات مشتقة من XML اى انھا تتبع نفس قواعد XML ولكنھا تمتحديد مواصفاتھا <strong>ال</strong>قیاسیة لكى تتناسب مع <strong>ال</strong>ھدف من استخد<strong>ام</strong>ھا ‏.كي تسھل وتوحد <strong>ال</strong>عمل مع مستعملیھابصورة قیاسیة موحدة متفق علیھا مسبقاذلك بتخصیص بعض <strong>ال</strong>عناصر و<strong>ال</strong>صفات <strong>ال</strong>محدده <strong>ال</strong>تى تصف اشیاءمعینة ذات اھمیة لكون <strong>ال</strong>لغة.‏انت كتبت:‏ ‏"فھذا <strong>ال</strong>كائن يمكنه ربط مستندات XML مع لغات برمجة أخرى مع إمكانیة <strong>ال</strong>إضافةو<strong>ال</strong>حذف <strong>ال</strong>تعديل داخل مستندات XML بواسطة لغتك <strong>ال</strong>مفضلة"‏يعني لو انا ابرمج ب<strong>ال</strong>جافا و صاحبي يبرمج ب<strong>ال</strong> C# فھل نستطیع <strong>ال</strong>تع<strong>ام</strong>ل مع نفس <strong>ال</strong>بیانات منخل<strong>ال</strong> <strong>ال</strong> XML ؟تحدثت عن <strong>ال</strong>كائن DOM فاى لغة يمكنھا <strong>ال</strong>تع<strong>ام</strong>ل مع ھذا <strong>ال</strong>كائن تسطیع <strong>ال</strong>تحكم فى ملفاتXMLلیس معنى ذلك انك لاتستطیع <strong>ال</strong>اتص<strong>ال</strong> بملفات XML بواسطة لغات مختلفة ولكن تستطیع فعل ذلك ببساطبواسطة بعض <strong>ال</strong>قوانین <strong>ال</strong>خاصة <strong>ال</strong>تى تخلتلف من لغه برمجة <strong>ال</strong>ى اخرى.‏وللتأكید أحب أقول وب<strong>ال</strong>تجربة أنه بإمكانك استخد<strong>ام</strong> ملفات <strong>xml</strong> ذاتھا في أكثر من برن<strong>ام</strong>ج وكل برن<strong>ام</strong>ج مبرمجبلغة مختلفةھذه بعض <strong>ال</strong>أسئلة:‏لماذا عرض <strong>ال</strong>متصفح <strong>ال</strong>ملف ولم يعرض <strong>ال</strong>أسم <strong>ال</strong>مكتوب فقط؟لان لغة XML تستخدم في وصف وتخزين وتنظیم <strong>ال</strong>بیانات.‏و<strong>ال</strong>متصح لم ياخذ منك اى تعلیمات يستعملھا فى كیفیة عرض <strong>ال</strong>بیانات ف<strong>ال</strong>وضع <strong>ال</strong>افتراضى لة ان يظھر بھذا<strong>ال</strong>شكل.‏ولكن لك شخص غايتة فى شكل عرض ھذه <strong>ال</strong>بیانات .سنتعرف فى درس اخرى كیفیة <strong>ال</strong>تحكم فى عرض <strong>ال</strong>بینات على <strong>ال</strong>متصفح ب<strong>ال</strong>طريقة <strong>ال</strong>مرغوبةھذا مجرد مث<strong>ال</strong> للتوضیح فقط.‏..‏-‏‎2‎ھل ھذه وظیفة <strong>ال</strong> <strong>xml</strong>عرض <strong>ال</strong>ملفات بتنسیق لوني وب<strong>ال</strong>بنیة <strong>ال</strong>شجرية؟اعتقد اجابة <strong>ال</strong>سؤ<strong>ال</strong> <strong>ال</strong>اول ستفید فى ھذا <strong>ال</strong>سؤ<strong>ال</strong> ولكن انتظرى ايضا <strong>ال</strong>درس <strong>ال</strong>قادم فھو يوضح لك لماذانستخدمXML‏-‏‎3‎ھل من <strong>ال</strong>ممكن تغییر <strong>ال</strong>ورقة <strong>ال</strong>إفتراضیه للمتصفح؟ب<strong>ال</strong>تاكید طبعا وذلك عندما تتحكم فى طريقة عرض <strong>ال</strong>بیانات على <strong>ال</strong>متصفح.‏‏-‏‎4‎<strong>ال</strong>معربات ھل ھي عملیة يقوم بھا <strong>ال</strong>متصفح؟توجد انواع عديد من <strong>ال</strong>معربات منھا <strong>ال</strong>معرب <strong>ال</strong>موجود داخل متصفح <strong>ال</strong>انترنت وتوجد معربات كثیرة اخرى يمكن<strong>ال</strong>تع<strong>ام</strong>ل معھا سوف اشرحھا ب<strong>ال</strong>تفصیل فى <strong>ال</strong>درس <strong>ال</strong>رابع.‏ماھيRSS ؟ ماھي فائدتھا؟ وھل لھا علاقة ب <strong>xml</strong>؟فھیا مشتقة من XML لوصف وعرض قوائم <strong>ال</strong>عناوين <strong>ال</strong>ضخمة لمواقع <strong>ال</strong>اخبار<strong>ام</strong>ابخصوص RSS14


لماذا XML<strong>ال</strong>درس <strong>ال</strong>ث<strong>ال</strong>ثوفیما تستخدم؟:-‏تقنیة XML ھي تقنیة حديثة وفى دور <strong>ال</strong>تطوير ح<strong>ال</strong>یا وھى كما عرضنھا سابقا في ھذه <strong>ال</strong>سلسلة وعرفنا ماھي XML ‏.سوف نوضح ھنا ما <strong>ال</strong>ذي تقدمه لنا ھذه <strong>ال</strong>لغة...تعرفنا سابقا أن لبناء مستندات XML يجب علینا معرفة أشیاء وتعلیمات كثیرة فلماذا نستخدم كل ھذه<strong>ال</strong>أمور ألیس من <strong>ال</strong>سھل وضع بعض <strong>ال</strong>قوانین لمث<strong>ال</strong> مستند <strong>ال</strong>أسماء <strong>ال</strong>سابق شرحه في <strong>ال</strong>درس <strong>ال</strong>سابقونضع بعض <strong>ال</strong>معايیر لذلك فمثلا يمكننا <strong>ال</strong>قول أن <strong>ال</strong>اسم <strong>ال</strong>أول يبدأ عند بداية <strong>ال</strong>ملف و<strong>ال</strong>اسم <strong>ال</strong>أخیر يأتي بعد<strong>ال</strong>فراغ <strong>ال</strong>أول بھذه <strong>ال</strong>طريقة يمكن لتطبیقنا أن يقرا بیانات <strong>ال</strong>اسم <strong>ال</strong>أول بصورة منفصلة عن <strong>ال</strong>اسم <strong>ال</strong>أخیر..،.ولتوضیح ذلك:لنفترض إننا نريد إضافة <strong>ال</strong>اسم <strong>ال</strong>أوسط لمث<strong>ال</strong>نا فیصبح ھكذا.Emad Adly Faik.وأيضا عند إضافة ھذه <strong>ال</strong>عملیة لا يوجد إي مشكلات يمكننا تعديل <strong>ال</strong>قانون <strong>ال</strong>سابق بحیث إن كل شي يأتيبعد <strong>ال</strong>فراغ <strong>ال</strong>أول وقبل <strong>ال</strong>فراغ <strong>ال</strong>ثاني يمثل <strong>ال</strong>اسم <strong>ال</strong>أوسط وما يأتي بعد <strong>ال</strong>فراغ <strong>ال</strong>ثاني يمثل <strong>ال</strong>اسم <strong>ال</strong>أخیر.،<strong>إلى</strong> <strong>ال</strong>آن يمكننا تمثیل <strong>ال</strong>بیانات باستخد<strong>ام</strong> ھذا <strong>ال</strong>قانون وتنفیذه برمجیا،ولكن ماذا لو قابلنا اسم ك<strong>ال</strong>ت<strong>ال</strong>ي.Emad Adly Faik Gabala<strong>ال</strong>آن لدينا اسمین أوسطین . ھنا يصبح <strong>ال</strong>قانون اكثر تعقیدا وعلما إن <strong>ال</strong>بشر تستطیع تمیز <strong>ال</strong>اسم <strong>ال</strong>أوسط من<strong>ال</strong>اسم <strong>ال</strong>أول من <strong>ال</strong>اسم <strong>ال</strong>أخیر بسھولة فانه من <strong>ال</strong>صعب برمجة ذلك بطريقة منطقیة بحیث يمكن <strong>ال</strong>حاسب منتمیز ذلك بسھولة ..للأسف فان معظم <strong>ال</strong>مبرمجین عندما يواجھون مشكله من ھذا <strong>ال</strong>نوع يتصرفون لوضع قوانین صارمة بدلا من<strong>ال</strong>تع<strong>ام</strong>ل مع <strong>ال</strong>بیانات <strong>ال</strong>معقدة كما ھي ف<strong>ال</strong>مشكلة <strong>ال</strong>أسماء كما سبق يمكن لمطوري <strong>ال</strong>بر<strong>ام</strong>ج أن يقرروا أنللشخص <strong>ال</strong>واحد اسم أوسط واحدا فقط ولا يمكن للتطبیق قبول أكثر من ذلك.15


ف<strong>ال</strong>مث<strong>ال</strong> <strong>ال</strong>سابق لیس صعب <strong>ال</strong>تطبیق ولكن ھو يسلط <strong>ال</strong>ضوء حول <strong>ال</strong>أسباب <strong>ال</strong>جوھرية <strong>ال</strong>تي أدت لظھور لغةف<strong>ال</strong>مبرمجین يستطیعون تنظیم بیاناتھم بعدد غیر محدد من <strong>ال</strong>طرق وفى كل طريقة من <strong>ال</strong>طرق نظ<strong>ام</strong>معین لاستخلاص <strong>ال</strong>معلومات <strong>ال</strong>تي نحتاجھا باستخد<strong>ام</strong> لغة.XML.XML<strong>إلى</strong> ھنا قد ذكرنا مث<strong>ال</strong> بسیط جدا لتوضیح ابسط <strong>ال</strong>أشیاء <strong>ال</strong>تي تدفعنا كمطورين <strong>إلى</strong> <strong>ال</strong>دخول <strong>إلى</strong> ع<strong>ال</strong>موحتى إن كان ھذا <strong>ال</strong>مث<strong>ال</strong> غیر مفھوم للمرة <strong>ال</strong>أولي فلا تقلق سیمكنك <strong>ال</strong>تمیز و<strong>ال</strong>توسع اكثر عند <strong>ال</strong>بدء فيتشغیل وكتابة مستندات .XML. XML..كما يمكن للغة XML <strong>ال</strong>عمل على إي منصة تشغیل فھیا لیست مخصصه للعمل عن نظ<strong>ام</strong> عین مثل فيمخصص للعمل على منصات ويندوز فیمكنك استخد<strong>ام</strong>ھا على إي نظ<strong>ام</strong> تشغیل ح<strong>ال</strong>ي أوسوف يظھر مستقبلاWebBasic Visualفمن <strong>ال</strong>أشیاء <strong>ال</strong>رائعة عند استخد<strong>ام</strong>ك ل XML ھو تقلیص زمن <strong>ال</strong>تحمیل على خادمات <strong>ال</strong>شبكةب<strong>ال</strong>إضافة <strong>إلى</strong> عملیات إرس<strong>ال</strong> واستقب<strong>ال</strong> كمیات ضخمة من <strong>ال</strong>معلومات بین جھاز <strong>ال</strong>زبون و<strong>ال</strong>خادم.html...Serverوأيضا من <strong>ال</strong>میزات <strong>ال</strong>جمیلة في <strong>ال</strong>تع<strong>ام</strong>ل مع ملفات XML ھي إمكانیة تحويل ملفاتXML <strong>إلى</strong> ملفاتبسهوله لعرضها بشكل جمیل على <strong>ال</strong>متصفح وذلك بواسطة محولات . XSLT أو أن تعرض مباشرة عبر <strong>ال</strong>متصفح بواسطةورقة <strong>ال</strong>تنسیق css كما في <strong>ال</strong>مث<strong>ال</strong> <strong>ال</strong>أولاستدعاء <strong>ال</strong>إجراءات <strong>ال</strong>بعیدة فهیا تستخدم بروتوكول RPC لذلك فھو يسمح للكائنات <strong>ال</strong>موجودة على جھاز ما باستدعاء<strong>ال</strong>كائنات <strong>ال</strong>موجودة على جھاز أخر للقی<strong>ام</strong> بعمل ما.أما في مج<strong>ال</strong> <strong>ال</strong>تجارة <strong>ال</strong>إلكترونیة أحد <strong>ال</strong>مواضیع <strong>ال</strong>ساخنة ح<strong>ال</strong>یا في <strong>ال</strong>إنترنت <strong>ال</strong>تي ستظل ساخنة لفترةطويلة ‏.فمعظم <strong>ال</strong>شركات <strong>ال</strong>یوم تقر بضرورة ربط عملائھا معھا عبر <strong>ال</strong>إنترنت بد من استخد<strong>ام</strong> <strong>ال</strong>طرق <strong>ال</strong>تقلیديةفكلما احتاجت شركة ما لإرس<strong>ال</strong> بیاناتھا <strong>إلى</strong> جھة أخرى عبر <strong>ال</strong>إنترنت فان <strong>xml</strong> ھي <strong>ال</strong>تقنیة <strong>ال</strong>أفضل لذلكباعتبار أن <strong>ال</strong>ھدف من وراءھا ھو تبادل <strong>ال</strong>معلومات و<strong>ال</strong>تشارك علیھافھناك <strong>ال</strong>كثیر و<strong>ال</strong>كثیر من <strong>ال</strong>أماكن <strong>ال</strong>تي تقدم لنا فیھا تقنیة..XML<strong>ال</strong>فائدة <strong>ال</strong>تي نرجوھا.‏16


<strong>ال</strong>نقاش و <strong>ال</strong>اسئلةانت ذكرت باخر سطر ان <strong>ال</strong>شركات تحتاج لتبادل وإرس<strong>ال</strong> بیاناتھا عبر <strong>ال</strong>انترنت وان تقنیة <strong>xml</strong> ھي<strong>ال</strong>افضل ھل معنى ھذا انھا ضرورية لمواقع <strong>ال</strong>تجارة <strong>ال</strong><strong>ال</strong>كترونیة؟وھل تكفي لوحدھا <strong>ام</strong> ان انھاتحتاج ايضا لقواعد بیانات ولغات ويب معھا ؟تختلف <strong>ال</strong>قدرة على انتاج تطبقات وبرمجیات من شخص <strong>ال</strong>ى اخرى بناء على قدراته وتنوع <strong>ال</strong>لغات <strong>ال</strong>تى يجید<strong>ال</strong>تع<strong>ام</strong>ل معھا.‏ولو تحدثنا عن قدرات <strong>ال</strong>لغه فاستطیع ان اقول لك انك يمكنك بناء منتدى حوار ك<strong>ام</strong>لا بواسطة . XMLولدي analysation لمنتدى حوار وھو Project ضخم جدا معتمد بنسبة‎%90‎ علىXML.قلت ان لغه <strong>xml</strong> ماھي <strong>ال</strong>ا عباره عن صفحات تعرض فیھا ملفات صحیح؟وسؤ<strong>ال</strong>ي ھو ما <strong>ال</strong>فرق بین <strong>xml</strong> و htmlو asp؟؟انك تظلمین لغة XML لوصفك لھا بانھا مجرد صفحات.‏ھى تقنیة قوية جدا فھیا تعتبر تقدم ھائل يستفید منه كل مبرمج ومطور كان يعانى من قصور فى ھذا<strong>ال</strong>جانب .يبدو انك لم تجد حتى <strong>ال</strong>ان <strong>ال</strong>حاجة ل XMLلكن سوف تحتاجھا فى <strong>ال</strong>قريب.‏<strong>ام</strong>ا بخصوص <strong>ال</strong>فارق بین XML و HTMLو ASPAspلغة برمجة موجة للويب وھى خارجة عن وضعھا فى <strong>ال</strong>مقارنة بین HTML و XMLلانھم لغات ترمیز<strong>ام</strong>ا عن مقارنة HTML وْ‏ XMLيوجد درس فى ھذه <strong>ال</strong>دورة بعنوانيوضح لك <strong>ال</strong>فرق <strong>ال</strong>جوھري بینھم.‏تحوي data andXML HTMLمقابلفي نظري تكمن حاجتنا ل XMLفي <strong>ال</strong>تطبیقات بمختلف أنواعھا لكونھا ملفات نصیة،metadata علاوةً‏ على إمكانیة اعتبارھا small database تحل مشاكل كثیر مقارنة بنظیراتھا <strong>ال</strong>كبیرةوغیر ذلك <strong>ال</strong>كثیر يلحق <strong>ال</strong> <strong>xml</strong>في بیئة .net يكفي أن نعرف أن كل ھذه <strong>ال</strong>بیئة قائمة على ھذه <strong>ال</strong>تقنیة وأن<strong>ال</strong>ويندوز <strong>ال</strong>جديد longhorn قائم علیھا أي ض اً‏ كوسط انتق<strong>ال</strong> <strong>ال</strong>بیانات.‏ونفس <strong>ال</strong>شئ ب<strong>ال</strong>نسبة لبرمجة <strong>ال</strong>ويب،‏ <strong>xml</strong><strong>ام</strong>كانیاتھا كثیرةً‏ أي ضاً‏فھى(‏ لغة <strong>ال</strong>حلول (Solutions Language17


<strong>ال</strong>درس <strong>ال</strong>رابعوتكوینها <strong>ال</strong>هرميعمل مستندات XML منهجیة.XMLسنناقش <strong>ال</strong>یوم <strong>ال</strong>تركیب <strong>ال</strong>ھرمي <strong>ال</strong>ذي يكون مستندات XML وكیفیة بناء <strong>ال</strong>بیانات وكیفیة تمثیلھا في مستندعندما نكون أم<strong>ام</strong> كمیة معلومات ضخمة أو حتى متوسطة <strong>ال</strong>حجم فمن <strong>ال</strong>أفضل تجمیع ھذه<strong>ال</strong>معلومات <strong>ال</strong>تي تنتمي <strong>إلى</strong> موضوع واحد مع بعضھا <strong>ال</strong>بعض بدل من تمثیلھا كما ھي .-.نعطى مث<strong>ال</strong> لكي توضح <strong>ال</strong>صورة .مثلا ھذه <strong>ال</strong>منتدى مجزأ <strong>إلى</strong> مجموعة من <strong>ال</strong>أقس<strong>ام</strong> و<strong>ال</strong>مواضیع <strong>ال</strong>فرعیة <strong>ال</strong>تي تتبع موضوعات فرعیة و<strong>ال</strong>تي تتبعبدورھا مواضیع رئیسیه ب<strong>ال</strong>إضافة <strong>إلى</strong> تقسیم <strong>ال</strong>موضوع <strong>ال</strong>واحد <strong>إلى</strong> مجموعة من <strong>ال</strong>فقرات وھى عبارة عن ردود<strong>ال</strong>أعضاء فذلك يسھل من عملیة استخراج <strong>ال</strong>معلوماتObject.فنجد مطوري <strong>ال</strong>برمجیات تستخدم ھذا <strong>ال</strong>نموذج منذ سنوات عدة باستخد<strong>ام</strong> بنیة بینات تسمىأيضا في لغة XML تجمع <strong>ال</strong>بینات فيmodel أو نموذج <strong>ال</strong>كائن وھى مرتبطة مع بعضھا بتسلسل ھرمي <strong>ال</strong>ابنتسلسل ھرمي ف<strong>ال</strong>بنود في <strong>ال</strong>مستند تتبع بعضھا <strong>ال</strong>بعض بعلاقاتوھذه <strong>ال</strong>بنود تسمى ب<strong>ال</strong>عناصر elements وھى أجزاء منفردة من <strong>ال</strong>معلومات..Parent / Child أو <strong>ال</strong>أب /.نأخذ مث<strong>ال</strong> <strong>ال</strong>اسم <strong>ال</strong>سابق شرحه ونمثله بطريقة ھرمیة ك<strong>ال</strong>شكل <strong>ال</strong>ت<strong>ال</strong>ي.‏نلاحظ أن <strong>ال</strong>بند Name> < ھو أب للبند First> < و<strong>ال</strong>بند First> < ھو ابن للبند Name> < و<strong>ال</strong>بنود First> < ‏.تسمى ھذه<strong>ال</strong>بنیة من <strong>ال</strong>بینات ب<strong>ال</strong>شجرة Tree فكل جزى من <strong>ال</strong>شجرة يحتوى على أبناء تسمى ب<strong>ال</strong>فروع<strong>ال</strong>أجزاء <strong>ال</strong>تي تحتوى على أبناء تسمى ب<strong>ال</strong>أوراقBranches وجمیعLeaves18


: نقول إذاElement Content<strong>ال</strong>عنصر Name> < و Middle> ‏>و < ثلاث أبناء،، نصيحتوى على <strong>ال</strong>نصComputerعنصر ،، em> < وھو عنصر ابن أيضا،، نصنص أخر يحتوى على <strong>ال</strong>نصarabفیمكننا ألان تمثیل ھذا <strong>ال</strong>مث<strong>ال</strong> ببنیة شجرية ھكذا.نرجو أن تكونوا تفھمتم كیفیة <strong>ال</strong>تمثیل <strong>ال</strong>ھرمي للبنود و<strong>ال</strong>عل<strong>ام</strong>ات فیما بینھما فأنك حینما تفھم ذلك ستتمكنمن فھم طبیعة لغة XML19


منھجیة عمل XML وقواعدھا-:Tags and Text and Elements<strong>ال</strong>لواحق و<strong>ال</strong>نصوص و<strong>ال</strong>عناصر(1مثل<strong>ال</strong>لاحقة أو ما يطلق علیھا <strong>ال</strong>بعض و<strong>ال</strong>وسم (Tag) ھي عبارة عن كلمة أو مصطلح موضوع بین رمزي إحاطةيمثل رمزا معرفا لتنسیق ما وذلك في مستندات HTML بینما يمثل اسما لعنصرمستنداتElements فيXML....وكما تلاحظ فان <strong>ال</strong> Tag تأخذ <strong>ال</strong>طابع <strong>ال</strong>زوجي فكل لاحقة لھا لاحقة مقابله لھا تعرف <strong>ال</strong>أولى لاحقة <strong>ال</strong>بدايةوتعرف <strong>ال</strong>ثانیة بلاحقة <strong>ال</strong>نھاية <strong>ال</strong>اختلاف بین <strong>ال</strong>اثنین ھو أن لاحقة <strong>ال</strong>نھاية تحتوى على<strong>ال</strong>رمز. End TagStart Tag. ”/“في XML جمیع <strong>ال</strong>معلومات <strong>ال</strong>موجودة بین لاحقة <strong>ال</strong>بداية ولاحقة <strong>ال</strong>نھاية نسمى ب<strong>ال</strong>عناصرفانElement وب<strong>ال</strong>ت<strong>ال</strong>ي.first> < ھي لاحقة بداية/first> < ھي لاحقة نھاية/first> < firest>Adel< ھو عنصر<strong>ال</strong>نص <strong>ال</strong>واقع بین لاحقة <strong>ال</strong>بداية ولاحقة <strong>ال</strong>نھاية يسمى بمحتوى <strong>ال</strong>عنصر Element contentElement ContentPCDATA<strong>ال</strong>محتوى <strong>ال</strong>واقع بین لاحقتین عبارة عن بیانات ويعرف في ھذه <strong>ال</strong>ح<strong>ال</strong>ة ببیانات <strong>ال</strong>رمز <strong>ال</strong>معرب PCDATA وذلك إذااحتوى ھذه <strong>ال</strong>عنصر على معلومات نصیة مثل <strong>ال</strong>عنصر middle> < فھوPCDATARoot Element<strong>ال</strong>مستند ككل بدء ب<strong>ال</strong>لاحقة name> < وانتھاء ب<strong>ال</strong>لاحقة


قوانین <strong>ال</strong>عناصريجب على مستندات XML <strong>ال</strong>خضوع لھذه <strong>ال</strong>قوانین كي تشكل فعلیا مستندات XML محكمة <strong>ال</strong>ھیئةWellformedXML Documentsلكل لاحقة بداية لاحقة نھاية مماثلة لھ<strong>ال</strong>ا يمكن للواحق أن تتداخل..--يحتوى مستندXML على عنصر جذر واحد فقط.‏-لغة XML حساسة لح<strong>ال</strong>ة <strong>ال</strong>حروفCase-Sensitiveلغة XML لا تتجاھل <strong>ال</strong>مساحات <strong>ال</strong>فارغة في مستنداتھا.--أسماء <strong>ال</strong>عناصر-:لغة XML توفر لك <strong>ال</strong>حرية في تسمیة <strong>ال</strong>عناصر فھي لا تحتوى على أسماء محجوزة كما في معظم <strong>ال</strong>لغاتفھي لديھا مرونة كبیرة في اختیار <strong>ال</strong>أسماء ولكن يوجد مجموعة من <strong>ال</strong>قوانین <strong>ال</strong>تي يجب مراعاتھا،-:.يمكن للأسماء أن تبدأ بأحرف لاتینیة أو غیر لاتینیة أو أن تبدأ ب<strong>ال</strong>رمزأن تبدأ برقم أو بعل<strong>ام</strong>ة ترقیم(_)underscore ولكن لا يمكن.-بعد <strong>ال</strong>حرف <strong>ال</strong>أول يمكن للأسماء أن تحتوى على أرق<strong>ام</strong> ب<strong>ال</strong>إضافة <strong>إلى</strong> <strong>ال</strong>رمزين . "" و" _ "-لا يمكن للأسماء أن تحتوى على فراغات.-لا يمكن للأسماء أن تحتوى علىفھو محجوز فيXML":"-لا يمكن للأسماء أن تبدأ ب<strong>ال</strong>أحرف XML سواء كانت بأحرف صغیرة أو كبیرة.لا يمكن أن يكون ھناك فراغ بین قوس <strong>ال</strong>إحاطة <strong>ال</strong>مفتوح > وبین اسم <strong>ال</strong>عنصر--Attributes<strong>ال</strong>صفات(2أن مستندات XML يمكن أن تتضمن صفات أو سمات معینة attributes <strong>ال</strong>صفات عبارة عن اسم معین تسندله قیمة معینة بحیث يرتبط ذلك <strong>ال</strong>اسم وتلك <strong>ال</strong>قیمة بعنصر معین في مستند. XML.. مثل21


.يجب أن تحتوى <strong>ال</strong>صفات على قیم ويجب أن تكون ھذه <strong>ال</strong>قیم واقعة بین عل<strong>ام</strong>تي اقتباس ولا يشترط أن تكونعل<strong>ام</strong>ة <strong>ال</strong>اقتباس مفردة أو مزدوجةيمكن للصفات أن تقدم بیانات وصفیة Metadata و<strong>ال</strong>تي يمكن أن لا تكون وثیقة <strong>ال</strong>صلة بمعظم <strong>ال</strong>تطبیقات <strong>ال</strong>تيتتع<strong>ام</strong>ل مع <strong>ال</strong>مستندات XMLعلى سبیل <strong>ال</strong>مث<strong>ال</strong> إذا علمنا أن بعض <strong>ال</strong>تطبیقات يمكن أن تھتم ب<strong>ال</strong>اسم <strong>ال</strong>مستعار Nickname ولكن معظم<strong>ال</strong>تطبیقات لا تھتم بھذه <strong>ال</strong>معلومات فان استخد<strong>ام</strong> ھذه <strong>ال</strong>معلومات كصفة سیكون ذا معنىإذا ما <strong>ال</strong>ذي تقدمه <strong>ال</strong>صفات ولا يمكن للعناصر أن تقدمهمث<strong>ال</strong>....أيضا ،،،<strong>ال</strong>سبب يرجع <strong>إلى</strong> أن بعض <strong>ال</strong>أشخاص يجدون أن استخد<strong>ام</strong> <strong>ال</strong>صفات تسھل على سبیل <strong>ال</strong>مث<strong>ال</strong> فانك لا تحتاج<strong>إلى</strong> <strong>ال</strong>اھتم<strong>ام</strong> بدرجة تعشیش <strong>ال</strong>عناصر ولا تحتاج للقلق حول <strong>ال</strong>معرفات <strong>ال</strong>متداخلة.‏فیما أن <strong>ال</strong>بعض <strong>ال</strong>آخر يرى إن عملیة تداخل وتعشیش <strong>ال</strong>عناصر سھل.مجموعة أخرى ترى أن <strong>ال</strong>صفات تستھلك مساحة اقل بكثیر من <strong>ال</strong>عناصربواسطة <strong>ال</strong>صفات سیكون بھذا <strong>ال</strong>شكل..فمثلا <strong>ال</strong>مث<strong>ال</strong> <strong>ال</strong>أول لو قمنا بكتابتهولكن ذلك قلل من مرونة مستندات XML <strong>ال</strong>تي تتسم ب<strong>ال</strong>مرونة.في <strong>ال</strong>نھاية نقول إن عملیة أفضلیة <strong>ال</strong>صفات عن <strong>ال</strong>عناصر أو <strong>ال</strong>عناصر عن <strong>ال</strong>صفات تعود على اختیار<strong>ال</strong>شخص وعلى أسلوبه فاختار منھم ما يشعرك ب<strong>ال</strong>ارتیاح..-22


Comments<strong>ال</strong>تعلیقات(3ھي عبارة عن إضافة <strong>ال</strong>نصوص <strong>ال</strong>تي لا تشكل جزءا من <strong>ال</strong>مستن و إنما تخص <strong>ال</strong>شخص <strong>ال</strong>ذي يقراء شفرةXML نفسھا .إذصادف لك وتع<strong>ام</strong>لت من قبل مع أي لغة برمجة فانك تعرف تم<strong>ام</strong>ا ماذا تعنى ب<strong>ال</strong>تعلیقات.وھى تستخدم لوضع بھا تعلیقات تصف بعض <strong>ال</strong>فقرات و <strong>ال</strong>اكواد لكي تساعدك في فھم شفره مستنداتXMLولكنھا لیست مھمة ب<strong>ال</strong>درجة مثلما في إي لغة برمجة أخري حیث أن لغة XML لغة تصف <strong>ال</strong>بینات إي أنھاذاتیة <strong>ال</strong>وصف تساعدك على فھمھا .تبدأ <strong>ال</strong>تعلیقات ب<strong>ال</strong>رمز > !—وتنتھي ب<strong>ال</strong>رمز-- < مثل <strong>ال</strong>تعلیقات في HTML.. مثلاEmpty Elements<strong>ال</strong>عناصر <strong>ال</strong>فارغة(4قد توجد في بعض مستندات XML عناصر فارغة من <strong>ال</strong>بینات... فمثلافي ھذه <strong>ال</strong>ح<strong>ال</strong>ة تقدم لك XML <strong>ال</strong>حل <strong>ال</strong>أفضل و<strong>ال</strong>بديل <strong>ال</strong>ذي تكون فیه لا تحتاج <strong>إلى</strong> معرف نھايةفتكتب بھذا <strong>ال</strong>شكلعلى أن يكون <strong>ال</strong>عنصر ثم <strong>ال</strong>رمزلواحق <strong>ال</strong>نھايات< last/>End Tag"/".بدون لاحقة <strong>ال</strong>نھاية <strong>ال</strong>معتادة وھى <strong>ال</strong>ح<strong>ال</strong>ة <strong>ال</strong>وحیدة <strong>ال</strong>تي لا تستخدم فیھاولو أجريت تجربة بسیطة داخل معرب XML <strong>ال</strong>مدمجة بمتصفح إنترنت <strong>اكس</strong>بلورر 5.5 وكتبت <strong>ال</strong>شفرة <strong>ال</strong>ت<strong>ال</strong>یة23


أنھا سوف تظھر ب<strong>ال</strong>شكل <strong>ال</strong>ت<strong>ال</strong>يXML Declarationتصریح(5تعد <strong>ال</strong>تصاريح في تعريف مستندات XML بأنھا تتبع نوعا معینا ب<strong>ال</strong>إضافة إلي إعطاء <strong>ال</strong>معرب <strong>ال</strong>تعلیمات <strong>ال</strong>أخرىفمثلا ھذا <strong>ال</strong>تصريحوھو يجب أن يكون في بداية مستندات XML ولیس معنى عدم وجوده يسبب <strong>ال</strong>خطأ ولكن <strong>ال</strong>أفضل تعريف<strong>ال</strong>مستندات .شرح <strong>ال</strong>تصريح <strong>ال</strong>سابقفبدا تصريح XML ب<strong>ال</strong>رمز > ؟<strong>xml</strong>و ينتھي ب<strong>ال</strong>رمز ؟


a،Encoding Attributesلو رجعنا <strong>إلى</strong> درسنا <strong>ال</strong>أول في ھذه <strong>ال</strong>سلسلة و<strong>ال</strong>ذي تحدثنا فیه عنصفة <strong>ال</strong>تشفیر<strong>ال</strong>بیانات وأنواعھا فلا تستغرب إذا عرفت أن <strong>ال</strong>نصوص تخزن في <strong>ال</strong>حاسب على شكل أرق<strong>ام</strong> باعتبار أن <strong>ال</strong>أرق<strong>ام</strong>97 و<strong>ال</strong>حرف A يمثل <strong>ال</strong>رقمھي <strong>ال</strong>لغة أل<strong>ام</strong> للحاسب فمثلا <strong>ال</strong>حرف يمثل في جدول <strong>ال</strong>. 65ASCII <strong>ال</strong>رقمھناك نوعان من شفرة ASCII <strong>ال</strong>شفرة <strong>ال</strong>قیاسیة و<strong>ال</strong>تي تتكون من سبعة بتات و<strong>ال</strong>شفرة <strong>ال</strong>موسعة و<strong>ال</strong>تيتتكون من ثمانیة بتات أي أن شفرة ASCII <strong>ال</strong>موسعة تستخدم بايتا واحدا لكل رمز وب<strong>ال</strong>ت<strong>ال</strong>ي فان <strong>ال</strong>شفرة لايمكن استیعابا اكثر من 256 رمز مختلف فھو كافي لتمثیل كل <strong>ال</strong>حروف <strong>ال</strong>أبجدية <strong>ال</strong>إنجلیزية <strong>ال</strong>كبیرة و<strong>ال</strong>صغیرةب<strong>ال</strong>إضافة <strong>إلى</strong> <strong>ال</strong>عل<strong>ام</strong>ات و<strong>ال</strong>أرق<strong>ام</strong> ولكن غیر كافي لتمثیل لغات أخرى مثل <strong>ال</strong>عربیة أو <strong>ال</strong>یابانیة <strong>ال</strong>خلھذا <strong>ال</strong>سبب وجدت <strong>ال</strong>شفرة <strong>ال</strong>موحدة.... Unicodeبعد ھذه <strong>ال</strong>مقدمة نرجع <strong>إلى</strong> مث<strong>ال</strong>نا <strong>ال</strong>سابق جملة تصريح XML عند <strong>ال</strong>صفةencoding=’UTF-16'ھنا تم ضبط <strong>ال</strong>تشفیر لمستند XML على انه Unicode وذلك بوضع UTF-16لذا فقد نصت مواصفات XML على استخد<strong>ام</strong> شفره موحدة ع<strong>ال</strong>میة لتمثیل <strong>ال</strong>بیانات ولكن للأسف فان <strong>ال</strong>قلیليستخدم ھذه <strong>ال</strong>شفرة و<strong>ال</strong>عديد يستخدم شفرات أخرى مثلوشفرة windows-1252 ISO-88591ملاحظة إذ لم تقم بتحديد شفرة إي انك لم تقم بوضع ھذه <strong>ال</strong>صفة أصلا أن معرب XML يقراء <strong>ال</strong>مستندبشفرةأو UTF-16 UTF-8<strong>ال</strong>صفة <strong>ال</strong>أخیرة في تصريح XML ھي صفةStandaloneوھى تعنى أن <strong>ال</strong>مستند قائم بذاتیة فإذا قمت بإضافة ھذه <strong>ال</strong>صفة <strong>إلى</strong> تصريح XML فإنه لھذه <strong>ال</strong>صفة قیمتینوno yesتشیر <strong>ال</strong>قیمةyes <strong>إلى</strong> أن <strong>ال</strong>مستند قائم بذاته ولا يعتمد على أي ملفات أخرىتشیر <strong>ال</strong>قیمة No<strong>إلى</strong> أن <strong>ال</strong>مستند يمكن إن يكون معتمد أو مرتبطا بملفات أخرى.‏بهاغیر م مسموحرموز نصوص PCDATA .( 625


،تعرفنا سابقا ب<strong>ال</strong>مقصود ب<strong>ال</strong>مصطلح PCDATA وعرفنا انه مصطلح مستخدم من قبل SGML يشیر <strong>إلى</strong> <strong>ال</strong>بیانات<strong>ال</strong>نصیة <strong>ال</strong>موجودة داخل <strong>ال</strong>عناصر فتوجد بعض <strong>ال</strong>قوانین تحكم ھذه <strong>ال</strong>بیانات <strong>ال</strong>نصیة عند كتابتھا لفادى <strong>ال</strong>أخطاءأثناء عمل معرب . XMLفھناك بعض <strong>ال</strong>رموز <strong>ال</strong>محجوزة <strong>ال</strong>تي لا تستطیع تضمینھا في بینات PCDATA لان تركیب XML يستخدمھا منھذه <strong>ال</strong>رموز < و<strong>ال</strong>رمز &فمثلا..عند تشغیل ھذه <strong>ال</strong>شفرة على <strong>ال</strong>متصفح سوف تعرض لك <strong>ال</strong>خطأ بھذا <strong>ال</strong>شكل..ھذا يعنى انه عندما يصل <strong>ال</strong>معرب <strong>إلى</strong> <strong>ال</strong>رمز < سیتوقع أن يجد اسما لمعرف Tag وبدلا من ذلك فقد وجدفراغ Space وحتى إن تجاوز <strong>ال</strong>معرب ھذا <strong>ال</strong>خطأ فإنه سیتوقف عند خطا أخر عندما يصل <strong>إلى</strong> <strong>ال</strong>رمز“ & “فلا تقلق فھناك طريقتان تمكنك من تضمین ھذه <strong>ال</strong>رموز ضمن PCDATA إما أن تستخدم <strong>ال</strong>رموز <strong>ال</strong>مرادفةEscaping Characters أو أن تستخدم قسم سنتعرف على <strong>ال</strong>طريقتان <strong>ال</strong>آن في <strong>ال</strong>جزء <strong>ال</strong>ثانيCDATAھنا .26


<strong>ال</strong>درس <strong>ال</strong>رابعوتكوینها <strong>ال</strong>هرمي .تابع منهجیة عمل مستندات XML <strong>ال</strong>رموز <strong>ال</strong>مرادفةEscaping Charactersيمكنك استخد<strong>ام</strong> <strong>ال</strong>رمز


توجد <strong>ال</strong>عديد من ھذه <strong>ال</strong>رموز وھى تعرف باسم. Character Referances;©فھي رموز Unicode تبدأ ب #& و تنتھي ب<strong>ال</strong>رمز ويتوسطھا رموز وفق <strong>ال</strong>تمثیل <strong>ال</strong>ستعشرى وعلى سبیل<strong>ال</strong>مث<strong>ال</strong> يمكنك تمثیل <strong>ال</strong>رمز في مستند XML بإضافة <strong>ال</strong>رمز <strong>ال</strong>بديل ؛ & 169# أو <strong>ال</strong>مرادف <strong>ال</strong>ستعشرى له &xA9#‎؛أقس<strong>ام</strong> CDATAإذا كان لديك <strong>ال</strong>كثیر من <strong>ال</strong>رموز <strong>ال</strong>تي يتحتم علیك استخد<strong>ام</strong>ھا رموز بديله لھا سیصبح شكل شفرة مستندكمزعجا فیأتي ھنا <strong>ال</strong>حاجة <strong>إلى</strong> استخد<strong>ام</strong> ما يعرف بأقس<strong>ام</strong> CDATAعند استخد<strong>ام</strong> أقس<strong>ام</strong> CDATA سیقوم <strong>ال</strong>معرب بعدم إعراب <strong>ال</strong>نص و إنما <strong>ال</strong>تع<strong>ام</strong>ل معه على انه عبارة عنبیانات PCDATA بما يحتويھا من رموز محجوزة وتكتب أقس<strong>ام</strong> بھذا <strong>ال</strong>شكلCDATAأي أن كل ما يوضع بین <strong>ال</strong>رموز >يتجاھل <strong>ال</strong>رموز <strong>ال</strong>محجوزة.‏]CDATA]![[ < و<strong>ال</strong>رموزتظھر قوة <strong>ال</strong>تع<strong>ام</strong>ل مع أقس<strong>ام</strong> CDATA عندما تريد كتابة شفرة برمجیة داخل مستندأي أن معرب XML سیمرر ھذا <strong>ال</strong>نص كما ھو وسوXml فمثلا..‏وسیظھر بھذا <strong>ال</strong>شكل على <strong>ال</strong>متصفح..28


إعراب مستندات : XML.يرجع <strong>ال</strong>سبب لوجود ھذه <strong>ال</strong>قوانین لكتابة مستندات <strong>xml</strong> محكمة ھو لتسھیل عملیة استخراج <strong>ال</strong>معلومات منھذه <strong>ال</strong>مستندات<strong>xml</strong>يسمى مع<strong>ال</strong>ج لغة<strong>ال</strong>تى يحتاجھا من <strong>ال</strong>مستند<strong>xml</strong> بمعرب.XML Parser ولأنه يقوم ببساطة بأعراب شفرةويوفر للتطبیق <strong>ال</strong>معلوماتھناك <strong>ال</strong>كثیر من <strong>ال</strong>معربات <strong>ال</strong>مجانیة وسوف اذكر لكم مجموعة منھا <strong>ال</strong>آن.Microsoft Internet Explorer Parser :أول معربات XML ضمنته شركة مايكروسوفت في متصفحھا <strong>ال</strong>إصدار <strong>ال</strong>رابع ولك في بدايات XML ومع <strong>ال</strong>إصدار<strong>ال</strong>خ<strong>ام</strong>س من <strong>ال</strong>متصفح زودت لغة <strong>xml</strong> بأدوات بحیث تم تحديثھا <strong>إلى</strong> <strong>ال</strong>إصدار <strong>ال</strong>أول من ھذه <strong>ال</strong>مواصفات وعرفتباسم<strong>xml</strong> 1.0يمكنك تحمیل <strong>ال</strong>إصدار <strong>ال</strong>أخیر من معرب <strong>xml</strong> من موقع مايكروسوفت على ھذه <strong>ال</strong>وصلة.http://msdn.microsoft.com/XML/XMLDownloads/default.aspxJames Clark’s Expat :معرب جايمز كلارك يعدمن <strong>ال</strong>موقع <strong>ال</strong>ت<strong>ال</strong>ي أخر إصدار ھوExpat معرب <strong>xml</strong> 1.0 مكتوب بلغةexpat v1.2.ولمزيد من <strong>ال</strong>معلومات حول ھذا <strong>ال</strong>معرب يمكن مراجعة ھذه <strong>ال</strong>وصلةc وھو أحد معربات XML <strong>ال</strong>مجانیة ويمكنك تحمیلةftp://ftp.jclark.com/pub/<strong>xml</strong>/expat1_2.ziphttp://www.jclark.com/<strong>xml</strong>/expat.htmlDataChannel XJ Parserتعد شركة DataChannel شركة برمجیات حلول <strong>ال</strong>أعم<strong>ال</strong> عملت مع شركة مايكروسوفت لأنتاج معرببلغة جافا يمكنك من <strong>ال</strong>حصول على أخر <strong>ال</strong>معلومات حول ھذا <strong>ال</strong>معرب أخر إصدار له من <strong>ال</strong>موقع <strong>ال</strong>ت<strong>ال</strong>ي.‏<strong>xml</strong>29


http://xdev.datachannel.com/directory/<strong>xml</strong>-parser.htmlIBM XML4jتقدم شركة IBM عددا من أدوات وتطبیقات <strong>xml</strong> ب<strong>ال</strong>إضافة <strong>إلى</strong> <strong>ال</strong>معرب <strong>xml</strong>4j وھو كتب بلغة <strong>ال</strong>جافا وھو متوفرب<strong>ال</strong>مجان على <strong>ال</strong>موقع <strong>ال</strong>ت<strong>ال</strong>يhttp://www.alphaworks.ibm.comApache Xercesتوفر أيضا مؤسسة Apache للبرمجیات مشروعا أولیا لمعرب XML ماز<strong>ال</strong> بإصدارته <strong>ال</strong>تجريبیة Beta وھو أيضاكتب بلغة <strong>ال</strong>جافا ولغة ++C وباستخد<strong>ام</strong> لغة بیرل أيضا وتجده ھناhttp://<strong>xml</strong>.apache.org/<strong>ال</strong>تع<strong>ام</strong>ل مع <strong>ال</strong>أخطاء في : XMLوكما تم تحديد <strong>ال</strong>تع<strong>ام</strong>ل مع <strong>ال</strong>معلومات داخل مستند XML تم أيضا <strong>ال</strong>تع<strong>ام</strong>ل مع <strong>ال</strong>أخطاء بواسطة معربفھناك نوعان من <strong>ال</strong>أخطاء وھى <strong>ال</strong>أخطاءXML. fatal errors و<strong>ال</strong>أخطاء Errorف<strong>ال</strong>أخطاء ببساطة ھي انتھاك لموصفات وقوانین XML <strong>ال</strong>تي تكلمنا عنھا ھنا حیث يكون <strong>ال</strong>ناتج غیر معروفأما <strong>ال</strong>أخطاء <strong>ال</strong>ممیتة أو fatal Errors فھي <strong>ال</strong>تي تحتم على <strong>ال</strong>معرب عدم <strong>ال</strong>استمرار في مع<strong>ال</strong>جة مستندأي إن أي خطأ يجعل مستند <strong>xml</strong>غیر محكم <strong>ال</strong>ھیئة يسمى خطأ ممیت.<strong>xml</strong>.فھذه <strong>ال</strong>صر<strong>ام</strong>ة في كتابة مستندات <strong>xml</strong> ھي <strong>ال</strong>تي تزيد من قوتھا ولیس مجرد تفادى لاخطاء <strong>ال</strong>معربات ولكنھابعكس لغةتوحید كتابه مستندات قیاسیة يمكن <strong>ال</strong>تع<strong>ام</strong>ل معه من اكثر من متصفح واكثر من منصة تشغیل لا توجد صر<strong>ام</strong>ة في كتابة <strong>ال</strong>نصوص مما قد تجد متصفحا يقوم بعرض <strong>ال</strong>صفحة بشكل غیر لائق في حینوھو سبب من أسباب ظھور لغة XHTML <strong>ال</strong>تي تعتبروھذا <strong>ال</strong>عیب في متصفح أخر يعرضھا كما تريد <strong>ال</strong>عوض لقصور.html.htmlhtml30


<strong>ال</strong>نقاش و <strong>ال</strong>اسئلة..اشعر ھناك تشابه بین <strong>xml</strong>وبین html ولكنhtmlاشیاء محدده ووسوم معروفة <strong>ام</strong>ا <strong>xml</strong> فب<strong>ام</strong>كانك انشاء اي وسم تريد وايضا ما فھمته ان htmlفقط للويب <strong>ام</strong>ا <strong>xml</strong> تشمل <strong>ال</strong>ويب وتطبیقات كثیرة ‏.<strong>ال</strong>یس كذلك؟CDATAتقوم بتضمین شفرات برمجیة داخل <strong>xml</strong> مثل ماھو موجود في مث<strong>ال</strong> <strong>ال</strong>جافا سكريبتھل <strong>ال</strong>برن<strong>ام</strong>ج سینفذ داخل ملف <strong>xml</strong> اقصد ھذا <strong>ال</strong>مث<strong>ال</strong> لو وضعناه في html سینفذ ربما ما يحتويهھذا <strong>ال</strong>سكريبت ھل <strong>xml</strong> ستنفذ ما بداخلھا من شفرات خارجیة ؟ب<strong>ال</strong>نسبة للسؤ<strong>ال</strong> <strong>ال</strong>اول ما ذكرت صحیح.‏PCDATA تعتبر ھذه <strong>ال</strong>بیانات على انھا بیانات نصیة XML ما بداخلھا من شفرات خارجیة ؟ لا طبعا <strong>xml</strong>ستنفذفب<strong>ال</strong>ت<strong>ال</strong>ي لا يتم تنفیذھا على <strong>ال</strong>متصفحكیف لي ان اربط بین قاعدة <strong>ال</strong>بیانات وبین <strong>xml</strong>؟<strong>ام</strong>ا ب<strong>ال</strong>نسبة لربط XML بقواعد <strong>ال</strong>بیانات فھذه وموضوع خاص ويطول شرحة واساسیات عمله داخل لغة قواعد<strong>ال</strong>بیانات ودعمھافي نسخة <strong>ال</strong>اوفیس <strong>ال</strong>جديدة سمعنا عن تواجد تقنیة <strong>xml</strong> داخل <strong>ال</strong>اوفیس ھل <strong>ال</strong>مستخدم<strong>ال</strong>عادي يستفید من وجود ھذا <strong>ال</strong>شي <strong>ام</strong> ان اكثر <strong>ال</strong>مستفیدين ھم <strong>ال</strong>مطورين و<strong>ال</strong>مبرمجین<strong>ال</strong>متقدمین ؟حول سؤ<strong>ال</strong>ك عن استخد<strong>ام</strong> XML في <strong>ال</strong>أوفیس <strong>ال</strong>جديد،‏ فما أعلمه أن <strong>ال</strong>ويندوز <strong>ال</strong>جديد أطلق ما يسمى XAMLيمكن <strong>ال</strong>مستخدم عوضاً‏ عن <strong>ال</strong>مبرمج أو <strong>ال</strong>خبیر ب<strong>ال</strong>تحكم بمظھر <strong>ال</strong>حاسوبGUI ، تخیّل أنك بواسطته تستطیعجعل <strong>ال</strong> textBox<strong>ال</strong>ذي تضع فیه password <strong>ال</strong>دخول على <strong>ال</strong>نظ<strong>ام</strong> مائل،‏ بمعنى بدلاً‏ من أن تكون جمیع زواياهقائمة تصبح له زاويتین متقابلتین منفرجتان و<strong>ال</strong>أخريتان حادتان ومع ھذا <strong>ال</strong>میلان تكتب داخله بكل أريحیة،‏ ولكأن تقیس على ھذا،‏ كل <strong>ال</strong> Menusفي <strong>ال</strong>نظ<strong>ام</strong> بإمكانك <strong>ال</strong>تحكم بشكلھا وإضافة <strong>ال</strong>زوايا <strong>ال</strong>تي تريد كل ھذابواسطة أسطر بسیطة تكتب وھي مشتقة من XML ورأت <strong>ال</strong>نورمع Windows Longhornب XAMLھل يشترط ان تكون اسماء <strong>ال</strong>عناصر lowercase ؟في <strong>ال</strong>طريقة <strong>ال</strong>ثانیة للتغلب على مشكلة <strong>ال</strong>رموز <strong>ال</strong>محجوزة .. ھل يمكن كتابة CDATA ب<strong>ال</strong>احرف<strong>ال</strong>صغیرة ؟ <strong>ام</strong> ان ھذا يعتبر خطأ ؟ب<strong>ال</strong>نسبة لاسماء <strong>ال</strong>عناصر فلا يشترط ان تكونCase Low<strong>ام</strong>اب<strong>ال</strong>نسبة ل CDATA فیجب ان تكون بحروف كبیرة.‏31


<strong>ال</strong>درس <strong>ال</strong>خ<strong>ام</strong>سمقابل XMLHtml ،وHTML XMLھو أن <strong>ال</strong> XML يأخذ وجھة نظر مختلفة عن<strong>ال</strong>اختلاف <strong>ال</strong>رئیسي بینذ<strong>ال</strong> يستعمل وسم Tags وھو لیس بديل لHTML ب<strong>ال</strong>رغم من انه ما. HTML.XML وHTML صمما كل منھم لھدف مختلف أن <strong>ال</strong>اختلاف <strong>ال</strong>رئیسي بان XML صمم لوصف تركیب <strong>ال</strong>نصولیس ما ھو يجب أن يعرض على صفحة <strong>ال</strong>متصفح ‏.باختصار XML صمم لحمل <strong>ال</strong>بیانات من <strong>ال</strong>ناحیة <strong>ال</strong>أخرىHTML صمم لعرض <strong>ال</strong>بیانات و<strong>ال</strong>تركیز على شكل عرض ھذه <strong>ال</strong>بیانات . ھكذا يمكن أن نقول إنعلى عرض <strong>ال</strong>معلومات بینما XML يعمل وصف <strong>ال</strong>معلوماتدعنا نأخذ مث<strong>ال</strong> بسیطHTML يعمل،..،:نقوم بإنشاء ملف file.html ونكتب بداخل ھذه <strong>ال</strong>كودوعند عرض ھذه <strong>ال</strong>شفرة على <strong>ال</strong>متصفح سوف يظھر لك شي مثل ھذا:‏ويجب أن نلاحظ إن جملةتظھر كنص غ<strong>ام</strong>ق.While this is bold textأما إذا قمنا بعرض <strong>ال</strong>ملف ھذا على انه وثیقة XML بدون تغیر في شكل <strong>ال</strong> ،<strong>ال</strong>ملف بدل منTags فقط قم بتغیر <strong>ام</strong>تدادfile.<strong>xml</strong> <strong>إلى</strong> file.htmlسوف نلاحظ أن متصفحك ق<strong>ام</strong> بعرض <strong>ال</strong>ملف ولكن بشكل أخرى يشبه ھذا <strong>ال</strong>شكل:32


.نستنتج من <strong>ال</strong>مث<strong>ال</strong> <strong>ال</strong>سابق أن شفرة HTML <strong>ال</strong>تي تحمل <strong>ال</strong><strong>ام</strong>تداد html تم عرضھا بشكل يجب أن يكونمعروف أو متوقع عرضھا به وذلك لأنھا تحتوى على وصفات Tags تم تعريفھا مسبقا لدى <strong>ال</strong>متصفح لكي<strong>ال</strong>خ فأي متصفحيمكنه <strong>ال</strong>تعرف علیھا وعرض <strong>ال</strong>بیانات على أساسھايمكنه أيضا إضافة وصفات جديده لعرض <strong>ال</strong>بیانات على سبیل <strong>ال</strong>مث<strong>ال</strong> متصفح <strong>ال</strong>نتسكیب له tags خاص ھيولكن لیس ھناك طريقة قیاسیة لتقديم أنواع <strong>ال</strong>عنصر <strong>ال</strong>جديدة أما ھذا <strong>ال</strong>ح<strong>ال</strong> مختلف تم<strong>ام</strong>ا معوثائق.. مثل , , ...،XMLفي ح<strong>ال</strong>ة تغیر <strong>ام</strong>تداد <strong>ال</strong>ملف لیتم عرضة كوثیقة <strong>xml</strong> على <strong>ال</strong>متصفح . ھنا تظھر <strong>ال</strong>قدرة لتعريف <strong>ال</strong>عناصر <strong>ال</strong>جديدةوعلاوة على ذلك يمكنھا <strong>ال</strong>عمل على <strong>ال</strong>وثیقة نفسھا بحیث يكون <strong>ال</strong>وصف عبارة عن وصف ذاتيself-،. describingدعنا نتخیل مث<strong>ال</strong>ا <strong>ال</strong>شكل <strong>ال</strong>ت<strong>ال</strong>ي كوثیقة HTML على ھیئه جدول دورات تدريبیة:PHP Programming 15-04-2003 Emad Adly jimmy salh adelJava Programming 8-03-2004 jimmy Adle Devman karimASP Programming 12-5-2004 salh Mohammed SeGa mrscript‏(وھكذا لكل صف ). . .33


،،وب<strong>ال</strong>رغم من إننا كبشر أو مبرمجین يمكن لأي شخص تخمین أن <strong>ال</strong>اسم <strong>ال</strong>مذكور شفى ھذا <strong>ال</strong>جدول يدل عنانه اسم <strong>ال</strong>معلم أو <strong>ال</strong>محاضر للدورة <strong>ال</strong>مذكور بجوارھا ولیس من <strong>ال</strong>معقول <strong>ال</strong>تعرف علىكاسم <strong>ال</strong>معلم أو من ھم <strong>ال</strong>مشاركین في <strong>ال</strong>دورة أما في <strong>ال</strong>برمجة وفھم <strong>ال</strong>حاسب لذلك بطريقة منھجیة فانXML يثبت ھذا في تعديل ھذا <strong>ال</strong>جدول ھكذاPHP Programming:،في <strong>ال</strong>مث<strong>ال</strong> <strong>ال</strong>سابق ل XML ھو يعتبر وثیقة XML قیاسیة يمكنك أن تعطى إي بیانات تعطي <strong>ال</strong>معنى <strong>ال</strong>مناسبللوصف <strong>ال</strong>خاص بھذه <strong>ال</strong>بیانات و<strong>ال</strong>تي تم تعريفة كوصف قیاسي ذاتي لوثیقة باختیارنا لوصف واضح وصريح لما تحتوى من بیاناتTags تعطى. XML،فھكذا اصبح نص قیاسي لذا يمكن أن يتحول بسھولة من جھاز <strong>إلى</strong> جھاز أو نظ<strong>ام</strong> <strong>إلى</strong> نظ<strong>ام</strong>يمكنه أن يفھم أن ھذه <strong>ال</strong>وثیقة تحمل شي من <strong>ال</strong>توضیح إنھا دورة،. Courseلذا إي واحدو<strong>ال</strong>سؤ<strong>ال</strong> <strong>ال</strong>ذي يدور في ذھن <strong>ال</strong>آن ھو كیف لي أن أھیئ ھذا لیظھر في شكل وصورة html على <strong>ال</strong>متصفح ؟نلاحظ أن HTML تحتوى على تعلیمات لوصف <strong>ال</strong>نص على <strong>ال</strong>متصفح فعلى سبیل <strong>ال</strong>مث<strong>ال</strong> PHP Programmingيشیر <strong>إلى</strong> انه نص ، italics ھنا نجد أن XML لیس عنده عدد ثابت من <strong>ال</strong> tags مثلما يعمل HTML ولكنه قابللل<strong>ام</strong>تداد مثل لغة SGML تسمح لمصمم <strong>ال</strong>وثیقة بتعريف <strong>ال</strong>بیانات <strong>ال</strong>خاصة XML جاءت لتلبیه <strong>ال</strong>نقص في ھذه<strong>ال</strong>لغات و<strong>ال</strong>حاجة لنشر <strong>ال</strong>معلومات <strong>ال</strong>تي تتضمن شبكات <strong>ال</strong>معلومات <strong>ال</strong>كبیرة و<strong>ال</strong>نشر <strong>ال</strong>ورقي <strong>ال</strong>تقلیديواستعم<strong>ال</strong>ھا على أنظمة غیر تقلیدية وكلما توسعه <strong>ال</strong>إنترنت ستصبح اكثر وضوحا.‏،،لم نتطرق في ھذه <strong>ال</strong>سلسلة <strong>إلى</strong> كیفیة استخراج <strong>ال</strong>بیانات وعرضھا على <strong>ال</strong>متصفح بطرق غیر تقلیدية أوبصورةوأيضا لم نتطرق <strong>إلى</strong> <strong>ال</strong>وصول <strong>إلى</strong> <strong>ال</strong>بیانات في مستندات XML برمجیا بواسطة تقنیات DOM وھذه <strong>ال</strong>دورة تعتبر تمھید لكل ھذه <strong>ال</strong>تقنیات وعلى وعد أن أتحدث عن كل ھذه <strong>ال</strong>تقنیات في دروس أخرى فيقسم دروس XML أو أن اكتبھا لكم في سلسلة تعرض في صورة دورة تكمیلیةفمن منكم اھتم بھذه <strong>ال</strong>لغة يتابعنا داخل قسم XML وستجد <strong>ال</strong>مزيد أن شاء ا<strong>ال</strong>لهSAX....... XSLT لغة htmlباستخد<strong>ام</strong>أرجو أن تكونوا قد قضیتم وقتنا مفید في تعلم بدايات .XMLتمت <strong>ال</strong>دورة. بحمد ا<strong>ال</strong>له34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!