# برمجة اكس أم إل

صُممت هذه اللغة لتجاوز المشاكل التقليدية المقترنة بلغة SGML ولغة HTML ، وهي من الوسائل الشائعة الاستخدام حالياً لوصف وتوزيع المعلومات . ولغة HTML كانت حتى وقت قريب اللغة الوحيدة المشتقة من لغة SGML والتي تدعمها متصفحات الإنترنت التقليدية ، مما كان يمنع هذه المتصفحات من استخدام الوثائق المكتوبة بأنساق أخرى على الإنترنت . وهذا الإفتقار إلى الدعم يجبرناشري المحتوى على تحويل موادهم ووثائقهم إلى نسق HTML وذلك لنشرها على الإنترنت . وسبب هذه المشكلة كان تعقيد لغة SGML إضافة إلى اقتران لغة HTML بالإنترنت .
وبسبب قدرة لغة SGML العالية على وصف المحتوى فقد تم تصميم لغة XML . فلغة SGML يمكنها وصف أي نوع من أنواع الوثائق مهما بلغ تعقيد هيكلته أو حجمه ، مما يمنح مصممي الوثائق القدرة على وصف أي هيكلية للبيانات . وباختصار فإن SGML هي اللغة المصدر للغة XML ، مع فارق " بسيط" هو أن قواعد هذه اللغة موجودة في 500 صفحة مما يجعلها بالغة التعقيد والاستيعاب . ورغم أن SGML هي من اللغات الموثقة والمعرفة جيداً فإن المبرمجين والمطورين عادة ما يحجمون عن استخدامها لتعقيدها مما يجعل من ميزاتها وفوائدها محدودة التأثير . كما أن هذه اللغة صعبة الدمج مع متصفحات الإنترنت مما يعيق انتشارها كمقياس على الإنترنت . ولنشر وثائقهم على الإنترنت يقوم مستخدمو لغة SGML بتحويل وثائقهم المكتوبة بهذه اللغة إلى نسق HTML ، مما يفقد هذه الوثائق الكثير من قوتها الوصفية وميزات أخرى .
أما لغة HTML ، والتي تستلهم منها XML الكثير ، فهي عامة جداً وسطحية تصف العناصر الأساسية فقط في صفحات الإنترنت . كما أنها بسيطة جداً عندما يتعلق الأمر بوصف الوثائق خارج نطاق الإنترنت ، إضافة إلى أن هذه اللغة أصبحت غير قادرة على التعامل مع الإنترنت نفسها . وليس أدل على ذلك من حصول الباحث على مليون استجابة في بعض الأحيان عند البحث عن موضوع معين على الإنترنت . ورغم أنه يمكن تعديل HTML على أساس فردي بحيث تتعامل مع عناصر خاصة إلا أن ذلك صعب نظراً لوجود الكثير من المتصفحات في السوق والتي يجب أن تدعم هذه التعديلات وإلا فإن الكثيرين لن يتمكنوا من استعراض صفحاتك بالشكل الصحيح . وحتى في الوقت الحالي فإن هذه المشكلة واضحة لمستخدمي الإنترنت الذين لا يتمكنون دوماً من الحصول على الصفحة نفسها أو تصميم الصفحة نفسه عند استخدام متصفح مختلف .
وهنا تأتي لغة HML إلى النجدة ، فهي ليست بضخامة لغة SGML وتعقيدها ، وهي ليست ببساطة وسطحية لغة HTML وجمودها . ويمكن بواسطة هذه اللغة إنشاء وثائق يمكن استعراضها من أي متصفح أو أي برنامج معد للتعامل مع لغة XML كما يمكن لأي مستخدم لأوفيس 2000 من مايكروسوفت أن يرى . وباختصار فإن لغة XML هي طريقة لوصف البيانات وهيكلتها على الإنترنت بحيث يمكن لبرامج مثل قواعد البيانات الاستفادة من هذه البيانات والبحث فيها والحصول منها على المعلومات . فمثلاً إذا كنت تقوم حالياً بنشر كتالوغ على الإنترنت لمنتجات تقوم ببيعها وكنت تستخدم لغة HTML فإن عليك أن تضع هذه المعلومات على شكل صفحات تحتاج لتغييرها يدوياً في كل مرة تريد تحديث الصفحة . ولنفترض أنك وضعت موقعاً للتجارة الإلكترونية وأردت تحديث منتجاتك الموجودة على الموقع فإنك ستحتاج إلى تحديث الصفحة كاملة . أما عند استخدام لغة XML فكل ما عليك عمله هو وضع وثيقة DTD تحتوي على علامات تصف الأصناف التي يحتويها متجرك مثلاً (إذا كنت تبيع الكتب ) كتب الفلسفة وكتب التاريخ وكتب الاقتصاد . ثم تقوم بكتابة الصفحة مستخدماً علامات تصف المواد الموجودة ضمن الكتالوغ مثل <philosophy> ابن رشد </philosophy> ، و <history> الحرب العالمية </history> وما إلى ذلك . وبالطبع فإن وثيقة DTD ستحتوي على تعريف للعلامات المستخدمة . وعندئذ تضع صفحاتك على الإنترنت . وعندما يريد المستخدم أن يبحث عن كتب الفلسفة مثلاً فإنه سيتمكن بفضل استخدام نظام العلامات الخاص الذي تستخدمه من العثور على كتب الفلسفة تحديداً لأنك وصفتها بهذا الشكل . أو لنقل أنك تريد تحديث صفحات الموقع باستخدام برنامج لقواعد البيانات يدعم لغة XML فعندئذ يمكنك تمرير صفحات الموقع من خلال قاعدة البيانات ، والتي ستتمكن من التعامل مع هذه البيانات بسهولة لأن هيكليتها موصوفة ومعروفة ضمن الوثيقة . وبكلمات أخرى يمكن لبرنامج قاعدة البيانات أن يأخذ عنصراً مثل "ابن رشد" وأن يضعه ضمن حقل كتب الفلسفة في قاعدة البيانات لأن العنصر موصوف بهذا الشكل .
وثائق XML
تقوم لغة XML بوصف الوثائق من خلال تحديد العناصر الأساسية في كل وثيقة. وهذه العناصر هي العلامات markup، ولهذا السبب نقول لغة تعليم النص ، وهذه العلامات تُستخدم لوصف الوثائق بعدة طرق . وتستخدم كل وثيقة XML علامات معينة لوصف عناصر الصفحات ، كما أن بعض وثائق XML تخضع لتعريفات محددة تُدعى وثائق تعريف النوع Document Type Definitions . ووثائق XML الجيدة التكوين Well-Formed والصحيحة valid ، وهما النوعان المستخدمان في لغة XML ، يجب أن يكونا متوافقين مع معيار XML، في حين أن الوثائق الصحيحة يجب أن تتوافق مع وثائق تعريف النص المرتبطة بها ، والتي تحتوي على التعريف الخاص بهيكلية الوثائق المستخدمة . إذا فحتى تكون وثيقة XML صحيحة فإنها يجب أن تكون جيدة التكوين ومتوافقة مع مقياس XML كما أن هذه الوثائق يجب أن تُحرر وتُعرض وتُعالج اعتماداً على وثائق تعريف نص محددة وخاصة بها . وحتى تكون وثائق XML جيدة التكوين فإنها يجب أن تحقق ثلاثة شروط هي : 1- يجب أن تبدأ الوثيقة بإعلان XML أو XML Decleration بالشكل التالي: <?xml version= 1.0 ?> 2- يوجد عنصر جذري root element يحتوي جميع العناصر الأخرى . أو بمعنى آخر العنصر الأساسي الذي يقوم بوصف هيكلية الوثيقة . 3- لغة XML لا تسمح للمستخدم يتضمين عناصر داخل عناصر أخرى nesting، حيث يجب إقفال علامات كل عنصر قبل البدء بعنصر آخر .
عناصر لغة XML
تتكون وثائق XML من عدة عناصر منفصلة ، يمكن إنشاء أو تعديل كل منها على حدة وهو أحد عناصر القوة في هذه اللغة من حيث القدرة على معالجة أنماط مختلفة من الوثائق . كما أن وثائق XML تتميز بجزئيتها modularity مما يجعلها عالية الانتشار distributed بحيث يمكن وضع عناصر الوثيقة الواحدة على نظم متعددة للرجوع إليها لاحقاً ، مع الاحتفاظ بالتسلسل المنطقي في الوثيقة الواحدة . والأجزاء الرئيسية في وثيقة XML هي ما يُدعى بإعلان SGML أو SGML deceleration وهذا الجزء ثابت يمكن لكافة أدوات XML فهمه والتعامل معه ؛ ثم هناك القسم الخاص بتعريف أنواع البيانات DTD ، وهو حجر الأساس لكافة وثائق XML والذي يتم فيه تعريف كافة العلامات المستخدمة في الوثيقة لتفهمها المستعرضات أو متصفحات الإنترنت ؛ ثم هناك القسم الخاص بتعريف محتوى الوثيقة أو Document instance والذي يتم فيه وصف هذا المحتوى من خلال تعليمه .
وفي لغة XML تلعب هيكلية الوثيقة دوراً هاماً حيث أن جميع أجزاء الوثيقة موصوفة وتتعامل معها الأدوات المختلفة حسب موقعها ضمن هيكلية معينة. ويقوم معيار XML بتحديد علامات عامة markup declaration تصف هيكلية الوثيقة ، وعلامات تقوم بوضع هيكلية لمحتوى الوثيقة . ويتم استخدام العلامات العامة لوصف الأقسام المختلفة في الوثيقة .
العمل مع وثائق XML
يمكن لمحرري الصفحات ومصممي الوثائق أن يعملوا مع وثائق XML باستخدام برمجيات تجارية أو يمكنهم الاعتماد بشكل تام على برمجيات ومحررات مجانية للنصوص . ونسق XML مرن جداً وبسيط ولا يضع قيوداً على الأدوات المستخدمة سواء كانت بسيطة أو معقدة , ومستوى تعقيد أي مشروع يعتمد لغة XML يعتمد على ما يريده مصممو هذا المشروع وليس على النسق نفسه . فالمشاريع البسيطة لن تحتاج إلى الكثير من التعقيد في حين أن المشاريع المعقدة ستحتاج إلى استخدام أساليب برمجية معقدة .
إنشاء الوثائق
إن تحرير وثائق XML هو أهم جزء في نظم المعلومات التي تعتمد تقنية XML . وتشمل عملية التحرير استخدام برمجيات تحرير نصوص XML ، ومحررات النصوص العادية ، وأيضاً برمجيات تحويل الوثائق من أنساق مختلفة إلى XML. وهذه الطرق المتبعة لتحرير XML تتطلب من منشئي هذه النصوص أن يقوموا بوصف الوثائق حسب نظام تعليم معين ، وربما الرجوع إلى وثيقة تعريف نص معينة .
وتقدم محررات XML لمصممي المواقع بعضاً من أو جميع مزايا لغة XML ، مما يؤدي إلى تسهيل إنشاء وتحرير وثائق XML . وبفضل استخدام أدوات التحرير والتحقق من صحة النصوص يمكن لكتاب هذه النصوص أن يستخدموا وثائق تعريف النصوص وأن يتأكدوا من اتباع المحررين الآخرين لهذه الوثائق التعريفية . أما وثائق XML الصالحة للاستخدام Valid ، والتي تم إنشاؤها في محررات نصوص فلا تدعم ميزة التحقق من الصلاحية ، فيمكن تصريف هذه الوثائق والتحقق من صلاحيتها باستخدام برنامج تصريف parser. وتسمح معظم أدوات تحرير النصوص بإنشاء وثائق جيدة التكوين well-formed، أي أنها تُنشأ من دون وثيقة لتعريف النص ولكنها تُوصف باستخدام علامات من ابتكار محرر الوثيقة . وعند عمل محررات النصوص بأنساق صحيحة وجيدة التكوين ، يسمح للمحررين أن يختاروا عنصراً جذرياً وأن يصفوا أو يضعوا علامات ضمن وثائقهم ، وأن يقوموا ببناء هيكليتها أثناء كتابتهم لها .
أما أدوات تحرير النصوص العادية فتسمح لك باستخدام جميع المزايا الموجودة في لغة XML ، ولكنها لا تقدم للمستخدم أية فعاليات لمساعدة الكاتب أثناء استخدامها ، مما يتطلب أن يكون هؤلاء الكتاب من المحترفين في معرفة خبايا لغة XML وأنماط الوثائق التي يقومون بتحريرها ، إذا تواجدت أية أنماط خاصة . ويمكن نظرياً إنشاء الوثائق بلغة XML باستخدام أي برنامج لتحرير النصوص ، حيث أن وثائق XML هي وثائق نصية . وعند استخدام محررات نصوص عادية لإنشاء وثائق بلغة XML فإنه يجب أن يتم تصريفها للتحقق من أنها جيدة التكوين وصحيحة ، ولذلك يجب استخدام مصرِّف حيث أن محررات النصوص العادية لا تقدم مثل هذه الخدمات . أما تحويل النصوص من وإلى XML فإن هذه إحدى الفعاليات التي يقوم بها محرر النصوص . ويتطلب ذلك في العادة استخدام مجموعة محددة من القواعد الخاصة بالتعليم ، والتي على الأغلب تكون معرّفة في وثيقة لتعريف النصوص ، إضافة إلى استخدام برنامج خاص بتحويل الأنساق . وعادة ما تكون عملية تحرير الوثائق بلغة XML مؤتمتة ( أي أنك لن تضطر إلى كتابة الكثير من الشيفرة البرمجية تماماً مثل البرامج التي تقوم بواسطتها بتصميم صفحات الإنترنت بلغة HTML) ، حيث أن العمليات الأساسية التي يقوم بها من يضعون الصفحات بلغة XML لا تختلف من موقع إلى آخر . ولترجمة الصفحات من وإلى XML يتم استخدام بعض التقنيات مثل XSL ، و DSSSL ، وأومني مارك Omnimark كما يمكن استخدام "أومني مارك" لتحويل أية وثيقة نصية إلى XML .
العرض والطباعة
يمكن عرض وثائق XML في أي متصفح للويب متوافق مع يدعم هذه اللغة وطباعة هذه الصفحات من داخل المتصفحات , وفي الوقت الحالي فإن المتصفحات الكبرى مثل إكسبلورر5 ونافيغيتور 6،4 تدعم هذه اللغة . كما أن XML هو النسق الأساسي المستخدم في أوفيس2000 . أي أن كل وثيقة تنتجها باستخدام أوفيس هي في أساسها وثيقة . XML وفي حالة متصفحات الإنترنت التي تدعم XML فإن هذه المتصفحات قد تحتاج إلى وثائق أنماط stylesheets لتحصل على المعلومات الخاصة بكيفية تهيئة وتنسيق الصفحات . ويمكن لوثائق الأنماط هذه أن تصبح ضخمة الحجم في حالة المواقع الكبيرة ، وقد يحتاج مصمموا الصفحات إلى أن يتعلموا لغة برمجة جديدة تماماً ، ولكنها مع ذلك ذات فائدة عظيمة للذين يريدون تعريف عناصر صفحاتهم بدقة باستخدام XML .
كما تدعم لغة XML تحويل الوثائق إلى أنساق سهلة الطباعة مثل RTF أو PDF . وفي معظم الأحوال يمكن استخدام وثائق الأنماط لطباعة صفحات الويب أو عرضها ضمن المتصفح . وهذه الخاصية هي السبب في المرونة العالية للغة XML حيث أنها تسمح بتحويل الوثائق إلى عدة أنساق حسب جمهور المستخدمين المستهدف .
مستقبل XML
في معرض جافا ون JavaOne الذي أقيم في سان فرانسيسكو الصيف الماضي ، وفي حديث خاص بمجلة ويندوز العربية ، مع السيد سيمون فيبس من شركة آي بي أم ، والمسؤول عن الترويج للغة XML ، أوضح لنا السيد فيبس أهمية هذه اللغة بقوله ، " باستخدام هذه اللغة تصبح البيانات كونية ومنفصلة عن البرنامج الذي يستخدمها . ( أي أنه يمكنك مثلاً إنشاء جدول حسابي في إكسل وحفظه بنسق XML ليتمكن أي برنامج جداول حسابية آخر يدعم اللغة من قراءته ) .
ويمكنني عند استخدام هذه اللغة أن أقوم بإنشاء البيانات وإرسالها من جهازي إلى جهازك واستخدامها دون أن يكون لدينا بالضرورة التطبيق نفسه الذي قام بإنشائها . وهذا هو ما يحتاجه المستخدمون في عصر الويب . لنفترض مثلاً أنني أريد لك أن تستخدم كتالوغ خاص بي على الإنترنت . ما يحدث في الوقت الحالي هو أن عليك أن تقوم باستخدام متحكم آكتف إكس الذي استخدمه أنا لقراءة الكتالوغ حتى تتمكنمن فعل ذلك . وفي هذه الأثناء فإن عليك أن تتأكد أن متحكم آكتف إكس الذي أستخدمه لن يتسبب لجهازك بأية أعطال . أما عند استخدام لغة XML لتصميم الكتالوغ فإن كل ما علي فعله هو تزويدك بوثيقة تعريف النص الخاصة بي DTD لتتعرف على بياناتي وتتمكن من قراءتها ، دون الحاجة إلى أي ملحقات خاصةقد تتسبب في إيذاء الجهاز وفي هذه الحال فستقتصر علاقتنا على البيانات التي نستخدمها .
لغة XML بالنسبة للبيانات هي مثل جافا بالنسبة للبرمجيات ، ففي حالة برمجيات جافا يمكنك تشغيل التطبيق على أي جهاز ما دام يمتلك آلة جافا الافتراضية ، وفي حالة XML يمكنك قراءة أي نسق بيانات طالما كنت تمتلك وثيقة تعريف النص الخاصة به ."
وقال السيد فيبس أن أحد أكبر أسباب انتشار مقياس XML بهذه السرعة كان انخراط مايكروسوفت بجدية في دعم هذا المعيار العالمي .
وقد قامت مايكروسوفت خلال الشهور الأربعة الماضية بدفع معيار XML بقوة . ولتحقيق أغراضها قامت الشركة مثلاً في مؤتمر إيد تيك EdTech ، والذي أقامته في أمستردام خلال شهر حزيران الماضي ، بالإعلان عن مبادرة بيز توك BizTalk والذي سيكون هيكلية تطوير قياسية للغة XML . وإننا لنعلم أن مثل هذه الهيكلية بالغة الأهمية بالنسبة للغة عالية المرونة وقابلة للتعديل مثل XML . فمثلاً إذا كنت تطور نظاماً للفواتير باستخدام هذه اللغة فإنك ربما ستقوم بتطوير نظام للفواتير يختلف تماماً عن نظام للفواتير يضعه مبرمج آخر باستخدام هذه اللغة . أو إذا كنت تقوم بتطوير برنامج للرسوم البيانية فإنك ستستخدم تعريفات مختلفة عن تلك التي سيستخدمها مبرمج آخر . ومن خلال بيز توك تسعى مايكروسوفت إلة منح المطورين نقطة مركزية واحدة يقدمون إليها تعريفاتهم ولغاتهم الفرعية التي يبتكرونها كما أن مايكروسوفت ستقدم إليهم من خلال موقع http://www.biztalk.org نقطة مركزية يمكنهم من خلالها أن يحصلوا مجاناً على الأدوات والمعلومات التي يحتاجونها للتطوير .
ومايكروسوفت ليست الشركة الوحيدة التي تدفع مقياس XML بقوة ، فهناك أيضاً أ.ب.م والتي قامت بتضمين دعم XML في جميع منتجاتها أو ستقوم بتضمين هذا الدعم في الإصدارات الجديدة من المنتجات مثل ويب سفير webSphere ، ونيت كوميرسNet.Commerce وذلك لإتاحة الفرصة للمطورين ليقوموا بإنشاء مواقع تدعم لغة XML من اليوم الأول . وهناك أيضاً أواكل والتي أضافت الدعم لهذه اللغة في الإصدار 8 من قاعدة بياناتها ، وصن مايكروسيستمز والتي أعلنت أنها ستقوم بتطوير ملحق قياسي Standard Extension للغة جافا يدعم XML .
وستقدم صن مايكروسيستمز للمطورين أداة للتصريف النحوي للغة XML وللتحقق من صحة الوثائق التي يتم إنشاؤها بهذه اللغة .