المؤلف Floris Lambrechts <floris(at)linuxfocus.org>
نبذة عن الكاتب:
أنا محرر هولندي في مجلة لينكس-فوكس منذ سنوات و أدرس الهندسة الكهربائية في معهد لوفان في بلجيكا، أقضي وقتي مع لينكس و PHP و XML و لينكس-فوكس و المطالعة.
ترجمه إلى العربية:
Hakim Amrouche <amroche_hakim(at)yahoo.com>
الفهرس:
|
اعرف عن 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 واضحة الشكل سهلة الكتابة و القراءة للناس
.
شرطة الصياغة في موزيللا أثناء العمل ...
انتبه أن هذه الفرضيات تبقى نظرية في بعض الأحيان، و غير عملية، إذ معظم معالجات 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