تعلم Xml

الناقل : mahmoud | الكاتب الأصلى : Double-Click | المصدر : www.boosla.com

في درسنا عن XML سنتعلم الفرق بين XML و HTML وأيضا سنعرف كيف نبدأ باستخدامها


XML : صممت لتكون أو لتصف البيانات وتركز على نوعية البيانات أو ما هي البيانات .
HTML: صممت لتعرض البيانات وتركز على مظهر البيانات .
ما الذي ينبغي علينا معرفته قبل تعلم XML :
قبل أن تبدأ معنا عليك أن تعرف أساسيات بسيطة أو خلفية عن :
www,HTML وأساسيات تصميم صفحات الإنترنت.
Web Scripting Language Like JavaScript or VBScript

ما هي XML:

XML stands for EXtensible Markup Language وهي لغة وصف أكثر من HTML
وصممت لوصف البيانات اي لغة رمزية .
و XML tags ليست معرفة مسبقا أي أنت ملزم لتعرف أطراف أن تكونها
XML تستخدم Document Type Definition وهي صممت لتصف نفسها بنفسها


الفرق الرئيسي بين XML و HTML


XML صممت لنقل البيانات
XML ليست بديل ل HTML ولا تحل مكانها
XML و HTML صمموا لأهداف مختلفة .
و HTML لعرض البيانات والمعلومات بينما XML لتصويرها أو وصفها .

XML لا تقوم بأي شيء وهي لم تصمم لتقوم بأي شيء ربما من الصعب فهم هذا ولكن XML لا تقوم بأي شيء بل لتكوين تراكيب لتخزين وإرسال المعلومات .
المثال التالي هو لملاحظة مكتوبة من Mouse إلى Crazy ومخزنة ك XML



<note>
<to>Mouse</to>
<from>Crazy</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


الملاحظة لديها Header و مكان الرسالة Message body وهي أيضا إرسال واستقبال معلومات ولكن . هذا مستند XML لا يقوم بعمل أي شيء هي فقط معلومات فقيرة هذا معنى جيد ولكن موضوعة داخل XML tags
على أحد ما أو أي شخص كتابة برنامج صغير يقوم بإرسالها أو استقبالها أو عرضها .

XML هي لغة حرة و XML tags غير معرفات مسبقا أي لك الحرية باختراع أي وسم تريده أو tags
بينما HTML tags معرفات مسبقا ويلزم عليك أن لا تستخدم غيرهم مثل :
((<p>, <h1> وغيرهم بينما XML تتيح للكاتب كتابة ما يخصه وهو كما موضح في المثال السابق حيث استخدمت (<to> and <from>) وهما غير معرفات بأي XML standard وهم محض اختراع من الكاتب نفسه .

XML هي مكملة أو متممة ل HTML

XML ليست تبديل أو بديل ل HTML


أعدت هذا التوضيح مرة أخرى لأنه من المهم أن تعرف أن XML ليست بديل ل HTML
وأنه في المستقبل سيكون ل XML استخدام واسع في وصف البيانات بينما HTML ستستخدم ل Format وعرض نفس البيانات .

XML في مستقبل تطوير المواقع

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

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

XML مع B2B

مع XML فأن المعلومات المالية يمكن تبادلها عبر الإنترنت توقع أن ترى المزيد حول XML و B2B
(Business To Business) في المستقبل القريب .
XML ستصبح اللغة الرئيسية لتبادل المعلومات المالية بين الأعمال عبر الإنترنت فالعديد من برمجيات B2B تحت التطوير الآن .

XML يمكن استخدامها في مشاركة البيانات


بما أن بيانات XML مخزنة في شكل مبسط جداً وصرف Plain Text format ف XML تزود البرامج وغيرها بطريقة منعزلة ومستقلة لمشاركة البيانات .
وهذا يجعل من سهلة جداً في تكوين بيانات تعمل عليها مختلف البرمجيات وهي تسهل عملية التحديث من نظام إلى نظام آخر .
XML يمكن أن تستخدم في تخزين البيانات في ملفات أو قاعدة بيانات , البرامج يمكن أن تكتب لتخزن وتجلب المعلومات من المخزن وبرامج أخرى تستخدم لعرضها

XML يمكن أن تجعل من بياناتك أكثر نفعا

بما أن XML مستقلة عن Hardware Application ,Software, فيمكنك أن تجعل من بياناتك متوفرة للغير دون HTML Browsers .
البرامج الأخرى بإمكانها الولوج داخل ملفاتك من XML كمصدر للبيانات كدخولهم لقواعد البيانات ، بياناتك أيضا بإمكانها أن تكون متوفرة لجميع reading machines (agents) .

XML يمكن أن تستخدم لتكوين لغات جديدة

WML وهي The Wireless Markup Language وهي تستخدم لتعليم برامج الإنترنت لتتعامل مع أجهزة مثل أجهزة الهواتف النقالة هي مكتوبة بلغة XML .


XML Syntax
قوانين بناء جمل XML سهل جدا وبسيطة جداً وهي سهل تعلمها و استخدامها .
لهذا السبب إيجاد برنامج يقرأ ويتعامل مع XML ببراعة سهل جداً

مثال على XML Document



<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Silver</to>
<from>Mouse</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>



السطر الأول من المستند هو XML declaration يبن XML Version وتشفير الحروف داخل المستند
في هذه الحالة فإنه تحدد 1.0 من XML وتستخدم
ISO-8859-1 (Latin-1/West European) character set

السطر الذي يليه يبين جذر عناصر أو العنصر الأب المستند وكأنك تقول هذا المستند هو Note



<note>


السطور الأربعة التالية توضح أربعة أبناء للأب أو الجدر (to, from, heading, and body):



<to>Silver</to>
<from>Mouse</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>



وأخير أخر سطر يوضح نهاية الجدر للعناصر السابقة



</note>


من المثال السابق بإمكانك معرفة أنه ملاحظة من Mouse إلى Silver أعتقد أن XML رائعة بأن تكون توضح نفسها بنفسها
كل عناصر XML يجب أن تحتوى على وسم نهاية أو Closing tag في HTML بعض العناصر لا تحتوى على وسم نهاية فالكود التالي هو مسموح بلغة HTML



<p>This is a paragraph
<p>This is another paragraph


ولكن XML يجب على جميعها أن تحتوي على Closing tag مثل:



<p>This is a paragraph</p>
<p>This is another paragraph</p>




XML tags are case sensitive


ليست مثل HTML فحالة الأحرف في وسم البداية والنهاية يجب أن تكون متماثلة
مثال:



Message>This is incorrect</message>
<message>This is correct</message>


كل عناصر XML يجب أن تكون متداخلة فمثلا في HTML



<b><i>This text is bold and italic</b></i>


يمكن أن تكون tags هكذا ولكن بXML يجب أن تكون بالصيغة التالية



<b><i>This text is bold and italic</i></b>


كل مستندات XML يجب أن يكون هناك جذر لباقي العناصر وكل العناصر الباقية يجب أن تكتب داخل هذا الجذر



<root>
 <child>
  <subchild>.....</subchild>
 </child>
</root>


جميع الخصائص يجب أن تكون مع علامة التنصيص عناصر XML يمكن أن يكون لها خصائص مثلها مثل HTML ولكن يجب أن تكون داخل " " أو ‘’
المثاليين التالين الأول خطأ والثاني صحيح أدرسهما وستتعلم كيف:



<?xml version="1.0" encoding="ISO-8859-1"?>
<note date=12/11/2002>
<to>Silver</to>
<from>Mouse</from>
</note>

<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2002">
<to>Silver</to>
<from>Mouse</from>
</note>


الخطأ في المثال الأول أن الخصائص في Note لم تكن quoted
This is correct: date="12/11/2002". This is incorrect: date=12/11/2002
With XML, white space is preserved
بعكس HTML فجملة
Hello my name is Mouse,

فستعرض
Hello my name is Mouse


لأن HTML تجرد الفراغ

With XML, CR / LF is converted to LF
With XML, a new line is always stored as LF.
هل تعرف الآلة الطابعة ؟ هي آلة استخدمت في القرن الماضي بعد ما تكتب سطر واحد على الآلة فإنك تحتاج يدوياً أن ترجع

printing carriage لليسار ويدويا ترفع الورقة سطر فوق ولكن في تطبيقات الويندوز فإن السطر الجديد من الكتبة مخزن تلقائي زوجان اثنين CR LF (carriage return, line feed) characters

In Unix applications, a new line is normally stored as a LF character. Macintosh applications use only a CR character to store a new line.

التعليقات في XML
فهي مثل التعليقات الموجودة في HTML



<!-- This is a comment -->


XML Elements :

لديها قوانين بسيطة فمستند XML يمكن أن يمتد ليحمل المزيد من المعلومات
انظر الملاحظة التالية بXML



<note>
<to>Mouse</to>
<from>Adam</from>
<body>Don't forget me this weekend!</body>
</note>


الآن لنعتبر بأننا كونا برنامج يقوم باستخراج مكونات <to>, <from>, and <body> من مستند XML لينتج خرج كالأتي :

MESSAGE
To: Mouse
From: Adam
Don't forget me this weekend!


ولنتصور أن كاتب مستند XML قام بإضافة بعض البيانات الإضافية



<note>
<date>2002-08-01</date>
<to>Mouse</to>
<from>Adam</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


هل البرنامج سيتوقف أو يحصل خطأ به ؟
لا فالبرنامج يجب أن يبقى قادر على العثور <to>, <from>, and <body> elements داخل مستند XML وينتج نفس الخرج
علاقات مكونات XML

لفهم مصطلحات XML الفنية
يجب أن تكون أسماء المكونات المثال التالي سيوضح ذلك
My First XML
Introduction to XML
§ What is HTML
§ What is XML
XML Syntax
§ Elements must have a closing tag
§ Elements must be properly nested

كان هذا وصف لمكونات كتاب

XML ستصفه كالتالي :



<book>
<title>My First XML
</title><prod id="33-657" media="paper"></prod>
<chapter>
Introduction to XML
<para> What is HTML
</para>
<para>What is XML
</para>
</chapter>
<chapter>
XML Syntax
<para>Elements must have a closing tag
</para>
<para>
Elements must be properly nested
</para>
</chapter>
</book>


BOOK هوRoot للعناصر الباقية

Title, prod, and chapter فهم child elements ل root أي أن Book يكون Parent ل title و prod و chapter .

Element Naming


تسمية العناصر يجب أن تتبع هذه القوانين :
· الأسماء يمكن أن تحتوى على أحرف أرقام ورموز أخرى .
· الأسماء يجب أن لا تبدأ برقم أو برمز .
· الأسماء يجب أن لا تبدأ ب xml أو XML أو Xml :
· الأسماء يجب أن لا تحتوى على space .
لذلك انتبه عندما تختار الأسماء فليست هناك أي كلمة محجوزة ولكن الفكرة هي أن تكون الأسماء معبرة
مثال :


<first_name>, <last_name>. تجنب استخدام "-" أو "." الأسماء يمكن أن تكون طويلة مثل ما أردت ولكن لا تبالغ في ذلك فمثلا :

<book_title> وليس بمثل هذا الشكل <the_title_of_the_book>.

ولتأخذ مثال جيد عن طريقة تسمية الأسماء هي قوانين الأسماء داخل Database

تستخدم المزيد من المعلومات للمكونات XML Attributes

من HTML ستتذكر هذا <IMG SRC="computer.gif">
Src خاصسة تضيف معلومات إضافية عن الصورة أو img



<img src="computer.gif">
<a href="demo.asp">



فالخصائص تزود بمعلومات ليس بجزء من البيانات فمثلا المثال التالي
يوضح نوع الملف وهو مهم للبرنامج الذي سيتعامل مع البيانات




<file type="gif">computer.gif</file>



Quote Styles, "female" or 'female'?

الخصائص دائما يجب أن تكون بين التنصيص فردي أو زوجي يمكن استخدامهم فمثلا



<person sex="female">



يمكن أن تكتب أيضا هكذا



<person sex='female'>


ملاحظة في الخصائص التي تحتوى بداخلها double quotes فإنه من الضرورة أن تستخدم single quotes كالمثال التالي



<gangster name='George "Shotgun" Ziegler'>


والعكس أيضا حيث إذا كانت تحتوى بداخلها single quotes فمن الضرورة استخدام double quotes كالتالي



<gangster name="George 'Shotgun' Ziegler">