[LinuxFocus-icon]
الأولى  |  الخارطة  |  فهرس  |  بحث

أخبار | محفوظات | روابط | عن المجلة
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Portugues  Russian  Turkce  Arabic  

[Floris Lambrechts]
المؤلف Floris Lambrechts
<floris(at)linuxfocus.org>

نبذة عن الكاتب:

أنا محرر هولندي  في مجلة لينكس-فوكس   منذ سنوات و أدرس الهندسة الكهربائية في معهد لوفان في بلجيكا،  أقضي وقتي مع لينكس و PHP و XML و لينكس-فوكس  و المطالعة.



ترجمه إلى العربية:
Hakim Amrouche <amroche_hakim(at)yahoo.com>

الفهرس:

 

اعرف عن XML

[Illustration: xml]

نبذة مختصرة:

هذا مدخل  إلى XML حيث سنلتقي بالقطة الافتراضية eddy و قواعد XML و بعض DTD لا تقلق ستعرفها بعد قليل ;-)

 

Introduction

في صيف 2001 التقى بعض محرري مجلتنا في بوردو LSM، جل المحادثات دارت على XML، مضت ساعات طويلة ممتعة في شرحه، و ماهيته و ما يقدر أن يعمله و كيف يستعمل؟ و هذا المقال  يجيب عن ذلك.أشكر Egon Willighagen  و Jaime Villate  لأنهما علماني XML و كل ما في المقال استقيته من مقال Jaime ( انظر المراجع).

 

What is XML

أولا قواعد XML قريبة من HTML و هو لغة تأشير أخرى مثل HTML  و SGML، لكن لها مزايا أخرى.Xml  له مزايا مما يجعله فعالا في تنسيق المعلومات و وصف معظم الأشياء المركبة، كذلك من السهل على الناس قراءتها، و أيضا يسهل صياغة البرامج، كيف ذلك؟ فلنتقصى.Eddy, the meta cat XML لغة تأشير mark up  ، النصوص المكتوبة في لغة  التأشير فيها شيئان، بيانات و معالم ( metadata)

Eddy, the meta cat

البيانات هي ما تعرف، أما المعالم فهي بيانات خاصة تزيد معنى البيانات في حد ذاتها، مثلا الجملة 'My cat is called Eddy'. الإنسان يدرك أن اسم حيوان 'cat' و أن 'Eddy' هو اسمها لكن الحاسوب لن يدرك ذلك، لذ أضفنا المعالم لتبيان معنى البيانات.

 <sentence>
   My <animal>cat</animal> is called <name>Eddy</name>.
 </sentence>

الآن يمكن للبرنامج أن يدرك أن cat حيوان و أن eddy اسمه ، غذا أردنا أن نجعل كل الأسماء تبدو زرقاء و الحيوانات تبدو حمراء فـ XML يجعل هذا سهلا جدا ( للمتعة فقط) فنحصل على

 My cat is called Eddy.

الآن يمكننا نظريا أن نضع التنسيق ( اللون مثلا ) في ملف ما نسميه stylesheet. و هكذا نكون قد فصلنا بين معلومات التنسيق و المحتوى و هذا ما يسميه المصممون منهجية في تصميم المواقع . إن إضافة المعالم جيد لكن هذا عمل لغة التأشير فما بال XML إذن؟

قواعد الشرطة

أولا فإن ل XML صياغة صارمة، إذ لابد لكل معلم <tag> أن ينتهي بمعلم آخر </tag> [ من الغباء كتابة <tag></tag> دون أي شيء بينهما فيمكنك كتابة <tag /> ] فقط و تقتصد دقائق من حياتك
قاعدة أخرى أنه يجب أن لا تخلط ما بين المعالم، أي عليك إقفال المعلم قبل غلق المعلم الموالي. لذا فالمثال الآتي ليس صالحا

<B> Bold text <I> Bold and italic text </B> italic text </I>

عليك أن تغلق المعلم The syntax rules say that you should close the </I> قبل غلق المعلم الآخر</B>
احرص أيضا أن تكتب كل عناصر XML ضمن معالم ( ما عدا معلمين اثنين فقط) لهذا السبب في المثال السابق كتبنا المعالم <sentence> حول الجملة. التي بدونها بعض الكلمات ستخرج عن المعالم. و بما أن XML قواعده صارمة يسهل على البرامج قراءة البيانات، و تصبح نصوص XML واضحة الشكل سهلة الكتابة و القراءة للناس .
Mozilla screenshot
شرطة الصياغة في موزيللا أثناء العمل ...

انتبه أن هذه الفرضيات تبقى نظرية في بعض الأحيان، و غير عملية، إذ معظم معالجات XML parsersالحالية ليست سريعة و تشغل حيزا كبيرا حتى يبدو أن لا يمكن لبرنامج أن يقرأ XML بالنسبة للبرامج التي تتعامل كثيرا مع المستندات أو تعالج مستندات كبيرة جدا، فإن XML ليس الخيار الأمثل، لكن لا يعني هذا أنه لا يستعمل لهذا.
مثال جيد لهذا أنك يمكن أن تصوغ قاعدة بيانات بسهولة ( جرب ذلك بـ HTML( هذا بالضبط ما قام به المحرر الهولنديEgon Willighagen لمجلتنا ( انظر مقاله في المراجع)
أما صرامة صياغة XML فتدبر أمرك لتجعلها في صالحك بأن تستعمل المدققات الإملائية و اجعل شرطة الصياغة تعينك، و اعمل بـDTD.  

DTD

في المثال السابق 'Eddy the meta-cat' ابتكرنا معالم XML خاصة بنا عمل جيد بيد أن ذوي الزي الأزرق يودون معرفة ما تعمله لماذا و كيف، لا بأس سنشرح هذا بواسطة DTD .

DTD يسمح لك بخلق معالم جديدة، أي لغة جديدة،
DTD أي Document Type Definition تعريف نوع المستندات ملف فيه وصف لغة من XML كل خصائصها (attribute( و كل توفيقاتها. DTD تصف ما يمكن عمله في لغتك من XML، و ما لا يمكنك عمله. إذن تحدثنا عن لغة XML و الآن نتحدث عن DTD خاصة.

أعمل الشرطة

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

المزج

من ميزات XML قدرتها على استعمال عدة DTD مرة واحدة، هذا يعني أنه بالإمكان استعمال عدة أنواع من البيانات في نص واحد.

هذا المزج يتم بواسطة فضاء الأسماء namespace، فبإضافة Docbook DTD في مستند .xml (لـ سابقة'dbk' فس هذا المثال ).
فإن كل معالم Docbook تصبح جاهزة للاستعمال في المستند ( لنقل أنه يوجد معلم docbook <just_a_tag>):

 <dbk:just_a_tag> بعض الكلمات </dbk:just_a_tag>

باستعمال نظام فضاءات الأسماء، بإمكانك استعمال أي معلم و أي خاصية لأي XML DTD مما يفسح أمامك الإمكانات كما سترى في الفقرة الموالية ...  

DTD المتوفرة

هذه بعضها:  

روابط

The W3C, or World Wide Web Consortium
معلومات عن XML, MathML, CML, RDF, SVG, SOAP, XHTML, namespaces...
www.w3.org

بعض المقالات لـ Jaime Villate (تحتاج الترجمة)
Introduction to XML(in Spanish)
How to generate HTML with XML(in Spanish)
LSM-slides

برنامج HTML tidy
www.w3.org/People/Raggett/tidy

Docbook
www.docbook.org

مشروع Mozilla.org لصور SVG
www.mozilla.org/projects/svg

مقالات لينكس فوكس المتعلقة:
Using XML and XSLT to build LinuxFocus.org(/Nederlands)
Making PDF documents with DocBook  

تعقيبك على هذا المقال

لكل مقال صفحة خاصة بالتعقيبات، أرسل تعقيبا أو اطلع على تعقيبات الآخرين.
 صفحة التعقيبات 

الصفحات برعاية طاقم لينكس فوكُس
© Floris Lambrechts, FDL
LinuxFocus.org

اضغط هنا للتنبيه عن خطأ أو لارسال ملاحظاتك إلى لينكس فوكُس
معلومات عن الترجمة:
en --> -- : Floris Lambrechts <floris(at)linuxfocus.org>
en --> ar: Hakim Amrouche <amroche_hakim(at)yahoo.com>

2002-04-16, generated by lfparser version 2.27