شـبـكــة عـمّـــار
إخبارية - ترفيهية
- تعليمية



جديد الصور
جديد الأخبار
جديد المقالات


جديد الصور

جديد البطاقات

جديد الصوتيات

المتواجدون الآن


تغذيات 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









تعليقات 0 | إهداء 0 | زيارات 684


خدمات المحتوى
  • مواقع النشر :
  • أضف محتوى في Digg
  • أضف محتوى في del.icio.us
  • أضف محتوى في StumbleUpon
  • أضف محتوى في Google


تقييم
1.00/10 (2 صوت)


Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.