اقسام المنجم
- أهم المواضيع (36)
- اخبار تقنية (23)
- اختراعات (27)
- افتكاسات (36)
- الابراج (3)
- المواضيع الجديدة (50)
- جديد * جديد (36)
- حكم وامثال (14)
- دورات تدريبية (5)
- رمضانيات (29)
- شخصية المنجم (3)
- صبايا (12)
- صحتك (20)
- طرائف وغرائب (22)
- فكرة عمل...... (13)
- قصة ققصيره (20)
- كتب (7)
- مشاكل وحلول (25)
- مقالات (30)
معلومة اليوم:
لماذا التكبر ؟
من تراب ، على تراب ، إلى تراب !!
جديد المنجم
اختر ما تود أن تتعلمه
أرشيف المنجم
- أبريل 2011 (121)
- مايو 2011 (65)
- يونيو 2011 (133)
- يوليو 2011 (248)
- أغسطس 2011 (110)
- سبتمبر 2011 (44)
- أكتوبر 2011 (11)
شرح برنامج JAVA
البرنامج الذي نتحدث عنه اليوم هو برنامج الـ Java والذي يوفر مجموعة كبيرة من ملفات الأبليت في النسخة المجانية منه و التي يمكن تخصيصها بما يتلاءم من متطلبات المستخدم. و في النسخة المجانية، يتم ربط الأبليت بموقع المصممين لها اذا تم الضغط عليها بالماوس اليمين.
حتى نستطيع استخدام البرنامج أحب ان اوضّحبعض الحقائق عن الأبليت:
· الأبليت عبارة عن ملف منفصل ينتهي بـ: class و يتم ادراجه في ملفات الـ HTML كما يتم ادراج الصور و الملفات الصوتية.
· بعض ملفات الأبليت تتوقع من المصمم ادخال بعض ال parameters لها عن طريق التأشيرة param التي يتم ادراجها داخل تأشيرة ال applet
· يفضّل وضع ملفات الأبليت (classes) في نفس الحافظة التي تحوي ملف الhtml الذي اندرجت فيه، و اذا كان غير ذلك فلابد من وضع codebase في تأشيرة الأبليت تحديد الحافظة التي تحوي ملفات ال class.
| الشاشة الأولى | |
|
| عند تشغيل البرنامج، ستظهر لك هذه الشاشة التي تنقسم للأجزاء الموضحة: الجزء (1): يمثّل الأقسام التي تنقسم اليها الأبليت(s) حيث ان كل مجموعة تختص بشيء معين موجودة في قسم معيّن. و قد اخترت في المثال الذي سنعمل عليه ان شاء الله قسم البنرات. الجزء (2): يمثّل الأبليت(s) التي تندرج تحت القسم المختار. الجزء (*): يمثّل شرح للأبليت الحالية التي تم اختيارها من القائمة المنزلقة في الأعلى. الجزء (**): بالضغط على هذا الزر، ستشاهد عرضاً لمثال على الأبليت الحالية (المختارة في القائمة المنزلقة). الجزء (***): يمكنك حين تضغط على هذا الزر أن تشاهد أمثلة على جميع الأبليت(s) التي يوفرها البرنامج. |
| الشاشة الثانية | |
| نلاحظ في صف القوائم، وجود قائمة File والتي يمكن بها حفظ عملك الحالي لاتمامه فيما بعد، أو فتح ملف موجود. و في قائمة ال Options يمكنك تحديد المتصفح الذي تريد ان تشاهد الأبليت فيه. في قائمة Help و هي القائمة المهمة يمكنك الحصول على المساعدة على الأبليت الحالية عن طريق الاختيار الأول، الذي يتغير كلما اخترت أبليت جديدة. و توفر بقية الخيارات في هذه القائمة مساعدة وافية و كافية لأي شي يستعصي عليك |
|
في الشاشات التي تلي هذا السطر، تمثّل المناطق المحدد بالأصفر مناطق يمكن تجاهلها، أو اختيارية التعديل و تميز بعلامة النجمة. تذكّر أيضاً انك يمكن بعد كل تعديل ان تضغط على الزر (Preview) ترى تأثير التغييرات التي تقوم بها على الأبليت قبل أن تحفظها في ملفك :-)
| الشاشة الثالثة | |
|
| تمثل هذه الشاشة، المدخلات التي تتوقعها منك الأبليت. تختلف المدخلات من أبليت إلى أخرى. لذا قد ترى شاشة أخرى غير هذه اذا اخترت أبليت غير التي اخترناها لمثالنا. و لكن يمكنك أن تستعين بهذا المثال عند استخدامك لأبليت(s) أخرى. و هذه الأبليت تأخذ عدداً من الصور التي تراها معروضة في الجزء (2)، و يمكنك اضافة المزيد من الصور، حذف اي صورة، اعادة ترتيب ظهور الصور باستخدام الأزرار في الجزء (1). الجزء (3): يحتوي على جزئين العلوي منهما يمثل الرابط الذي يأخذنا له الضغط على الصورة المختارة في الجزء (2) ، و هكذا يمكننا تحديد الرابط لكل صورة. يمكن ان يكون الرابط كاملاً كما أوضحت في المثال على اليمين، و ممكن أن يكون بالنسبة لموقع الملف الذي سيحتوي على الأبليت. الجزء (*)، (**): يمكنك من تحديد حجم الصورة، و مقدار التكبير. و تحديد حجم و عدد المربعات التي سنقلب على كل صورة (في هذه الأبليت) الجزء (***)، (****): يمكنك من تحديد لون الخلفية أو صورة الخلفية. |
| الشاشة الرابعة | |
| الجزء (*): من هذه الشاشة يختص بتحديد ما ستستهلكه الأبليت من الـ CPU. كما تلاحظ انه يمكنك تحديدها يدوياً أو بالضغط على أحد الأزرار و كل منها يعتني بجانب دون الآخر :-) الجزء (1): يمكنك من تحديد الجملة التي ستظهر للمستخدمين الذين لا تدعم متصفحاتهم الجافا، أو انهم اختاروا عدم تفعيلها. الجزء (2): يمكنك من اختيار صورة لتكون دائماً في واجهة هذه الأبليت، لنفرض مثلاً شعار موقعك أو شيء من هذا القبيل. |
|
| الشاشة الخامسة | |
|
| يمكنك ببساطة الانتقال للشاشة التالية بالضغط على مفتاح( Next) |
| الشاشة السادسة | |
| الآن وصلنا إلى نهاية المطاف حيث بامكانك الآن اتخاذ أحد اجرائين. الأول (و هو ما أنصح به): الضغط على الزر( Copy all files to..) حيث سيطلب منك تحديد موقع الملف الذي ستضع فيه الأبليت. ما أنصح به، ادخال ملف جديد في نفس الفولدر أو الحافظة التي تحتوي على الملف الذي تريد وضع الأبليت فيه، بهذه الخطوة سيقوم البرنامج بنقل جميع الملفات (classes) اللازمة للموقع المحدد. الثاني: و هو نقل الملفات يدوياً إلى الحافظة، و نقل الكود في الجزء (*) إلى أي صفحة تريدها. (**): يمكنك من وضع الأبليت على سطح المكتب أو تصديرها على هيئة Screen Saver و هذه من الاختيارات التي يوفره البرنامج. عند الضغط على الزر Publish سيعطيك تعليمات مفيدة :-) |
|
يمكنك الآن أن تفتح الملف الذي أدخلت فيه الأبليت لترى الأبلت في صفحتك. و لكن لا تنسى تحميل ملفات الـ class في نفس المكان الذي تضع في ملف الهتمل.
وضعية الكود في الصفحة 1
<HTML>
<HEAD>
أي مكان هنا
</HEAD>
<BODY>
أي مكان هنا
</BODY>
</HTML>
طبعا يجب إعلام المتصفح أن هذا الجزء من الصفحة هو جافا سكريبتس ، ونتم ذلك بوضع :
كما ترون في الأعلى ، إبتدأنا بتبيه المتصفح الى أن مابعد :
هو سكريبت مكتوب بلغة الجافا، ولايفوتني أن أذكر أيضا أن هناك فيجوال بيسك سكريبتس لكنها غير مدعومة سوى من قبل الإنترنت إكسبلورر ، كما أنها تستخدم في إنشاء صفحات السيرفر الفعالة ASP
ثم نأتي بعد ذلك الى :
وهي لتنبيه المتصفحات القديمة ، وتلك التي لاتدعم الجافا سكريبتس الى تلافي السطور القادمة ، وبدون هذه العلامة ، سيظهر السكريبت على الصفحة كتبابةً! ويجب إضافتها الى كل كود حتى لاتشوه شكل صفحتك . ثم نأتي الى أهم شيء في هذا القسم :
وهذا هو مربط الحديث هنا ، وهو الكود . هذا الكود لإظهار رسالة للزائر كلما دخل الى الصفحة . ثم في النهاية نأتي إلي :
لإعلام المتصفح أن الكود قد إنتهى ..
وكما هو الحال في ال HTML وكذا لغات البرمجة الأخرى ، يمكنك إضافة بعض التعليقات الى السكريبت وذلك للتذكير أو الشرح ، لاننسى أن المحترفين دائما يدرجون بعض التعليقات والشروحات لتسهيل تعديل الكود لاحقا ، أو حتى قراءته ، كل ماعليك هو وضع هاتين العلامتين قبل التعليق :
في حالة أردت كتابة سطر واحد فقط ، أو :
التعليق هنا .. سطر أو عدة سطور
والآن ، أنت على أتم الإستعداد الى تعلم أساسيات اللغة ، لنبدأ رحلتنا الحقيقة في عالم الجافا سكريبتس ، طبعا قد تحس بالحيرة في بعض المقاطع ، لكن صدقني ، إن أهم شيء على الإطلاق في لغات البرمجة كلها ، هو تدعيم المعرفة بالأمثلة ، والتجربه لترسيخ المفاهيم.
عبارات جافاسكريبت
<head>
</head>
<body>
<script language = "javascript" src = "external.js">
</script>
<body>
<html>
سوف يتم تنفيذ عبارات الجافاسكريبت الموجودة في ملف الأوامر الخارجي كما هو موضح
سلسلة تعلم VBScript -لجزء الاول - المبادئ
وهذه هي الأجزاء الثلاثة التي (سأحاول) الكتابة عنها :
1 - الجزء الأول (أسس ومبادئ) حيث يعطيك هذا الجزء المدخل لهذه اللغة مشتملا على توضيح لكافة إمكانياتها وهو يفيد المبرمج المبتدئ والمتوسط .
2 - الجزء الثاني (مفاهيم اللغة) –يمكن لمن يملك أحد المراجع العربية حول هذه اللغة أن يستغني عن هذا الجزء بخلاف الأجزاء الأخرى- وفيه يتم التطرق إلى مفاهيم البرمجة بهذه اللغة أو بالأحرى طريقة تنفيذ مفاهيم البرمجة باستخدام هذه اللغة وسيكون انتهائك من استيعاب هذا الجزء يعني قدرتك على استخدام هذه اللغة في تصميم صفحتك .
3 - الجزء الثالث (الكائنات) وقد قمت بإفرادها في هذا الجزء نظرا لتشعبها وسأحاول اختصاره قدر الإمكان ، وأيضا في هذا الباب سأتطرق إلى مواضيع متقدمة مثل طرق تنفيذ الباتش الحديثة في النظام ويندوز وغيرها من الأمور التي لا توفرها – حسب علمي القاصر – المراجع العربية ……… أتتمنى أن أكون وفقت في ذلك ، والآن لننطلق إلى الدرس الأول .
-------------------------
الدرس الأول
ما هي VBScript ؟
هي لغة سكريبت (نصية) تعمل في بيئة إنترنت وإنترنت، وتتشابه في مفاهيمها البرمجية مع لغة فيجوال بيسك مع بعض التعديلات التي تتلاءم طبيعتها المتعاملة مع الإنترنت .
ظهور هذه اللغة:
وقد ظهرت هذه اللغة المبسطة المشتقة من اللغة الأم Visual Basic اثر ظهور JavaScript المعقدة بعض الشيء، والتي أنشئت لحل مشكلة بطأ تبادل البيانات بين الخادم والزبون إذ تأخذ عملية طلب المعلومات من الزبون وإرسالها للخادم ومعالجاتها وإعادة إرسالها زمناً ليس بالقصير، حيث تتميز بامكانيتها معالجة البيانات على الجهاز الزبون .
مميزات اللغة:
- سهولة التعلم.. هذه هي إحدى أشهر مزايا هذه اللغة والتي تميزها عن كافة لغات السكريبت الأخرى .
- أكثر مرونة … حيث تتميز هذه اللغة بأنها أكثر تساهلاً في قواعدها مقارنةً باللغات الأخرى . فعلى سبيل المثال، لا تفرق هذه اللغة بين الأحرف الكبيرة والصغيرة في أسماء المتغيرات .
تطبيقات اللغة:
بالإضافة لما سبق تمكِّنك اللغة من :
- تحميل وتشغيل البرمجيات الإضافية للإنترنت مثل ActiveX Document و Java Applet حيث تعد وسيط جيد بينها وبين مستندات HTML .
- التحكم بتنسيق الصفحة بشكل أوسع مما يمكنك عمله بواسطة HTML وإضافة بعض الحركة على الصفحة .
- تعتبر هذه اللغة إحدى لغات السكريبت التي يمكن البرمجة بها في صفحات ASP ولعل هذا التطبيق اشهر التطبيقات لهذه اللغة .
- ما تعتبر أيضاً إحدى اللغات المستخدمة في إنتاج ملفات الباتش الحديثة في ويندوز ( باستخدام برنامج Microsoft Scripting host ) كما يمكنك في هذه الحالة إنتاج الفيروسات ( من نوع حصان طروادة ) مثل : فيروس الحب المكتوب بلغة VBScript .
عيوب اللغة:
لقد أصبحت اللغة VBScript أحد الحلول السهلة المطروحة من قبل مايكروسوفت ، لكن يعيب على هذه اللغة افتقارها لبعض جوانب القوة في بعض لغات السكريبت الأخرى مثل JavaScript ، والأهم من ذلك أنها غير مدعومة من قِبل بعض المتصفحات مثل متصفح نتسكيب وما قبل الإصدار الرابع من متصفح إنترنت اكسبلورر . ولا داعي للجزع فالكل يعلم مدى هيمنت إنترنت اكسبلورر على أسواق المتصفحات حيث أن وجود النظام windows98 يعني وجود الإصدار الرابع من المتصفح السابق .
ملاحظة :
~~~~~~
يمكن لمن يملك متصفح نتسكيب أن يحصل على بريمج إضافي Add-In لتمكين المتصفح من ترجمة تعليمات VBScript، يمكن الحصول إلى البريمج السابق من الموقع :
www.ncompasslabs.com
سلاسل حروف strings
<head>
</head>
<body>
<script language = "javascript">
var decimalNum, hexadecimalNum, octalNum;
decimalNum = 37;
hexadecimalNum = 0x37;
octalNum = 037;
document.write("This is a decimal number: " + decimalNum + "<br>");
document.write("This is a hexadecimal number: " + hexadecimalNum + "<br>");
document.write("This is an octal number: " + octalNum + "<br>");
</script>
</body>
</html>
<head>
</head>
<body>
<script language = "javascript">
var largeNum, veryLargeNum, smallNum, verySmallNum;
largeNum = 123456789000000000000.0;
veryLargeNum = 5.14E52;
smallNum = 0.000000123;
verySmallNum = 6.023E-23;
document.write("This is a large number: " + largeNum + "<br>");
document.write("This is a very large number: " + veryLargeNum + "<br>");
document.write("This is a small number: " + smallNum + "<br>");
document.write("This is a verySmall number: " + verySmallNum + "<br>");
</script>
</body>
</html>
دورة Xml [الدرس الرابع-الجزء الأول]: منهجية عمل مستندات Xml وتكوينها الهرمي
الدرس الرابع
منهجية عمل مستندات 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
المحتوى الواقع بين لاحقتين عبارة عن بيانات ويعرف في هذه الحالة ببيانات الرمز المعرب 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 سنتعرف على الطريقتان الآن في الجزء الثاني
هذا يعنى انه عندما يصل المعرب إلى الرمز < سيتوقع أن يجد اسما لمعرف Tag وبدلا من ذلك فقد وجد فراغ Space وحتى إن تجاوز المعرب هذا الخطأ فإنه سيتوقف عند خطا أخر عندما يصل إلى الرمز “ & “
فلا تقلق فهناك طريقتان تمكنك من تضمين هذه الرموز ضمن PCDATA إما أن تستخدم الرموز المرادفة Escaping Characters أو أن تستخدم قسم CDATA سنتعرف على الطريقتان الآن في الجزء الثاني





