الرئيسية
سجل الزوار
القائمة البريدية
راسلنا
خريطة الموقع
جديد الصور
جديد البطاقات
جديد الصوتيات
المتواجدون الآن
تغذيات RSS
2012-08-16 06:25
منهجية عمل مستندات XML وتكوينها الهرمي . الدرس الرابع
سنناقش اليوم التركيب الهرمي الذي يكون مستندات XML وكيفية بناء البيانات وكيفية تمثيلها في مستند XML
- عندما نكون أمام كمية معلومات ضخمة أو حتى متوسطة الحجم فمن الأفضل تجميع هذه المعلومات التي تنتمي إلى موضوع واحد مع بعضها البعض بدل من تمثيلها كما هي .
نعطى مثال لكي توضح الصورة .
مثلا هذه المنتدى مجزأ إلى مجموعة من الأقسام والمواضيع الفرعية التي تتبع موضوعات فرعية والتي تتبع بدورها مواضيع رئيسيه بالإضافة إلى تقسيم الموضوع الواحد إلى مجموعة من الفقرات وهى عبارة عن ردود الأعضاء . فذلك يسهل من عملية استخراج المعلومات .
فنجد مطوري البرمجيات تستخدم هذا النموذج منذ سنوات عدة باستخدام بنية بينات تسمى Object model أو نموذج الكائن وهى مرتبطة مع بعضها بتسلسل هرمي . أيضا في لغة XML تجمع البينات في تسلسل هرمي فالبنود في المستند تتبع بعضها البعض بعلاقات Parent / Child أو الأب / الابن .
وهذه البنود تسمى بالعناصر elements وهى أجزاء منفردة من المعلومات .
نأخذ مثال
نلاحظ أن البند < Name> هو أب للبند < First> والبند < First> هو ابن للبند < Name> والبنود < First> و < Middle> و < Last> جميعها انساب لبعضها البعض لان جميعهم أبناء للبند < Name>
ونلاحظ أيضا أن النص هو ابن للعنصر الذي ينتمي له فالنص Emad يمثل ابنا للبند < First> .تسمى هذه البنية من البينات بالشجرة Tree فكل جزى من الشجرة يحتوى على أبناء تسمى بالفروع Branches وجميع الأجزاء التي تحتوى على أبناء تسمى بالأوراق Leaves
إذا نقول :
Element Content
العنصر < Name> يعتبر element content لان هناك عناصر تنتمي له وليس مجرد نص فإنه يعتبر محتوى عنصر .
Simple Content
العنصر < First> و < Middle>و < Last> هي محتوى بسيط Simple Content لأنها تحتوى على نص فقط .
Mixed Content
أيضا يمكن للعناصر أن تحتوى على عناصر أخرى وعلى نصوص في تلك الحالة فان للعناصر تلك محتوى مختلط Mixed Content على سبيل المثال .
نلاحظ في المثال هذا أن للبند < parent> ثلاث أبناء
نص ,, يحتوى على النص Computer
عنصر ,, < em> وهو عنصر ابن أيضا
نص ,, نص أخر يحتوى على النص arab
فيمكننا ألان تمثيل هذا المثال ببنية شجرية
نرجو أن تكونوا تفهمتم كيفية التمثيل الهرمي للبنود والعلامات فيما بينهما فأنك حينما تفهم ذلك ستتمكن من فهم طبيعة لغة XML
منهجية عمل XML وقواعدها :-
1) اللواحق والنصوص والعناصر Tags and Text and Elements
اللاحقة أو ما يطلق عليها البعض والوسم (Tag ) هي عبارة عن كلمة أو مصطلح موضوع بين رمزي إحاطة > < يمثل رمزا معرفا لتنسيق ما وذلك في مستندات HTML بينما يمثل اسما لعنصر Elements في مستندات XML
وكما تلاحظ فان الـ Tag تأخذ الطابع الزوجي فكل لاحقة لها لاحقة مقابله لها تعرف الأولى لاحقة البداية Start Tag وتعرف الثانية بلاحقة النهاية End Tag . الاختلاف بين الاثنين هو أن لاحقة النهاية تحتوى على الرمز “ / ” .
في XML جميع المعلومات الموجودة بين لاحقة البداية ولاحقة النهاية نسمى بالعناصر Element وبالتالي فان .
< first> هي لاحقة بداية
< /first> هي لاحقة نهاية
< firest>Adel< /first> هو عنصر
Element Content
النص الواقع بين لاحقة البداية ولاحقة النهاية يسمى بمحتوى العنصر Element content
PCDATA
المحتوى الواقع بين لاحقتين عبارة عن بيانات ويعرف في هذه الحالة ببيانات الرمز المعرب PCDATA وذلك إذا احتوى هذه العنصر على معلومات نصية مثل العنصر < middle> فهو PCDATA
Root Element
المستند ككل بدء باللاحقة < name> وانتهاء باللاحقة < /name> فهو يمثل عنصر يحتوى على مجموعة من العناصر وهنا نطلق عليه عنصر الجذر Root Element
قوانين العناصر
يجب على مستندات XML الخضوع لهذه القوانين كي تشكل فعليا مستندات XML محكمة الهيئة Well-formed XML Documents
- لكل لاحقة بداية لاحقة نهاية مماثلة لها .
- لا يمكن للواحق أن تتداخل .
- يحتوى مستند XML على عنصر جذر واحد فقط.
- لغة XML حساسة لحالة الحروف Case-Sensitive
- لغة XML لا تتجاهل المساحات الفارغة في مستنداتها .
أسماء العناصر :-
لغة XML توفر لك الحرية في تسمية العناصر فهي لا تحتوى على أسماء محجوزة كما في معظم اللغات , فهي لديها مرونة كبيرة في اختيار الأسماء . ولكن يوجد مجموعة من القوانين التي يجب مراعاتها :-
- يمكن للأسماء أن تبدأ بأحرف لاتينية أو غير لاتينية أو أن تبدأ بالرمز underscore(_) ولكن لا يمكن أن تبدأ برقم أو بعلامة ترقيم .
- بعد الحرف الأول يمكن للأسماء أن تحتوى على أرقام بالإضافة إلى الرمزين " _ " و " . "
- لا يمكن للأسماء أن تحتوى على فراغات .
- لا يمكن للأسماء أن تحتوى على ":" فهو محجوز في XML
- لا يمكن للأسماء أن تبدأ بالأحرف XML سواء كانت بأحرف صغيرة أو كبيرة .
- لا يمكن أن يكون هناك فراغ بين قوس الإحاطة المفتوح < وبين اسم العنصر
2) الصفات Attributes
أن مستندات XML يمكن أن تتضمن صفات أو سمات معينة attributes الصفات عبارة عن اسم معين تسند له قيمة معينة بحيث يرتبط ذلك الاسم وتلك القيمة بعنصر معين في مستند XML .
يجب أن تحتوى الصفات على قيم ويجب أن تكون هذه القيم واقعة بين علامتي اقتباس ولا يشترط أن تكون علامة الاقتباس مفردة أو مزدوجة .
يمكن للصفات أن تقدم بيانات وصفية Metadata والتي يمكن أن لا تكون وثيقة الصلة بمعظم التطبيقات التي تتعامل مع المستندات XML
على سبيل المثال إذا علمنا أن بعض التطبيقات يمكن أن تهتم بالاسم المستعار Nickname ولكن معظم التطبيقات لا تهتم بهذه المعلومات فان استخدام هذه المعلومات كصفة سيكون ذا معنى .
إذا ما الذي تقدمه الصفات ولا يمكن للعناصر أن تقدمه .
السبب يرجع إلى أن بعض الأشخاص يجدون أن استخدام الصفات تسهل على سبيل المثال فانك لا تحتاج إلى الاهتمام بدرجة تعشيش العناصر ولا تحتاج للقلق حول المعرفات المتداخلة.
فيما أن البعض الآخر يرى إن عملية تداخل وتعشيش العناصر سهل .
مجموعة أخرى ترى أن الصفات تستهلك مساحة اقل بكثير من العناصر . فمثلا المثال الأول لو قمنا بكتابته بواسطة الصفات
ولكن ذلك قلل من مرونة مستندات XML التي تتسم بالمرونة .
- في النهاية نقول إن عملية أفضلية الصفات عن العناصر أو العناصر عن الصفات تعود على اختيار الشخص وعلى أسلوبه . فاختار منهم ما يشعرك بالارتياح .
3) التعليقات Comments
هي عبارة عن إضافة النصوص التي لا تشكل جزءا من المستن و إنما تخص الشخص الذي يقراء شفرة XML نفسها .
إذ صادف لك وتعاملت من قبل مع أي لغة برمجة فانك تعرف تماما ماذا تعنى بالتعليقات .
وهى تستخدم لوضع بها تعليقات تصف بعض الفقرات و الاكواد لكي تساعدك في فهم شفره مستندات XML
ولكنها ليست مهمة بالدرجة مثلما في إي لغة برمجة أخري حيث أن لغة XML لغة تصف البينات إي أنها ذاتية الوصف تساعدك على فهمها .
تبدأ التعليقات بالرمز < !— وتنتهي بالرمز -- > مثل التعليقات في HTML
مثلا ..
4) العناصر الفارغة Empty Elements
قد توجد في بعض مستندات XML عناصر فارغة من البينات
فمثلا ...
في هذه الحالة تقدم لك XML الحل الأفضل والبديل الذي تكون فيه لا تحتاج إلى معرف نهاية End Tag فتكتب بهذا الشكل
< last/>
على أن يكون العنصر ثم الرمز "/" بدون لاحقة النهاية المعتادة وهى الحالة الوحيدة التي لا تستخدم فيها لواحق النهايات .
ولو أجريت تجربة بسيطة داخل معرب XML المدمجة بمتصفح إنترنت اكسبلورر 5.5
5) تصريح XML XML Declaration
تعد التصاريح في تعريف مستندات XML بأنها تتبع نوعا معينا بالإضافة إلي إعطاء المعرب التعليمات الأخرى
فمثلا هذا التصريح
وهو يجب أن يكون في بداية مستندات XML وليس معنى عدم وجوده يسبب الخطأ ولكن الأفضل تعريف المستندات .
شرح التصريح السابق
- فبدا تصريح XML بالرمز < ?xml و ينتهي بالرمز ? >
<?
- إذا أضفت تصريح XML يجب أن تضيف أيضا الصفة version أما بالنسبة للصفتين Encoding و Standalonge بهذا الترتيب .
- حاليا فان الإصدار Version يجب أن يكون يحوى القيمة 1.0 إذا قمت بوضع رقم غير هذا الرقم فان XML المكتوب للتعامل مع مواصفات XML الإصدار 1.0 سترفض المستند .
- يجب أن يأتي هذا التصريح في أول سطر في مستند XML كما ذكرنا .
الصفة الثانية في تصريح XML هي Encoding
صفة التشفير Encoding Attributes , لو رجعنا إلى درسنا الأول في هذه السلسلة والذي تحدثنا فيه عن البيانات وأنواعها فلا تستغرب إذا عرفت أن النصوص تخزن في الحاسب على شكل أرقام باعتبار أن الأرقام هي اللغة ألام للحاسب فمثلا الحرف a يمثل في جدول الـ ASCII الرقم 97 والحرف A يمثل الرقم 65 .
هناك نوعان من شفرة ASCII الشفرة القياسية والتي تتكون من سبعة بتات والشفرة الموسعة والتي تتكون من ثمانية بتات أي أن شفرة ASCII الموسعة تستخدم بايتا واحدا لكل رمز وبالتالي فان الشفرة لا يمكن استيعابا اكثر من 256 رمز مختلف فهو كافي لتمثيل كل الحروف الأبجدية الإنجليزية الكبيرة والصغيرة بالإضافة إلى العلامات والأرقام ولكن غير كافي لتمثيل لغات أخرى مثل العربية أو اليابانية ... الخ
لهذا السبب وجدت الشفرة الموحدة Unicode .
بعد هذه المقدمة نرجع إلى مثالنا السابق جملة تصريح XML عند الصفة
encoding=’UTF-16'
هنا تم ضبط التشفير لمستند XML على انه Unicode وذلك بوضع UTF-16
لذا فقد نصت مواصفات XML على استخدام شفره موحدة عالمية لتمثيل البيانات ولكن للأسف فان القليل يستخدم هذه الشفرة والعديد يستخدم شفرات أخرى مثل ISO-88591 وشفرة windows-1252
ملاحظة إذ لم تقم بتحديد شفرة إي انك لم تقم بوضع هذه الصفة أصلا أن معرب XML يقراء المستند بشفرة UTF-8 أو UTF-16
الصفة الأخيرة في تصريح XML هي صفة Standalone
وهى تعنى أن المستند قائم بذاتية فإذا قمت بإضافة هذه الصفة إلى تصريح XML فإنه لهذه الصفة قيمتين yes وno
تشير القيمةyes إلى أن المستند قائم بذاته ولا يعتمد على أي ملفات أخرى
تشير القيمة No إلى أن المستند يمكن إن يكون معتمد أو مرتبطا بملفات أخرى.
6 ) رموز نصوص PCDATA غير مسموح بها .
تعرفنا سابقا بالمقصود بالمصطلح PCDATA وعرفنا انه مصطلح مستخدم من قبل SGML يشير إلى البيانات النصية الموجودة داخل العناصر , فتوجد بعض القوانين تحكم هذه البيانات النصية عند كتابتها لفادى الأخطاء أثناء عمل معرب XML .
فهناك بعض الرموز المحجوزة التي لا تستطيع تضمينها في بينات PCDATA لان تركيب XML يستخدمها من هذه الرموز < والرمز &
فمثلا ..
عند تشغيل هذه الشفرة على المتصفح سوف تعرض لك الخطأ .
هذا يعنى انه عندما يصل المعرب إلى الرمز < سيتوقع أن يجد اسما لمعرف Tag وبدلا من ذلك فقد وجد فراغ Space وحتى إن تجاوز المعرب هذا الخطأ فإنه سيتوقف عند خطا أخر عندما يصل إلى الرمز “ & “
فلا تقلق فهناك طريقتان تمكنك من تضمين هذه الرموز ضمن PCDATA إما أن تستخدم الرموز المرادفة Escaping Characters أو أن تستخدم قسم CDATA
|
|
خدمات المحتوى
|
تقييم
|
|
|
Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.