| ![[Floris Lambrechts]](../../common/images/Floris_Lambrechts.png)  المؤلف  Floris Lambrechts
 <floris(at)linuxfocus.org>
 
 نبذة عن الكاتب:
 
 
أنا محرر هولندي  في مجلة لينكس-فوكس   منذ سنوات و أدرس الهندسة الكهربائية في معهد لوفان في بلجيكا،  أقضي وقتي مع لينكس و PHP و XML و لينكس-فوكس  و المطالعة.
 
 ترجمه إلى العربية:
 Hakim Amrouche <amroche_hakim(at)yahoo.com>
 
 الفهرس:
 | 
 
اعرف عن XML
 ![[Illustration: xml]](../../common/images/illustration242.png) 
نبذة مختصرة:
هذا مدخل  إلى 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 واضحة الشكل سهلة الكتابة و القراءة للناس
 .
 
شرطة الصياغة في موزيللا أثناء العمل ...
انتبه أن هذه الفرضيات تبقى نظرية في بعض الأحيان، و غير عملية، إذ معظم معالجات 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 المتوفرة
هذه بعضها:
 - Docbook-XML
 Docbook لغة لكتابة مستندات مهيكلة مثل الكتب و المقالات تستعمل أيضا في أعمال أخرى
. Docbook الآن هي  SGML DTD (SGML هي لغة تأشير قياسية),
لكن توجد نسخة شائعة منها على XML
.
 
 
- MathML
 MathML ( لغة تأشير رياضية   Mathematical Markup Language
)تستعمل لوصف
العبارات الرياضية
و المعادلات.
و هي أداة طيعة رائعة للرياضياتيين
أما الكيميائيون  فلهم لغتهم الخاصة
CML, أو Chemical Markup Language.
إعلم أن   Mozilla 1.0 يدعم MathML تلقائيا.
 
 
- RDF
 RDF إطار وصف الموارد Resource Description Framework.
لترميز و إعادة استعمال المعالم في الواقع تستعمل عادة من طرف صفحات  الويب و المواقع، لأجل تبادل الأخبار بينهم حول الأخبار التي ينشرونها، مثل الموقع
 الهولندي
linuxdot.nl.linux.org
يستعمل ملفات
  RDF  الخاصة بالمواقع الأخرى لعرض الأخبار
    أشهر مواقع الأخبار .
(مثل Slashdot)
تقدم ملفات
 RDF لتضعها في صفحتك فتحصل على ألخبار .
 
 
- SOAP
 SOAP تعني  for Simple Object Access Protocol   مرسوم بلوغ الأشياء البسيطة
.
لغة مستعملة
للاتصال بين البرامج process ( تبادل البيانات و استدعاء التدابير عمن بعد)
(exchange data and perform remote
procedure calls)
بواسطته تتواصل  البرامج
فيما بينها من خلال مراسم مثل HTTP مثلا.
أعتقد أن عاطف له ما يقول ( انظر المراجع)
 
 
- SVG
 Scalable Vector Graphics الرسوم الخطية القابلة للتمدد .
يعتبر الثلاثي  PNG, JPEG2000 وSVG مستقبل الصور على الويب
. PNG ستعوض  GIF
(صور نقطية مضغوطة بأقل ضياع بشفافية), وJPEG2000 قد تخلف
  .jpg  ( صور نقطية مضغوطة ضغطا مضبوط درجة الضياع).
SVG
ليست صورة نقطية بل تمثل الصور في أشكال هندسية ( خطوط، دوائر)
و فيها وظائف مثل الحركية و التخطيط مما يقارنها بـ
  Macromedia  Flash.
يمكنك استعمالJavaScript
في   ملفات
.svg
 و كتابة زمر  .svg code. ياللمرونة !
 لكن  svg
ما زالت جديدة .
في الوقت الحالي توجد متصفحات نوعية رفيعة
من أجل
SVG
متوفرة من ADOBE  خاصة بوندوز
و الماكنتوش
، كما أن موزيللا
يعمل على إنشاء متصفح svg
(
ليس متوفرا حتى الآن)
من أجل استعماله عليك بتحميل نسخة خاصة من
المتصفح
 ملاحظة :ملفات  .svg قد تكون كبيرة جدا لذا غالبا ما تضغط هذه الملفات بخوارزمية gzip
 
 
- XHTML
 XHTML هو اشتقاق  XML من  HTML  الإصدار4.01.
 و بسبب صرامة قواعد XML فلا يمكن عمل بعض ما يمكن بـHTML أي أن صفحة XHTML ليست صالحة بالضرورة لHTML
 .
برنامج يمكنه تحويل
  HTML  إلى  XML.
 
 
- أخرى
 بعض أنواع الملفات الجديدة
تستعمل
 XML,
 مع ضغطها بـ.gz أو .zip .
 مثلا صياغة ملفات KOffice هي
 XML DTD.  هذا مفيد جدا
 لأنها تتيح للمستعملين
 إدراج تطبيقات أخرى
 في نفس المستند
 مثل إدراج  KChart spreadsheet في
 KWord document  .
روابط 
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
 
تعقيبك على هذا المقال
لكل مقال صفحة خاصة بالتعقيبات، أرسل تعقيبا أو اطلع على تعقيبات الآخرين. 
2002-04-16, generated by lfparser version 2.27