Vous êtes sur la page 1sur 35

‫اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ‪ /‬ﻗﺴﻢ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ‬

‫ﺳﻠﺴﻠﺔ ﻛﺘﺐ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ اﻹﻟﻜﺘﺮوﻧﯿﺔ‬

‫‪C4arab.com‬‬

‫ﻃﺮﯾﻘﻚ اﻟﻰ ‪.....‬‬


‫اﻛﺲ ام ال ‪xml‬‬

‫ﺗﺄﻟﯿﻒ‬
‫ﻋﻤﺎد ﻋﺪﻟﻲ‬
‫ﻣﺸﺮف ﺳﺎﺣﺔ ﺑﺮﻣﺠﺔ اﻟﻤﻮاﻗﻊ و إدارﺗﮫﺎ‬

‫ﯾﺴﻤﺢ ﺑﺘﻮزﯾﻊ اﻟﻜﺘﺎب ﻋﻠﻰ ﺻﻮرﺗﻪ اﻹﻟﻜﺘﺮوﻧﯿﺔ ﻟﻜﻦ ﻻ ﯾﺴﻤﺢ ﺑﻄﺒﻊ اﻟﻜﺘﺎب أو ﺗﻐﯿﯿﺮ ﻫﯿﺌﺘﻪ‬
‫إﻻ ﺑﻌﺪ أﺧﺬا إذن ﻣﻦ اﻟﻜﺎﺗﺐ‬
‫اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ© ‪2000-2005‬ﺟﻤﯿﻊ اﻟﺤﻘﻮق ﻣﺤﻔﻮﻇﺔ ‪-‬‬
‫اﻟﺘﻮاﺻﻞ ﻣﻊ اﻟﻘﺮاء‬

‫إﻟﻰ اﻟﻘﺎرئ اﻟﻌﺰﯾﺰ ‪،،،‬‬

‫ﺣﺮﺻﺖ اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ _ وﻣﻦ ﻣﻨﻄﻠﻖ اﻫﺘﻤﺎﻣﻬﺎ اﻟﻌﺎم ﺑﻌﻠﻮم اﻟﺤﺎﺳﺐ واﻟﺘﻘﻨﯿﺔ‬
‫واﻫﺘﻤﺎﻣﻬﺎ اﻟﺨﺎص ﺑﺘﻘﺪﯾﻢ ﻫﺬه اﻟﻌﻠﻮم ﺑﺎﻟﻠﻐﺔ اﻟﻌﺮﺑﯿﺔ _ ﻋﻠﻰ ﺗﻘﺪﯾﻢ ﻫﺬه اﻟﺴﻠﺴﺔ ﻣﻦ‬
‫اﻟﻜﺘﺐ اﻹﻟﻜﺘﺮوﻧﯿﺔ اﻟﺘﻰ ﻧﺘﻤﻨﻰ أن ﺗﺤﻘﻖ ﻃﻤﻮﺣﺎت اﻟﻘﺎرئ اﻟﻌﺮﺑﻰ اﻟﺬى اﻋﺘﺎد ﻋﻠﻰ ﻗﺮاءة أﺟﻮد‬
‫اﻟﻤﻄﺒﻮﻋﺎت ﺑﻜﺎﻓﺔ اﻟﻠﻐﺎت اﻟﻌﺎﻟﻤﯿﺔ ‪.‬‬

‫إن اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ _ﻣﻦ ﺧﻼل ﻫﺬه اﻟﺴﻠﺴﻠﺔ _ ﺗﻄﻤﺢ ﻟﺘﻘﺪﯾﻢ ﺳﻠﺴﻠﺔ ﻣﻦ اﻟﻜﺘﺐ ﺑﻤﺴﺘﻮى ﻋﺎلٍ ﻣﻦ‬
‫اﻟﺠﻮدة ‪ ،‬اﻟﺸﻲء اﻟﺬى ﻟﻦ ﯾﺘﺤﻘﻖ ﺑﺪون ﻣﻼﺣﻈﺎﺗﻜﻢ واﻗﺘﺮاﺣﺎﺗﻜﻢ ﺣﻮل اﻟﺴﻠﺴﻠﺔ _ ﻃﺮﯾﻘﺔ اﻟﻜﺘﺎﺑﺔ ‪،‬‬
‫اﻷﺧﻄﺎء اﻹﻣﻼﺋﯿﺔ واﻟﻨﺤﻮﯾﺔ ‪ ،‬اﻟﺘﻨﻈﯿﻢ واﻟﺘﺮﺗﯿﺐ ‪ ،‬ﻃﺮﯾﻘﺔ ﻧﺸﺮ اﻟﻜﺘﺎب وﺗﻮزﯾﻌﻪ ‪ ،‬اﻹﺧﺮاج اﻟﻔﻨﻰ ‪...‬‬
‫اﻟﺦ‬

‫ﻧﻨﺘﻈﺮ ﺳﻤﺎع أراءﻛﻢ ﻋﻠﻰ اﻟﺒﺮﯾﺪ اﻹﻟﻜﺘﺮوﻧﻲ اﻟﻤﺨﺼﺺ ﻟﺬﻟﻚ‬


‫‪ebooks@c4arab.com‬‬
‫ﻧﺮﺟﻮ ذﻛﺮ اﺳﻢ اﻟﻜﺘﺎب واﻟﻜﺎﺗﺐ واﻟﻄﺒﻌﺔ ﻣﻊ ذﻛﺮ ﻣﻼﺣﻈﺎﺗﻜﻢ ﻟﻨﺎ‬

‫ﺗـــــــــــﻬﺎﻧﻰ اﻟﺴـــــــــــــــــﺒﯿﺖ‬
‫ﻣﺸﺮﻓﺔ اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ‬

‫‪1‬‬
‫‪ ..‬ﺑﺴــــﻢ اﷲ اﻟﺮﺣﻤــــﻦ اﻟﺮﺣﯿـــــﻢ ‪..‬‬
‫اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ ‪ ..‬ھﻲ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺪورات‬
‫اﻟﺘﻲ ﺗﻘﺪﻣﮫﺎ ﻟﻜﻢ اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ؛ ﺑﺪأﻧﺎ ﺑﺘﻘﺪﻳﻤﮫﺎ‬
‫ﻓﻲ اﻟﺼﯿﻒ ﺗﺤﺖ ﻣﺴﻤﻰ " اﻟﺪورات اﻟﺼﯿﻔﯿﺔ " وھﺎ‬
‫ھﻲ ﺗﻌﻮد ﻣﻦ ﺟﺪﻳﺪ ‪ .‬ﺣﺮﺻﻨﺎ ﻋﻠﻰ ﺗﻘﺪﻳﻢ دورات ﻓﻲ‬
‫ﻣﺠﺎﻻت ﻣﺨﺘﻠﻔﺔ ﻟﻨﺮاﻋﻲ أﻏﻠﺐ اﻻھﺘﻤﺎﻣﺎت ﻛﻤﺎ‬
‫ﺣﺮﺻﻨﺎ ﻋﻠﻰ اﻧﺘﻘﺎء اﻟﺪورات اﻟﻤﻔﯿﺪة‪ ،‬ﻏﯿﺮ اﻟﻤﺘﻜﺮرة‪،‬‬
‫ﺑﻄﺮﻳﻘﺔ ﺟﺎدة ﺗﻨﻘﻠﻚ إﻟﻰ اﻟﺠﻮ اﻟﺪراﺳﻲ ﻓﻲ ﻗﺎﻋﺎت‬
‫اﻟﺠﺎﻣﻌﺔ و ﺻﻔﻮف اﻟﻤﻌﺎھﺪ و ﻟﻜﻦ ﻓﻲ ﺑﯿﺌﺔ‬
‫إﻟﻜﺘﺮوﻧﯿﺔ! ﻛﻞ ھـﺬا ﻣﺠــﺎﻧـــﺎ! ‪...‬‬
‫ﻳﻮﺟﺪ ﻛﺬﻟﻚ ﺳﺎﺣﺔ ﻣﺘﺨﺼﺼﺔ ﻟﮫﺎ ﺿﻤﻦ ﻣﺠﻤﻮﻋﺔ‬
‫ﺳﺎﺣﺎت اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻨﻘﺎش واﻷﺳﺌﻠﺔ‪،‬‬
‫ﺗﺠﺪھﺎ ھﻨـــﺎ! ‪...‬‬
‫اﺳﺘﻔﺪ واﺳﺘﺜﻤﺮ وﻗﺘﻚ ﻣﻌﻨﺎ! إذا ﻛﻨﺖ ﺗﺮﻏﺐ ﻓﻲ‬
‫ﺗﻄﻮﻳﺮ ذاﺗﻚ و ﺗﻮﺳﯿﻊ ﻧﻄﺎق ﺛﻘﺎﻓﺘﻚ ﻓﻲ اﻟﺤﺎﺳﻮب‬
‫ﻓﺎﺳﺘﻐﻞ ﻛﻞ دﻗﯿﻘﺔ واﺳﺘﻔﺪ ﻣﻌﻨﺎ! و ﻻ ﺗﻨﺴﻰ أﻧﻨﺎ‬
‫ﻓﻲ ﻋﺼﺮ اﻟﻤﻌﻠﻮﻣﺎت واﻟﺴﺮﻋﺔ‪.‬‬

‫اﺑﺪأ اﻵن !اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﺪورات و اﺧﺘﺮ اﻟﺪورة اﻟﺘﻲ ﺗﻨﺎﺳﺒﻚ‪ ،‬اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻷﺳﺎﺗﺬة ﻟﻼﻃﻼع ﻋﻠﻰ‬
‫ﻗﺎﺋﻤﺔ اﻷﺳﺎﺗﺬة اﻟّﺬﻳﻦ ﺳﯿﻠﻘﻮن اﻟﻤﺤﺎﺿﺮات‪ ،‬اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﺘﺴﺠﯿﻞ ﻛﻲ ﺗﺴﺠّﻞ ﻧﻔﺴﻚ ﻓﻲ إﺣﺪى‬
‫اﻟﺪورات‪ ،‬ﻟﻦ ﺗﺴﺘﻄﯿﻊ اﻟﻤﺸﺎرﻛﺔ ﻓﻲ أي دورة ﻗﺒﻞ أن ﺗﺴﺠﻞ‪ .‬اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﻤﺮاﺟﻊ ﻛﻲ ﺗﻄﻠﻊ ﻋﻠﻰ‬
‫اﻟﻤﺮاﺟﻊ اﻟﻤﻘﺪﻣﺔ ﻣﻦ اﻷﺳﺎﺗﺬة ﺑﺨﺼﻮص اﻟﺪورات اﻟﺤﺎﻟﯿﺔ ‪.‬اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﻤﻠﺘﺤﻘﯿﻦ ﻟﺘﻄﻠﻊ ﻋﻠﻰ ﺑﻌﺾ‬
‫اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ اﻟﻤﻠﺘﺤﻘﯿﻦ ﻓﻲ اﻟﺪورات‪ .‬اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﺗﺼﻞ ﺑﻨﺎ ﻛﻲ ﺗﺮﺳﻞ ﻟﻨﺎ اﻗﺘﺮاﺣﺎً أو ﻃﻠﺒﺎً‪ .‬ﻧﺤﻦ‬
‫ﺑﺎﻧﺘﻈﺎرك! ﻟﻜﻦ اﻟﻮﻗﺖ ﻣﺤﺪود و ﻋﺪد اﻟﻤﻠﺘﺤﻘﯿﻦ ﻓﻲ ﻛﻞ دورة ﻣﺤﺪود ﻟﺬا ﻻ ﺗﺘﺄﺧﺮ ﻓﻲ اﻟﺘﺴﺠﯿﻞ ﻣﻦ‬
‫ﻓﻀﻠﻚ‪.‬‬

‫‪2‬‬
‫ﻫﺬا اﻟﻜﺘﺎب ‪....‬‬
‫ﻟﯿﺲ ﻓﻰ اﻷﺻﻞ أﻻ دورة ﺗﻢ ﺗﺪرﯾﺴﻬﺎ ﻓﻰ ﺳﺎﺣﺔ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ ﺑﺎﻟﻤﻮﺳﻮﻋﺔ‬
‫اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ ‪ ،‬وﺗﻢ ﺟﻤﻊ ﺗﻠﻚ اﻟﺪروس وﺳﻠﺴﻠﺔ اﻟﻨﻘﺎش اﻟﺘﻰ‬
‫دارت ﺣﻮﻟﻬﺎ ﻫﻨﺎ ﻓﻰ ﻫﺬا اﻟﻜﺘﺎب ‪ ،‬وﺗﻢ وﺿﻊ اﻟﻨﻘﺎﺷﺎت ﻋﻠﻰ ﻫﯿﺌﺔ أﺳﺌﻠﺔ‬
‫وأﺟﻮﺑﺔ ﻟﻜﻰ ﯾﺴﺘﻔﯿﺪ اﻟﺠﻤﯿﻊ ﻣﻨﻬﺎ ‪،،،،،،،،،‬‬

‫ﻟﺬﻟﻚ ﺗﻌﺘﺒﺮ ﺳﻠﺴﻠﺔ ﻛﺘﺐ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ ‪:‬‬


‫أول ﺳﻠﺴﻠﺔ ﻛﺘﺎب إﻟﻜﺘﺮوﻧﯿﺔ ﻋﺮﺑﯿﺔ ﺧﺎﺻﺔ ﺑﺎﻟﻤﺒﺘﺪأﯾﻦ‪.‬‬ ‫•‬

‫اﻟﺴﻠﺴﻠﺔ اﻟﻮﺣﯿﺪة اﻟﺘﻰ ﺗﺘﺒﻊ ﻧﻈﺎم اﻷﺳﺌﻠﺔ واﻷﺟﻮﺑﺔ اﻟﻨﺎﺗﺠﺔ ﻓﻌﻼً ﻣﻦ ﻣﺸﺎﻛﻞ ﺣﻘﯿﻘﺔ ﻷﺷﺨﺎص ﻣﻦ ﻣﺨﺘﻠﻒ‬ ‫•‬
‫اﻷﻣﺎﻛﻦ واﻟﺪول ‪ ،‬ﻣﻤﺎ ﯾﻬﯿﺊ ﻋﻨﺪك ﻧﻮع ﻣﻦ اﺳﺘﻌﺪاد ﻷى ﻣﺸﻜﻠﺔ وﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ‪.‬‬

‫ﺗﻌﺘﺒﺮ ﺳﻠﺴﻠﺔ اﻟﻜﺘﺎب اﻟﻮﺣﯿﺪة اﻟﻤﺪﻋﻮﻣﺔ ارﺑﻊ وﻋﺸﺮﯾﻦ ﺳﺎﻋﺔ ﻃﻮال اﻟﻌﺎم ‪ ،‬ﻓﯿﻤﻜﻨﻚ اﻻﺳﺘﻔﺴﺎر ﻋﻦ اى‬ ‫•‬
‫ﻣﺸﻜﻠﺔ وﺣﻠﻬﺎ ﻋﻦ ﻃﺮﯾﻖ وﺿﻌﻬﺎ ﻓﻰ ﺳﺎﺣﺔ اﻟﻨﻘﺎش واﻷﺳﺌﻠﺔ ﺑﺎﻟﻤﻮﺳﻮﻋﺔ ‪.‬‬

‫إن ﻫﺬا اﻟﻜﺘﺎب ﻫﻮ ﻣﻦ اﺟﻞ ﻧﺸﺮ اﻟﻤﻌﺮﻓﺔ وﺗﻮﺳﯿﻊ اﻟﺘﻔﻜﯿﺮ اﻟﻤﻨﻄﻘﻰ اﻷﺳﺎﺳﻲ ‪ ،‬اﻻﺣﺘﺮاف ﻫﻮ ﻟﯿﺲ اﻟﻬﺪف‬ ‫•‬
‫ﻓﻰ ﺣﺪ ذاﺗﻪ‪ ،‬ﺑﻞ اﻻﺳﺘﻄﻼع واﻛﺘﺸﺎف اﻟﺬات واﻹﻟﻤﺎم اﻟﺠﯿﺪ ﺑﺎﻷﺳﺎﺳﯿﺎت واﻟﻤﺒﺎدئ اﻷوﻟﯿﺔ‬
‫ﻣﻦ اﺟﻞ ﺷﻖ ﻃﺮﯾﻖ اﻟﻨﺠﺎح ﺑﻜﻞ ﺳﻬﻮﻟﺔ وﯾﺴﺮ‪.‬‬

‫‪3‬‬
‫اﻟﻤﺤﺘﻮﻳﺎت ‪:‬‬

‫اﻟﺪرس اﻷول ‪ :‬ﻣﺎذا ﻗﺒﻞ ‪XML‬‬


‫اﻟﺪرس اﻟﺜﺎﻧﻲ ‪ :‬ﻣﻘﺪﻣﺔ إﻟﻰ ﺗﻘﻨﯿﺔ ‪ XML‬وﻣﺎ ﺣﻮﻟﮫﺎ ‪-:‬‬
‫اﻟﺪرس اﻟﺜﺎﻟﺚ ‪ :‬ﻟﻤﺎذا ‪ XML‬وﻓﯿﻤﺎ ﺗﺴﺘﺨﺪم؟‪-:‬‬
‫اﻟﺪرس اﻟﺮاﺑﻊ ‪ :‬ﺗﺎﺑﻊ ﻣﻨﮫﺠﯿﺔ ﻋﻤﻞ ﻣﺴﺘﻨﺪات ‪ XML‬وﺗﻜﻮﻳﻨﮫﺎ‬
‫اﻟﮫﺮﻣﻲ ‪.‬‬
‫اﻟﺪرس اﻟﺨﺎﻣﺲ‪ Html :‬ﻣﻘﺎﺑﻞ ‪XML‬‬

‫‪4‬‬
‫اﻟﺪرس اﻷول‬

‫ﻣﺎذا ﻗﺒﻞ ‪XML‬‬

‫ﻟﻘﺪ ﻗﻤﺖ ﺑﻜﺘﺎﺑﺔ ھﺬه اﻟﺴﻠﺴﻠﺔ اﻟﺘﻲ ﺗﺼﻒ وﺻﻒ دﻗﯿﻖ إﻟﻰ ﺗﻘﻨﯿﺎت ‪ XML‬وإﻣﻜﺎﻧﯿﺘﮫﺎ وﻗﺪراﺗﮫﺎ اﻟﻔﺮﻳﺪة ﻟﻜﻲ‬
‫ﺗﺨﺪم اﻷﺷﺨﺎص اﻟﺬﻳﻦ ﻳﻮدون اﻻﻃﻼع ﻋﻠﻰ ﻟﻐﺔ ‪ XML‬وﻣﻌﺮﻓﺔ اﻟﻤﺰﻳﺪ ﻋﻨﮫﺎ وﻣﺎذا ﻳﻤﻜﻦ أن ﻳﻔﻌﻠﻮا ﺑﻮاﺳﻄﺘﮫﺎ‬
‫وﻛﯿﻔﯿﺔ اﻻﺳﺘﻔﺎدة ﻣﻨﮫﺎ ‪.‬‬

‫ﻓﮫﻲ ﻟﻐﺔ ﻣﺼﻤﻤﻪ ﻟﺘﻔﯿﺪ ﻛﻞ ﻣﻦ ﻳﺒﺤﺚ ﻋﻦ ﺑﻨﺎء وﺗﺼﻤﯿﻢ ﻣﻮاﻗﻊ إﻧﺘﺮﻧﺖ ذات أﺳﺎس ﺻﻠﺐ ‪ .‬ﺑﺄﺣﺪث اﻟﺘﻘﻨﯿﺎت‬
‫ﻟﺬﻟﻚ ‪ .‬وأﻳﻀﺎ اﻟﻤﺒﺮﻣﺠﯿﻦ اﻟﺬﻳﻦ ﻳﺒﺤﺜﻮا ﻋﻦ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻟﻺﻧﺘﺮﻧﺖ وﺗﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت واﻷﺷﺨﺎص اﻟﺬﻳﻦ ﻳﺮﻳﺪون‬
‫اﺳﺘﺨﺪام ﺗﻘﻨﯿﺎت ﻗﻮﻳﺔ ﻻﻋﺎدة ﺗﺼﻤﯿﻢ ﻣﻮﻗﻌﮫﻢ ﺑﺴﮫﻮﻟﺔ ‪.‬‬

‫ﻣﺘﻄﻠﺒﺎت اﻟﻌﻤﻞ ﻣﻊ ‪. XML‬‬

‫ﺟﻤﯿﻊ ﻣﺎ ﺗﺤﺘﺎﺟﻪ إﻟﻰ اﺳﺘﺨﺪام ‪ XML‬ﻣﻮﺟﻮد ﻓﻲ ﻣﻌﻈﻢ اﻟﺤﻮاﺳﺐ ‪.‬‬

‫‪ -‬ﺑﺮﻧﺎﻣﺞ ﺗﺤﺮﻳﺮ ﻧﺼﻮص ﻋﺎدى ﻣﺜﻞ اﻟﻤﻔﻜﺮة ) ‪. ( Notepad‬‬

‫‪ -‬ﻣﺘﺼﻔﺢ ﻳﻤﻜﻨﻪ اﺳﺘﻌﺮاض ﻣﺴﺘﻨﺪات ‪ XML‬ﻣﺜﻞ ‪ Internet Explorer 5.5‬أو اﺣﺪث ‪.‬‬

‫ﻗﺒﻞ اﻟﺘﻌﺮف ﻋﻠﻰ ﺗﻘﻨﯿﺎت ‪ XML‬واﻟﺪاﻓﻊ إﻟﻰ ﺗﻌﻠﻤﮫﺎ ﻧﻠﻘﻰ ﻧﻈﺮة ﻋﻠﻰ ھﯿﺌﺔ اﻟﺒﯿﺎﻧﺎت واﻟﻤﻠﻔﺎت واﻟﻨﺼﻮص وﻟﻐﺎت‬
‫اﻟﺘﺮﻣﯿﺰ اﻷﺧﺮى وﺗﺎرﻳﺨﮫﺎ ‪.‬‬

‫ﻓﻠﻜﻲ ﻧﻔﮫﻢ ﻟﻐﺔ اﻟﺘﺮﻣﯿﺰ ﻳﺠﺐ ﻋﻠﯿﻨﺎ ﻓﮫﻢ ﻛﯿﻔﯿﺔ ﺣﻔﻆ اﻟﺒﯿﺎﻧﺎت وﻛﯿﻔﯿﺔ اﻟﻮﺻﻮل ﻟﮫﺎ ‪ .‬ﻓﮫﻨﺎك ﻧﻮﻋﺎن رﺋﯿﺴﺎن ﻣﻦ‬
‫اﻟﻤﻠﻔﺎت اﻟﺘﻲ ﻳﻔﮫﻤﮫﺎ اﻟﺤﺎﺳﺐ ‪.‬اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ واﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ‪.‬‬

‫أوﻻ ‪ :‬اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ‪- :‬‬

‫وھﻰ ﻋﺒﺎرة ﻋﻦ ﺳﻠﺴﻠﺔ ﻣﻦ اﻟﺒﺘﺎت )‪ (1-0‬ﺻﻔﺮ و واﺣﺪ وﻳﺘﻢ اﻟﺘﻌﺮف ﻋﻠﯿﮫﺎ وﻓﮫﻤﮫﺎ ﺑﻮاﺳﻄﺔ اﻟﺘﻄﺒﯿﻘﺎت اﻟﺘﻲ‬
‫أﻧﺸﺄﺗﮫﺎ ‪ .‬وﻧﻼﺣﻆ ذﻟﻚ ﻓﻲ ﻋﺪم اﻟﻘﺪرة ﻋﻠﻰ ﻗﺮاءة ﻣﻠﻒ ﻣﺎ إﻻ ﺑﻮاﺳﻄﺔ اﻟﺘﻄﺒﯿﻖ اﻟﺬي ﺻﻨﻊ ﻷﺟﻠﻪ ﻓﻤﺜﻼ ﻟﻮ أرت‬
‫ﻓﺘﺢ ﻣﺴﺘﻨﺪ ﻣﻜﺘﻮب ﺑﻮاﺳﻄﺔ ﺑﺮﻧﺎﻣﺞ ﻣﻌﺎﻟﺞ ﻛﻠﻤﺎت ﻣﺎ وﻟﻨﻔﺮض ‪ Word Perfect‬ﻋﻠﻰ ﺑﺮﻧﺎﻣﺞ ‪Microsoft Word‬‬
‫ﻓﺎن اﻟﻤﻠﻒ ﻟﻢ ﻳﻔﺘﺢ أو أﻧﺔ ﻳﻔﺘﺢ ﺑﺸﻜﻞ ﻏﯿﺮ ﻣﻨﺎﺳﺐ وذﻟﻚ ﻷﻧﺔ ﻟﻢ ﻳﻌﺪ ﻟﻠﻌﻤﻞ ﻋﻠﻰ ھﺬا اﻟﺘﻄﺒﯿﻖ ﺑﺎﻻﺧﺘﻼف اﻧﻪ‬
‫ﺻﻤﻢ ﻟﻜﻲ ﻳﻨﺎﺳﺐ اﻟﻌﻤﻞ ﻋﻠﻰ ﺗﻄﺒﯿﻖ أﺧﺮ ‪ .‬وﻟﺤﺴﻦ اﻟﺤﻆ ﻓﺎن ﻣﻌﻈﻢ ﺗﻄﺒﯿﻘﺎت ﻣﻌﺎﻟﺠﺔ اﻟﻜﻠﻤﺎت اﻟﯿﻮم ﺗﺤﺘﻮى‬
‫ﻋﻠﻰ ﻣﺤﻮﻻت ﺗﺴﺘﻄﯿﻊ ﻓﺘﺢ وﻗﺮاءة اﻟﻤﻠﻔﺎت اﻟﺘﻲ ﺗﻢ إﻧﺸﺎءه ﻋﻠﻰ ﻣﻌﺎﻟﺠﺎت أﺧﺮى ‪.‬‬

‫‪5‬‬
‫أن اﻟﻤﯿﺰة اﻟﺠﯿﺪة ﻟﻠﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ھﻲ ﺳﮫﻮﻟﺔ ﻓﮫﻢ اﻟﺸﻔﺮات اﻟﺜﻨﺎﺋﯿﺔ ﻣﻦ ﻗﺒﻞ اﻟﺤﺎﺳﺐ ‪ ،‬ﺑﻤﺎ أن ﺑﻨﯿﺔ‬
‫اﻟﺤﺎﺳﺐ ھﻲ أﺻﻼ ﺑﻨﯿﺔ ﺛﻨﺎﺋﯿﺔ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﻮﺣﺪات واﻷﺻﻔﺎر ﻓﺎن ﻗﺮاءة اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ﺳﺘﻜﻮن أﺳﺮع ﻣﻦ‬
‫ﻗﺮاءة ھﯿﺌﺎت اﻟﻤﻠﻔﺎت اﻷﺧﺮى ‪.‬‬

‫وﻛﻤﺎ ذﻛﺮﻧﺎ اﻟﺴﯿﺌﺔ اﻟﻮﺣﯿﺪة ھﻲ ﻋﺪم اﻟﻘﺪرة ﻋﻠﻰ ﻓﺘﺢ ﺗﻄﺒﯿﻖ ﺗﻢ ﺑﻨﺎءة ﻋﻠﻰ ﺗﻄﺒﯿﻖ أﺧﺮ ‪ .‬وﻗﺪ ﻳﺼﻞ اﻷﻣﺮ إﻟﻰ‬
‫ﻋﺪم إﻣﻜﺎﻧﯿﺔ ﻓﺘﺢ وﻗﺮاءة اﻟﻤﻠﻒ ﻓﻲ ﻧﻔﺲ اﻟﺘﻄﺒﯿﻖ وﻟﻜﻦ ﺿﻤﻦ ﻣﻨﺼﺔ ﺗﺸﻐﯿﻞ ‪ Platform‬ﻣﺨﺘﻠﻔﺔ أو ﺿﻤﻦ‬
‫إﺻﺪارة ﺳﺎﺑﻘﺔ ﻟﻨﻔﺲ اﻟﺘﻄﺒﯿﻖ‪.‬‬

‫ﺛﺎﻧﯿﺎ ‪ :‬اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ ‪- :‬‬

‫اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ ﺗﺸﺒﻪ أﻳﻀﺎ اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ‪ .‬ﻓﮫﯿﺎ أﻳﻀﺎ ﺗﻤﺜﻞ ﺳﻠﺴﻠﺔ ﻣﻦ اﻟﺒﺘﺎت )‪ ( 1 - 0‬ﺻﻔﺮ و واﺣﺪ وﻟﻜﻨﮫﺎ‬
‫ﺗﻌﻤﻞ ﻣﻊ ﺑﻌﻀﮫﺎ ﺑﺼﻮرة ﻗﯿﺎﺳﯿﺔ ﺑﺤﯿﺚ ﺗﺸﻜﻞ أرﻗﺎﻣﺎ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ‪.‬‬

‫‪1100001‬‬

‫ھﺬه اﻟﻤﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﺘﺎت ﺗﺘﺮﺟﻢ ﺑﺤﯿﺚ ﺗﻤﺜﻞ اﻟﺮﻗﻢ ‪ 97‬واﻟﺬي ﻳﺘﻢ أﻳﻀﺎ ﺑﺤﯿﺚ ﻳﻤﺜﻞ اﻟﺤﺮف )‪. (a‬‬

‫وﻳﻨﺘﺞ ﻋﻦ ھﺬه اﻟﺸﻔﺮات اﻟﻘﯿﺎﺳﯿﺔ أن اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ ﻳﻤﻜﻦ ﻗﺮاءﺗﮫﺎ ﻣﻦ ﻗﺒﻞ ﻣﻌﻈﻢ اﻟﺘﻄﺒﯿﻘﺎت ھﺬا ﺑﺎﻹﺿﺎﻓﺔ‬
‫إﻟﻰ إﻣﻜﺎﻧﯿﺔ ﻗﺮاءﺗﮫﺎ ﻣﻦ ﻗﺒﻞ اﻟﺒﺸﺮ ‪.‬‬

‫‪6‬‬
‫إذا ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺔ ﻣﻠﻒ ﻧﺼﻲ ﻓﺎن إي ﺷﺨﺺ ﻓﻲ اﻟﻌﺎﻟﻢ ﻳﺴﺘﻄﯿﻊ ﻓﮫﻢ ﻟﻐﺔ اﻟﻨﺺ وﻳﻤﻜﻦ ﻗﺮاءﺗﻪ ﺑﺄي ﻣﺤﺮر ﻧﺼﻮص‬
‫ﻳﻔﻀﻠﻪ ‪ .‬ﻓﮫﻮ ﻳﺴﺎﻋﺪ ﻋﻠﻰ ﻣﺸﺎرﻛﺔ وﺗﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت ﻣﻊ اﻵﺧﺮﻳﻦ ‪.‬‬

‫اﻟﺴﯿﺌﺔ اﻟﻮﺣﯿﺪ ﻟﮫﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤﻠﻔﺎت ھﻮ أﻧﻨﺎ ﻻ ﻧﺴﺘﻄﯿﻊ ﺗﮫﯿﺌﺔ اﻟﻨﺺ اﻟﻤﻜﺘﻮب ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ ﻧﺮﻏﺐ ﺑﮫﺎ ﻛﻤﺎ‬
‫ﻓﻲ اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ﻓﻼ ﻧﺴﺘﻄﯿﻊ ﺗﻮﺳﯿﻂ اﻟﻨﺺ ﻣﺜﻼ أو ﺗﻠﻮﻳﻨﻪ ﺑﻠﻮن ﻣﻌﯿﻦ أو ﻧﺠﻌﻞ اﻟﻨﺺ ﻣﺎﺋﻼ ‪.‬‬

‫ﺗﺎرﻳﺦ ﻟﻐﺎت اﻟﺘﺮﻣﯿﺰ ‪- :‬‬

‫ﻟﻘﺪ ﻻﺣﻈﻨﺎ ﻣﯿﺰات اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ‪ ،‬ﻓﮫﻲ ﺳﮫﻠﺔ اﻟﻔﮫﻢ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺤﺎﺳﺐ وﻻﺣﻈﻨﺎ أﻳﻀﺎ ﻣﯿﺰات اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ‬
‫ﻓﮫﻲ ﻗﺎﺑﻠﻪ ﻟﻠﺘﺸﺎرك وﺗﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت ﺑﺸﻜﻞ واﺳﻊ أﻟﯿﺴﺖ ﺻﻔﻘﺔ راﺑﺤﺔ ﻟﻨﺎ أن ﺗﻮﺟﺪ ھﻨﺎك ھﯿﺌﺔ ﻣﻠﻔﺎت‬
‫ﺗﺠﻤﻊ ﺑﯿﻦ ﻗﺎﺑﻠﯿﺔ ﺗﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت اﻟﻮاﺳﻌﺔ اﻟﺘﻲ ﺗﻮﻓﺮھﺎ اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ ﺑﺎﻹﺿﺎﻓﺔ ﻟﻔﻌﺎﻟﯿﺔ وإﻣﻜﺎﻧﯿﺎت اﻟﺘﺨﺰﻳﻦ‬
‫اﻟﻘﻮﻳﺔ اﻟﺘﻲ ﺗﻮﻓﺮھﺎ اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ‪.‬‬

‫أن ھﺬه اﻟﻔﻜﺮة ﻟﯿﺴﺖ ﺟﺪﻳﺪه ‪ .‬ﻓﻤﻨﺬ أن ﺗﻮﻓﺮا اﻟﺤﺎﺳﺐ أﻣﺎ اﻟﻤﺒﺮﻣﺠﯿﻦ وھﻢ ﻳﺒﺤﺜﻮن ﻋﻦ ﻃﺮق ﻟﺘﺒﺎدل‬
‫اﻟﻤﻌﻠﻮﻣﺎت ﺑﯿﻦ ﻣﺨﺘﻠﻒ اﻷﻧﻈﻤﺔ واﻟﺒﺮاﻣﺞ وﻛﺨﻄﻮة أوﻟﯿﺔ ﻟﺬﻟﻚ ﻇﮫﺮت ﻟﻐﺔ اﻟﺘﺮﻣﯿﺰ اﻟﻤﻌﻤﻤﺔ اﻟﻘﯿﺎﺳﯿﺔ ‪SGML‬‬
‫وھﻰ اﺧﺘﺼﺎرا إﻟﻰ‬

‫‪ Standard Generalized Markup Languge‬ﻛﺎﻧﺖ ﺗﻠﻚ ﻋﺒﺎرة ﻋﻦ ﻟﻐﺔ ﻧﺼﯿﺔ ﺗﺴﺘﺨﺪم ﻟﺘﺮﻣﯿﺰ اﻟﺒﯿﺎﻧﺎت ‪ .‬ﻣﺜﻞ‬
‫اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ وﻟﻜﻦ ﺑﻄﺮﻳﻘﺔ ﺗﺸﺮح ﻧﻔﺴﮫﺎ ﺑﻨﻔﺴﮫﺎ وھﻮ ﻣﺎ ﻳﻌﺮف ﺑﺎﻟﻤﻠﻔﺎت ذاﺗﯿﺔ اﻟﻮﺻﻒ ‪Self Describing‬‬
‫وھﺬه اﻟﻠﻐﺔ اﺣﺘﻠﺖ ﻣﻮﺿﻌﺎ ﻣﺮﻣﻮﻗﺎ ﻓﻲ اﻟﻌﺪﻳﺪ ﻣﻦ أﻧﻈﻤﺔ إدارة اﻟﺒﯿﺎﻧﺎت اﻟﻜﺒﯿﺮة ‪ .‬ﻓﮫﯿﺎ ﺗﺤﺘﺎج إﻟﻰ اﻟﻜﺜﯿﺮ ﻣﻦ‬
‫اﻻﻋﺘﺒﺎرات ﻋﻦ ﺗﺮﻣﯿﺰ اﻟﺒﯿﺎﻧﺎت اﻟﻀﺨﻤﺔ وﻧﺘﯿﺠﺔ إﻟﻰ ذﻟﻚ أﺻﺒﺤﺖ ﻟﻐﺔ ﻣﻌﻘﺪة ﺟﺪا وﻟﻜﻦ ﻣﻦ اﻟﺘﻌﻘﯿﺪ ﺗﺄﺗﻰ اﻟﻘﻮة ‪.‬‬

‫واﻟﺠﺪﻳﺮ ﺑﺎﻟﺬﻛﺮ أن اﻟﺘﻄﺒﯿﻖ اﻷﻓﻀﻞ اﻟﺬي اﻧﺸﻖ ﻣﻦ ھﺬه اﻟﻠﻐﺔ ‪ ،‬ھﻲ ﻟﻐﺔ ﺗﺮﻣﯿﺰ اﻟﻨﺼﻮص اﻟﻤﺘﺸﻌﺒﺔ ‪HTML‬‬
‫وﺑﺤﯿﺚ ﺗﺴﺘﺨﺪم ﻛﻠﻐﺔ ﺗﺮﻣﯿﺰ ﻋﺎﻟﻤﯿﺔ ﻹﻇﮫﺎر اﻟﻤﻌﻠﻮﻣﺎت ورﺑﻂ أﺟﺰاء اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺨﺘﻠﻔﺔ ﻣﻊ ﺑﻌﻀﮫﺎ ‪.‬‬

‫ﻓﻼ ﻧﺘﺤﺪث ﻛﺜﯿﺮا ﻋﻦ ‪ HTML‬وﻃﺮﻳﻘﺔ ﻋﻤﻠﮫﺎ وإﻣﻜﺎﻧﯿﺘﮫﺎ ﻓﻲ وﺻﻒ اﻟﻨﺼﻮص و إﻣﻜﺎﻧﯿﺔ رﺑﻄﮫﺎ ﺑﺼﻔﺤﺎت ﺷﺒﻜﺔ‬
‫أﺧﺮى ‪ .‬وﺳﮫﻮﻟﺔ ﻋﻤﻠﮫﺎ واﺳﺘﺨﺪام إي ﻧﻮع ﻣﻦ اﻟﻤﺤﺮرات ﻟﻜﺘﺎﺑﺔ اﻟﻮﺻﻒ اﻟﺨﺎص ﺑﮫﺎ و إﻣﻜﺎﻧﯿﺔ ﻋﺮﺿﮫﺎ ﻋﻠﻰ إي‬
‫ﻧﻮع ﻣﻦ ﻣﺘﺼﻔﺤﺎت اﻟﺸﺒﻜﺔ ‪.‬‬

‫‪7‬‬
‫اﻟﻨﻘﺎش و اﻻﺳﺌﻠﺔ‬

‫ﻟﺪي ﻣﻠﻒ ﺗﻢ ﺑﻨﺎءه ﺑﺒﺮﻧﺎﻣﺞ ‪ word perfect‬وﻃﺒﻌﺎً ﻟﻦ أﺳﺘﻄﯿﻊ ﻓﺘﺤﻪ ﺑﺒﺮﻧﺎﻣﺞ( ‪ m.word‬ھﻜﺬا ﻗﻠﺖ(‬
‫وﻟﻜﻦ ﻟﻨﻔﺮض أن ﺑﺮﻧﺎﻣﺞ ‪m.word‬ھﺬا إﺻﺪار ﺟﺪﻳﺪ وﻟﯿﻜﻦ ‪xp.‬ھﻞ أﺳﺘﻄﯿﻊ ﻓﺘﺢ ھﺬا اﻟﻤﻠﻒ ﺑﺒﺮﻧﺎﻣﺞ‬
‫‪ m.word‬وﻟﻜﻦ إﺻﺪار ‪2000‬أو ‪ 97‬ﻣﺜﻼً‬

‫ﻃﺒﻌﺎً ﻧﻈﯿﺮ اﻟﺘﻄﻮﻳﺮات اﻟﻜﺒﯿﺮة اﻟﺘﻰ ﺗﻘﻮم ﺑﮫﺎ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻟﺘﻮﺣﯿﺪ اﻟﻌﻤﻞ واﻋﺘﻤﺎد ﻟﻐﺎت ﺗﺮﻣﯿﺰ ﻣﻮﺣﺪه‪.‬‬
‫ﺑﺎﻟﻀﺎﻓﺔ اﻟﻰ اﻟﻌﺪد اﻟﻜﺒﯿﺮ ﻣﻦ اﻟﻤﺤﻮﻻت اﻟﻤﺪﻣﺠﺔ ﺑﺎﻟﻤﺤﺮرات اﻟﺘﻰ ﺗﻘﻮم ﺑﺘﺤﻮﻳﻞ ھﯿﺌﺎت اﻟﻨﺼﻮص اﻟﻰ ھﯿﺌﺎت‬
‫اﺧﺮى‪.‬‬
‫ﻗﺪ ﺗﺠﺪﻳﻦ ﻧﺘﯿﺠﺔ ﻟﺬﻟﻚ ان اﻟﻤﻠﻒ ﻗﺪ ﺗﻢ ﻓﺘﺤﺔ‪.‬‬

‫ھﻞ اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ ھﻲ اﻟﻤﻠﻔﺎت اﻟﺘﻲ ﺗﺤﻮي ‪ plain text‬ﻣﺜﻞ اﻟﻤﻠﻔﺎت ذات اﻻﻣﺘﺪاد‪ .txt ..‬ھﻰ‬
‫ﻛﺬﻟﻚ؟‬
‫ﺑﯿﻨﻤﺎ اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ھﻲ اﻟﻤﻠﻔﺎت اﻟﺘﻲ ﺗﺤﻮي اﻟﻨﺺ واﻟﻔﻮرﻣﺎت اﻟﻤﺼﺎﺣﺐ ﻟﻪ‪ ،‬ﻣﺜﻞ‪، .doc or .rtf‬‬
‫إن ﺷﺎء اﷲ ﻳﻜﻮن ﻓﮫﻤﻲ ﺻﺤﯿﺢ؟!‬

‫ﺗﻤﺎم ﻛﻼﻣﻚ ﻣﻈﺒﻮط ‪%100‬‬

‫اﻟﺒﺘﺎت ﻛﻤﺎ ﻓﮫﻤﺖ اﻧﮫﺎ ﺗﺘﺮﺟﻢ اﻻرﻗﺎم اﻟﻰ اﻋﺪادﺻﺤﯿﺤﻪ ﻓﻤﺜﻼ رﻗﻢ )‪) ... 79‬ﻓﯿﺘﻢ ﺗﺮﺟﻤﺔ ھﺬا اﻟﺮﻗﻢ‬
‫ھﺬا اﻟﻰ ﺣﺮف‪(a ) .‬‬
‫ﺳﺆاﻟﻲ ﻛﯿﻒ ﺗﺘﻢ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ؟‬

‫ﺑﻤﻌﻨﻰ اﻧﻨﻲ ﻓﮫﻤﺖ ھﺬه اﻟﻨﻘﻄﺔ وﺳﺒﻖ ان ﻋﻤﻠﺘﮫﺎ ﻓﻲ اﻻﻛﺴﯿﻞ ﺑﺎﺣﺪ اﻟﺪوال ؟‬
‫وﻟﻜﻦ ھﻞ اﻟﺤﺎﺳﻮب ھﻮ اﻟﺬي ﻳﻘﻮم ﺑﻌﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﻣﻦ رﻗﻢ اﻟﻰ ﺣﺮف واﻟﺬي ﺷﺮح ﺑﺎﻟﻤﻠﻔﺎت‬
‫اﻟﻨﺼﯿﺔ؟‬

‫ﻳﺘﻢ ﺗﺤﻮﻳﻞ اﻟﺤﺮف ‪ a‬اﻟﻰ ﻣﺎﻳﻌﺎدﻟﺔ ﺑﻨﻈﺎم ‪ ASCII‬وھﻮ اﻟﺸﯿﻔﺮة اﻷﻣﺮﻳﻜﯿﺔ اﻟﻘﯿﺎﺳﯿﺔ ﻟﺘﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت ﺛﻢ ﻳﺘﻢ‬
‫ﺗﺤﻮﻳﻠﺔ ﻣﻦ ﻧﻈﺎم ‪ ASCII‬اﻟﻰ اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻰ وھﻮ اﻟﻨﻈﺎم اﻟﺬى ﻳﻔﮫﻢ اﻟﺤﺎﺳﺐ‪.‬‬
‫ﻓﺎﻟﯿﻚ ھﺬا اﻟﻤﺜﺎل ﻋﻤﻠﯿﺎ ‪,‬‬
‫ﺑﻌﺪ ﺗﺤﻮﻳﻞ اﻟﺤﺮف ‪ a‬اﻟﻰ ﻣﺎ ﻳﻌﺎدﻟﺔ ﻓﻰ ﺟﺪول اﻻﺳﻜﻰ اﻟﻤﻜﻮن ﻣﻦ ‪ 256‬ﺣﺮف ‪ .‬وھﻮ ﻣﻌﺮف ﻣﺴﺒﻘﺎ ‪.‬ﻓﻤﺜﻼ ﺣﺮف‬
‫‪a‬ھﻨﺎ ﻳﺴﺎوى اﻟﺮﻗﻢ ‪.97‬‬
‫وﺗﺘﻢ ﻋﻤﻠﯿﻪ ﺗﺤﻮﻳﻞ ھﺬا اﻟﺮﻗﻢ اﻟﻰ اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻰ اﻟﺬى ﻳﻔﮫﻤﻪ اﻟﺤﺎﺳﺐ ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﺎﻟﯿﺔ‪.‬‬
‫وھﻰ ﻗﺴﻤﺔ اﻟﺮﻗﻢ ﻋﻠﻰ ‪ 2‬ﺑﺸﻜﻞ اﻟﺘﺎﻟﻰ‬
‫‪97/2 = 48‬ﺧﺎرج اﻟﻘﺴﻤﺔ = ‪1‬‬
‫‪48/2 = 24‬ﺧﺎرج اﻟﻘﺴﻤﺔ = ‪0‬‬
‫‪24/2 = 12‬ﺧﺎرج اﻟﻘﺴﻤﺔ = ‪0‬‬
‫‪12/2 = 6‬ﺧﺎرج اﻟﻘﺴﻤﺔ = ‪0‬‬
‫‪6/ 2 = 3‬ﺧﺎرج اﻟﻘﺴﻤﺔ = ‪0‬‬
‫‪3/2 = 1‬ﺧﺎرج اﻟﻘﺴﻤﺔ = ‪1‬‬
‫‪1/2 = 1‬ﺧﺎرج اﻟﻘﺴﻤﺔ = ‪1‬‬

‫ﻓﺒﺘﺎﻟﻰ ﻳﺼﺒﺢ اﻟﺤﺮف ‪ a‬ﻓﻰ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ﻣﺴﺎوى ﻟﻠﺮﻗﻢ اﻟﺜﻨﺎﺋﻰ ‪1100001‬‬
‫ارﺟﻮ ان ﻳﻜﻮن ﻓﮫﻤﺖ ﻣﺎذا اﻗﺼﺪ‪.‬‬

‫‪8‬‬
‫ﻣﻠﻔﺎت اﻟﺠﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ واﻟﺴﻲ ﺟﻲ اي و ‪asp‬ﻣﺎ ﺗﺼﻨﯿﻔﮫﺎ ھﻞ ھﻲ ﻣﻠﻔﺎت ﻧﺼﯿﺔ ام ﺛﻨﺎﺋﯿﺔ؟‬
‫وھﻞ ﻧﻌﺘﺒﺮ ﻣﻠﻒ ﻣﺜﻞ ‪ html‬ﻣﻠﻒ ﺛﻨﺎﺋﻲ ﺑﻤﺎ اﻧﻪ ﻳﺤﺘﻮي ﻋﻠﻰ ﻧﺺ وﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﻋﻠﻰ‬
‫اﻟﺘﻌﻠﯿﻤﺎت اﻟﺘﻲ ﺗﺤﺪد ﻃﺮﻳﻘﺔ اﻟﻌﺮض؟ واذا ﻟﻢ ﻳﻜﻦ ﻛﺬﻟﻚ ﻓﻤﺎذا ﻧﺼﻨﻔﻪ ؟‬

‫ﻧﺤﻦ ﺗﺤﺪﺛﻨﺎ ﻋﻦ ﻧﻮﻋﺎن ﻣﻦ اﻟﻤﻠﻔﺎت وھﻢ اﻟﻨﺼﯿﺔ واﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ﻓﻠﻤﺎذا ﻧﻄﻠﻖ او ﻧﺮﺑﻂ ھﺬا اﻟﻨﻮﻋﯿﻦ ﻣﻦ‬
‫اﻟﻤﻠﻔﺎت ﺑﻠﻐﺎت اﻟﺒﺮﻣﺠﺔ ﺣﯿﺚ ان ﻻ ﻋﻼﻗﺔ ﺑﯿﻦ ان ﻛﺎن اﻟﻠﻐﻪ ‪ HTML‬او ‪ PHP‬واو ﻏﯿﺮھﺎ ﻓﻜﻠﮫﻤﺎ ﻣﻠﻔﺎت ﻧﺼﯿﺔ ﻻﻧﻚ‬
‫ﻗﻤﺖ ﺑﻜﺘﺎﺑﺘﮫﺎ ﺑﻄﺮﻳﻘﺔ ﻧﺼﯿﺔ داﺧﻞ ﻣﺤﺮرات ﻟﻠﻨﺼﻮص ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت ﺑﺼﻮرة ﻧﺼﯿﺔ ﻣﺜﻞ ‪ NotePad‬اى اﻧﻚ ﻟﻢ‬
‫ﺗﻘﻢ ﺑﺎﻟﺮﺳﺎل اى ﻣﻌﻠﻮﻣﺎت اﺧﺮى ﺗﺨﺺ اﻟﻨﺺ ﻣﺜﻞ ﻟﻮﻧﺔ وﻻ ﺣﺠﻤﺔ وﻻ ﻣﻮﻗﻌﺔ ﻣﺜﻼ ﻣﺎ ﻳﺤﺪث ﻓﻰ اﻟﺒﺮاﻣﺞ اﻟﺘﻰ‬
‫ﺗﻌﻤﻞ ﺑﻨﻈﺎم ‪ WYSIWYG‬ﻣﺜﻞ‪MS word .‬‬
‫ارﺟﻮ ان ﺗﻜﻮن ﺗﻔﮫﻤﺖ ﻣﺎ اﻗﺼﺪة‬

‫ھﻞ ﺗﺨﺘﻠﻒ اﻟﺒﺘﺎت ﻓﻲ اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ﻋﻨﮫﺎ ﻓﻲ اﻟﻤﻠﻔﺎت اﻟﻨﺼﯿﺔ ﻷﻧﻚ ذﻛﺮت أﻧﮫﺎ ﻓﻲ اﻟﻤﻠﻔﺎت‬
‫اﻟﻨﺼﯿﺔ ﻗﯿﺎﺳﯿﺔ؟ و اذا ﻛﺎﻧﺖ ﻛﺬﻟﻚ ﻛﯿﻒ ﻳﻔﮫﻤﮫﺎ اﻟﺤﺎﺳﺐ ﻓﻲ اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ﻣﺎ داﻣﺖ ﻏﯿﺮ‬
‫ﻗﯿﺎﺳﯿﺔ و ﺗﺨﺘﺺ ﺑﻜﻞ ﺑﺮﻧﺎﻣﺞ؟‬

‫ﻻ ﻳﻮﺟﺪ اﺧﺘﻼف اﻟﺒﺘﺎت ھﻰ ﺑﺘﺎت‬


‫اﻟﺤﺎﺳﺐ ﻻ ﻳﻔﮫﻢ ﻏﯿﺮ ﻟﻐﻪ واﺣﺪ وھﻰ ﻟﻠﻐﺔ اﻻﻟﻪ ( ﺻﻔﺮ و واﺣﺪ)‬
‫ﻓﺎﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ﺗﺘﺮﺟﻢ اﻟﻰ ھﺬه اﻟﻠﻐﺔ ﻓﻰ اﻟﻤﺮﺣﻠﺔ اﻻﺧﯿﺮ وﺑﺎﻟﺘﺎﻟﻰ ﻳﻔﮫﻤﮫﺎ اﻟﺤﺎﺳﺐ ﺑﺴﮫﻮﻟﮫﺎ‪.‬‬

‫اﺳﺘﻔﺴﺎر آﺧﺮ ﺑﺨﺼﻮص اﻟﺒﺘﺎت‪:‬‬


‫ھﻞ ﻋﻨﺪ ﺣﻔﻆ اﻟﻤﻠﻒ اﻟﺜﻨﺎﺋﻲ‪ ،‬ﻳﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ أو اﻟﺘﻄﺒﯿﻖ ﺑﺘﺮﺟﻤﺔ اﻟﻨﺺ اﻟﻰ ﺑﺘﺎت و ﻳﻀﯿﻒ ﻟﻪ‬
‫ﻣﻌﻠﻮﻣﺎت ﺧﺎﺻﺔ ﺑﺎﻟﺘﻨﺴﯿﻖ ﻓﻠﺬﻟﻚ ﻻ ﻳﺴﺘﻄﯿﻊ ﺑﺮﻧﺎﻣﺞ آﺧﺮ ﻓﮫﻤﻪ و ﻓﺘﺤﻪ‪ ،‬ﺑﯿﻨﻤﺎ ﻳﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ‬
‫اﻟﻤﺴﺘﺨﺪم ﻟﻜﺘﺎﺑﺔ اﻟﻤﻠﻒ اﻟﻨﺼﻲ ﺑﺘﺤﻮﻳﻠﻪ أوﻻ اﻟﻰ ﺑﺘﺎت و ﻣﻦ ﺛﻢ اﻟﻰ أرﻗﺎم اﻷﺳﻜﻲ ﺛﻢ اﻟﻰ‬
‫اﻟﺤﺮوف و اﻷرﻗﺎم ؟‬
‫ﻟﻤﺎذا ذﻛﺮت أﻧﻪ ﻣﻦ اﻟﺴﮫﻞ ﻋﻠﻰ اﻟﺤﺎﺳﺐ ﻗﺮاءة اﻟﻤﻠﻒ اﻟﺜﻨﺎﺋﻲ ﻋﻠﻰ ﻋﻜﺲ اﻟﻤﻠﻒ اﻟﻨﺼﻲ؟‬

‫اﻟﺒﺘﺎت ﻓﺘﺘﻢ اﻟﻌﻤﻠﯿﺔ ﻛﻤﺎ ذﻛﺮﺗﻰ وﺑﻔﻀﻞ اﻟﻤﺤﻮﻻت اﻟﻤﺘﻄﻮرة ﻗﺪ ﺗﻨﺠﺢ ﺑﻌﺾ اﻟﺘﻄﺒﯿﻘﺎت ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻠﻔﺎت ﺗﻢ‬
‫اﻧﺘﺎﺟﮫﺎ ﺑﻮاﺳﻄﺔ ﺗﻄﺒﯿﻘﺎت اﺧﺮى‪.‬‬

‫اﻣﺎ ﺑﺨﺼﻮص ﺳﮫﻮﻟﺔ ﺗﻌﺎﻣﻞ اﻟﺤﺎﺳﺐ ﻣﻊ اﻟﻤﻠﻔﺎت اﻟﺜﻨﺎﺋﯿﺔ ﻻﻧﮫﺎ ھﻰ ﻟﻐﺔ اﻟﺤﺎﺳﺐ اﻟﺘﻰ ﺗﺘﺮﺟﻢ ﺟﻤﯿﻊ اﻟﺘﻄﺒﯿﻘﺎت‬
‫اﻟﻰ ھﺬه اﻟﻠﻐﺔ‪.‬‬

‫ﻓﻤﺜﻞ اﻧﺘﻰ ﺗﺠﺪﻳﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻠﻐﺔ اﻟﻌﺮﺑﯿﺔ وﻗﺪ ﻻ ﺗﺠﺪﻳﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻠﻐﺔ اﻟﯿﺎﺑﺎﻧﯿﺔ ﻓﺎﻳﮫﻢ اﺳﮫﻞ ﻟﻠﺘﺨﺎﻃﺐ‬
‫ﺑﺎﻟﺘﺎﻛﯿﺪ اﻟﻠﻐﺔ اﻻم ﻟﻜﻰ ‪ .‬ﻓﺎﻟﺤﺎﺳﺐ ﻟﻐﻪ اﻻم ھﻰ ﻟﻐﻪ اﻟﺒﺘﺎت ﺻﻔﺮ و واﺣﺪ‬

‫ﺗﻢ ﻧﻘﺎش اﻟﺪرس اﻻول ﺑﺤﻤﺪ اﷲ‬

‫‪9‬‬
‫اﻟﺪرس اﻟﺜﺎﻧﻲ‬

‫ﻣﻘﺪﻣﺔ إﻟﻰ ﺗﻘﻨﯿﺔ ‪ XML‬وﻣﺎ ﺣﻮﻟﻬﺎ ‪-:‬‬

‫ﻟﻐﺔ اﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻌﺔ ‪ eXtensible Markup Language‬اﻟﺘﻲ ﻳﺮﻣﺰ ﻟﮫﺎ ﺑﺎﻻﺧﺘﺼﺎر ‪ XML‬وھﻰ ﺗﺴﺘﺨﺪم ﻓﻲ‬
‫وﺻﻒ وﺗﺨﺰﻳﻦ وﺗﻨﻈﯿﻢ اﻟﺒﯿﺎﻧﺎت ﺑﺨﻼف ﻟﻐﺔ ‪ HTML‬اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﻜﯿﻔﯿﺔ ﻋﺮض اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ‪.‬‬

‫ﺗﺤﺪﺛﻨﺎ ﺳﺎﺑﻘﺎ ﻋﻦ ﻟﻐﺔ ‪ SGML‬وذﻛﺮﻧﺎ إﻧﮫﺎ ﻟﻐﺔ ﻣﻌﻘﺪة ﻻ ﺗﺼﻠﺢ ﻟﺘﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت ﻋﺒﺮ اﻟﺸﺒﻜﺔ ‪ .‬وﻋﻠﻰ اﻟﺮﻏﻢ ﻣﻦ‬
‫أﻧﮫﺎ ﻟﻐﺔ ﻟﻮﺻﻒ اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ وﻻ ﻳﻤﻜﻦ اﺳﺘﺨﻼص ﻣﻌﻠﻮﻣﺎت ﻣﻌﯿﻨﺔ ﺣﻮل ﺷﺨﺺ ﻣﺎ وﻟﺴﺒﺐ ﻗﺼﻮر ﻟﻐﺔ‬
‫‪ HTML‬ﻓﻲ ﻗﺪرﺗﮫﺎ ﻋﻠﻰ وﺻﻒ أﻧﻮاع ﻣﺤﺪدة ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت دﻋﺖ اﻟﺤﺎﺟﺔ ﻟﻮﺟﻮد ﻟﻐﺔ ﺗﺤﻘﻖ ذﻟﻚ وھﻰ ﻟﻐﺔ‬
‫اﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻊ أو ‪ XML‬وھﻰ ﻟﻐﺔ أﻳﻀﺎ ﻣﺸﺘﻘﺔ ﻣﻦ ﻟﻐﺔ ‪ SGML‬وﻣﺘﻮاﻓﻘﺔ ﺑﺼﻮرة ﻛﺒﯿﺮة ﻣﻊ ھﺬه اﻟﻠﻐﺔ‪ .‬ھﺬا‬
‫ﻳﻌﻨﻰ إن أي ﻣﺴﺘﻨﺪ ﻳﺘﺒﻊ ﻣﺼﻄﻠﺤﺎت وﺗﻌﺎﺑﯿﺮ ﻟﻐﺔ ‪ XML‬ﻓﺄﻧﺔ ﻳﺘﺒﻊ أﻳﻀﺎ ﻣﺼﻄﻠﺤﺎت وﺗﻌﺎﺑﯿﺮ ﻟﻐﺔ‪. SGML‬‬

‫وھﻨﺎ ﻳﺠﺐ ﻣﻼﺣﻈﺔ ﺷﻲ ھﺎم أن ﻟﻐﺔ ‪ XML‬ﻟﯿﺴﺖ ﻟﻐﺔ ﻓﻲ اﻷﺻﻞ ﻓﺎ ‪ XML‬ﺗﺼﻒ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺘﻌﺎﺑﯿﺮ اﻟﺘﻲ‬
‫ﺗﺴﺘﺨﺪﻣﮫﺎ ﻟﺒﻨﺎء ﻟﻐﺎﺗﻚ اﻟﺨﺎﺻﺔ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻟﻨﻔﺘﺮض أن ﻟﺪﻳﻨﺎ ﺑﯿﺎﻧﺎت ﺣﻮل اﺳﻢ ﺷﺨﺺ ﻣﺎ واﻧﻚ ﺗﺮﻳﺪ‬
‫ﺗﺒﺎدل ھﺬه اﻟﺒﯿﺎﻧﺎت ﻣﻊ اﻵﺧﺮﻳﻦ ﻳﻤﻜﻨﻚ ﺗﻤﺜﯿﻞ ھﺬه اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻣﻠﻒ ﻧﺼﻲ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ‪.‬‬

‫‪Emad Adly‬‬

‫أو ﺑﺼﯿﻐﺔ ‪ HTML‬ﺑﮫﺬا اﻟﺸﻜﻞ ‪.‬‬

‫ﻳﻤﻜﻦ ﺗﻤﺜﯿﻞ ھﺬه اﻟﺒﯿﺎﻧﺎت ﻓﻲ ‪ XML‬ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪.‬‬

‫ذﻛﺮﻧﺎ ﺳﺎﺑﻘﺎ أن ﻟﻐﺔ ‪ SGML‬و‪ XML‬ﺗﺴﻤﯿﺎن ﺑﺎﻟﻐﺎت ذاﺗﯿﺔ اﻟﻮﺻﻒ ﻻن اﻟﺒﯿﺎﻧﺎت ﻳﻤﻜﻨﮫﺎ ﺑﺴﮫﻮﻟﺔ ﻣﻌﺮﻓﺔ أن ھﺬه‬
‫اﻟﻤﻌﻠﻮﻣﺎت ﺗﻤﺜﻞ اﺳﻢ ‪ Name‬ﻟﺸﺨﺺ ﻣﺎ وأﻳﻀﺎ ھﻨﺎك ﺑﯿﺎﻧﺎت ﺗﺴﻤﻰ > ‪<first‬و ﺑﯿﺎﻧﺎت أﺧﺮى ﺗﺴﻤﻰ >‪<last‬‬
‫ﻳﺠﺐ آن ﺗﻜﻮن ذات ﻣﻌﻨﻰ ﻃﺒﻌﺎ اﻟﻤﻌﻨﻰ ﻳﺪل ﻋﻠﻰ ﻣﺤﺘﻮى اﻟﻤﻌﻠﻮﻣﺔ ﺑﺪاﺧﻠﮫﺎ ‪.‬‬

‫‪10‬‬
‫ﻟﻮ ﻗﻤﻨﺎ ﺑﺤﻔﻆ اﻟﻤﻠﻒ اﻟﺴﺎﺑﻖ ﺑﺎﺳﻢ ‪ name.xml‬ﻓﯿﻤﻜﻨﺎ ﻓﺘﺢ ھﺬا اﻟﻤﻠﻒ ﺑﻮاﺳﻄﺔ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ ﻟﺪﻳﻚ ﺑﺸﺮط‬
‫أن ﻻ ﻳﻘﻞ ﻋﻦ ‪ 5.5‬وﺳﻮف ﻳﻈﮫﺮ ﺑﮫﺬا اﻟﺸﻜﻞ ‪.‬‬

‫وﺑﺎﻟﺮﻏﻢ ﻣﻦ أن ﻣﻠﻒ ‪ XML‬اﻟﺴﺎﺑﻖ ﻻ ﻳﺤﺘﻮى ﻋﻠﻰ إي ﻣﻌﻠﻮﻣﺎت ﺣﻮل ﻛﯿﻔﯿﺔ اﻟﻌﺮض ﻓﺎن اﻟﻤﺘﺼﻔﺢ ﻗﺎم‬
‫ﺑﺎﺳﺘﻌﺮاض اﻟﻤﻠﻒ ﺑﺼﻮرة ﻟﻄﯿﻔﺔ وﺑﺘﻨﺴﯿﻖ ﻟﻮﻧﻰ ﻣﺨﺘﻠﻒ وأﻳﻀﺎ اﻟﺒﻨﯿﺔ اﻟﺸﺠﺮﻳﺔ اﻟﺘﻲ ﻓﮫﻤﮫﺎ اﻟﻤﺘﺼﻔﺢ وﺗﺮﺟﻤﮫﺎ‬
‫أﻳﻀﺎ وذﻟﻚ ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ اﻟﺮﻣﺰ )‪ (-‬ﺑﺠﺎﻧﺐ اﻟﺒﻨﺪ >‪ <name‬وھﺬه اﻟﻄﺮﻳﻘﺔ ﻣﻔﯿﺪة ﺟﺪا ﻋﻨﺪﻣﺎ ﻳﻜﻮن اﻟﻤﻠﻒ ﻛﺒﯿﺮ‬
‫اﻟﺤﺠﻢ ‪.‬‬

‫وﻧﻼﺣﻆ أﻧﻨﺎ ﻟﻢ ﻧﻘﻢ ﺑﻮﺻﻒ اﻟﺒﯿﺎﻧﺎت ﻟﻜﻲ ﺗﻈﮫﺮ ﺑﮫﺬا اﻟﺘﻨﺴﯿﻖ اﻟﻤﻮﺟﻮد وﻟﻜﻦ ھﺬا ﻣﺎ ﻳﻘﺪﻣﻪ ﻟﻨﺎ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ‬
‫ﻓﻠﮫﺬا اﻟﻤﺘﺼﻔﺢ ورﻗﺔ ﺗﻨﺴﯿﻖ ‪ Style Sheet‬اﻓﺘﺮاﺿﯿﺔ ﻣﺒﯿﺘﺔ داﺧﻠﺔ ﻣﻤﺎ ﻳﻤﻜﻦ اﻟﻤﺘﺼﻔﺢ ﻣﻦ ﻋﺮض إي ﻣﺴﺘﻨﺪ‬
‫‪ XML‬وﻓﻖ ورﻗﺔ اﻟﺘﻨﺴﯿﻖ ھﺬه ‪.‬‬

‫وﺑﮫﺬا ﻗﺪ ﻋﺮﻓﻨﺎ ﻣﻘﺪﻣﺔ ﺑﺴﯿﻄﺔ إﻟﻰ ھﺬه اﻟﻠﻐﺔ وﻓﻰ اﻟﺪرس اﻟﻘﺎدم ﺳﻮف ﻧﺘﺤﺪث ﻋﻦ اﻷﺳﺒﺎب اﻟﺘﻲ ﺗﺪﻓﻌﻨﺎ‬
‫ﻟﺘﻌﻠﻢ ھﺬه اﻟﻠﻐﺔ ‪.‬‬

‫واﻟﺠﺪﻳﺮ ﺑﺎﻟﺬﻛﺮ أن ﻟﻐﺔ ‪ XML‬ﺗﺘﻄﻠﺐ ﻣﻨﺎ ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ اﻟﻤﺤﺪدة ﻟﻜﺘﺎﺑﻪ وﺛﺎﺋﻖ ‪ XML‬ﻗﺎﺑﻠﺔ ﻟﻠﻌﺮض ‪ .‬ﻣﺜﻠﮫﺎ ﻣﺜﻞ ﻟﻐﺔ‬
‫‪ HTML‬ﻓﯿﮫﺎ أﻳﻀﺎ ﺗﺘﻄﻠﺐ دراﻳﺔ ﺑﻄﺮﻳﻘﺔ ﻛﺘﺎﺑﻪ اﻟـ ‪ Tags‬اﻟﺨﺎص ﺑﮫﺎ ‪.‬‬

‫ﻣﻌﺮﺑﺎت ﻟﻐﺔ ‪- : XML Parsers‬‬

‫إذا اﺗﺒﻌﻨﺎ اﻟﻘﻮاﻧﯿﻦ اﻟﻤﺤﺪدة وﻓﻖ ﻟﻐﺔ ‪ XML‬ﻳﻤﻜﻨﻨﺎ اﻟﻮﺛﻮق ﻣﻦ ﺳﮫﻮﻟﺔ اﺳﺘﺨﻼص اﻟﻤﻌﻠﻮﻣﺎت ‪ .‬ﻳﻌﻮد ذﻟﻚ إﻟﻰ‬
‫وﺟﻮد ﺑﺮﻣﺠﯿﺎت ﺗﺴﻤﻰ ﺑﺎﻟﻤﻌﺮﺑﺎت ‪ Parsers‬وﻇﯿﻔﺘﮫﺎ ﻗﺮاءة ﻋﺒﺎرات ‪ XML‬واﺳﺘﺨﻼص اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ ﺗﻠﻚ‬
‫اﻟﻌﺒﺎرات ‪.‬‬

‫وھﻰ ﺗﺴﺘﺨﺪم ﻓﻲ ﺑﺮاﻣﺠﻨﺎ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺴﺘﻨﺪات ‪. XML‬‬

‫ﻓﻼ داﻋﻲ ﻟﻠﻘﻠﻖ ﺣﻮل ﻛﯿﻔﯿﺔ اﺳﺘﺨﻼص اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ ﻣﻠﻔﺎت ‪ .XML‬ﻓﺎﻟﯿﻮم اﻓﻀﻞ ﻣﻦ اﻷﻣﺲ ‪ .‬ﻓﻲ اﻟﻤﺎﺿﻲ‬
‫وﻗﺒﻞ اﺳﺘﺨﺪام ھﺬه اﻟﻤﻌﺮﺑﺎت ﻛﺎن ﻳﺘﺤﺘﻢ ﻋﻠﯿﻚ اﻟﻘﯿﺎم ﺑﺎﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻌﻤﻞ ﻟﺒﻨﺎء ﻗﻮاﻧﯿﻦ ﺗﺤﻜﻢ ھﺬه اﻟﻤﻌﻠﻮﻣﺎت‬
‫وﻟﻜﻦ اﻵن ﻣﻊ ﺻﯿﻐﺔ ‪ XML‬ﻳﻤﻜﻨﻚ ﻓﻘﻂ إﻋﻄﺎء ﻣﻌﺮب ﻟﻐﺔ ‪ XML‬ﻣﻠﻔﺎ ﻛﻤﺎ ﻳﻠﻲ ‪-:‬‬

‫ﺳﯿﻘﻮم اﻟﻤﻌﺮب ﺑﺎﺳﺘﺨﻼص اﻟﺒﯿﺎﻧﺎت ﻣﻦ ھﺬه اﻟﺸﻔﺮة وﺳﯿﺨﺒﺮﻧﺎ ﺑﺄن ھﻨﺎك ﺑﻨﺪا ﻟﻠﺒﯿﻨﺎت ﺑﺎﺳﻢ وأن اﻟﻤﻌﻠﻮﻣﺔ‬
‫اﻟﻤﺮﻓﻘﺔ ﻟﮫﺬا اﻟﺒﻨﺪ ھﻲ ‪ Emad‬وﻻ ﻳﺘﺤﺘﻢ ﻋﻠﻰ ﻣﻌﺮب ‪ XML‬ﻣﻌﺮﻓﺔ أي ﻗﻮاﻧﯿﻦ ﺣﻮل ﻣﻮﺿﻊ اﻻﺳﻢ ﻣﻦ اﻟﺒﯿﺎﻧﺎت ‪.‬‬

‫‪11‬‬
‫أن اﻟﺸﻔﺮة اﻟﻤﻜﺘﻮﺑﺔ ﺑﻠﻐﺔ ‪ XML‬ﻣﮫﻤﺎ ﻛﺎن ﻧﻮﻋﮫﺎ ﻻ ﺗﺆﺛﺮ ﻓﻲ ﻋﻤﻞ اﻟﻤﻌﺮب ﻓﺎن ﻛﻨﺖ ﻛﺘﺒﺖ ﺷﻔﺮة ‪XML‬‬
‫ﺑﺎﻹﻧﺠﻠﯿﺰﻳﺔ أو ﺑﺎﻟﻌﺮﺑﯿﺔ أو ﺑﺄﻳﺔ ﻟﻐﺔ أﺧﺮى ﻓﺠﻤﯿﻌﮫﺎ ﻳﻤﻜﻦ ﻗﺮاءﺗﮫﺎ وﻓﮫﻤﮫﺎ ﺑﻨﻔﺲ اﻟﻤﻌﺮب ‪ .‬وﺣﺘﻰ إذا ﻛﺎن‬
‫اﻟﺸﺨﺺ اﻟﺬي ﻛﺘﺒﮫﺎ ﻻ ﻳﻌﺮف ﺷﻲ ﻋﻦ ھﺬه اﻟﻠﻐﺔ ‪.‬‬

‫ﻟﻐﺔ ‪ XML‬ﻟﻐﺔ ﻣﺮﻧﺔ ﺑﺪرﺟﺔ ﻛﺒﯿﺮة ﻓﮫﻲ ﺗﮫﺪف إﻟﻰ أن ﺗﻜﻮن اﻷﺳﺎس ﻟﻠﻐﺎت ﺗﺒﺎدل اﻟﻤﻌﻄﯿﺎت اﻟﻤﺨﺘﻠﻔﺔ ﺧﺎﺻﺔ‬
‫ﻋﺒﺮ اﻹﻧﺘﺮﻧﺖ ﻓﮫﻲ ﺗﺠﻌﻞ ﻣﻦ ﺗﺸﺎرك اﻟﻤﻠﻔﺎت واﻟﻤﻌﻠﻮﻣﺎت ﻋﻠﻰ اﻹﻧﺘﺮﻧﺖ وﺗﺒﺎدﻟﮫﺎ ﻣﺴﺎﻟﺔ ﺳﮫﻠﻪ ﺟﺪا‪.‬‬

‫اﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻊ ‪- : Extensible‬‬

‫ﺑﺎﻋﺘﺒﺎر أﻧﺔ ﻳﻤﻜﻨﻨﺎ اﻟﺘﺤﻜﻢ ﺑﺼﻮرة ﻛﺎﻣﻠﺔ ﻓﻲ ﺗﻜﻮﻳﻦ ﻣﺴﺘﻨﺪات ‪ XML‬ﻓﯿﻤﻜﻨﻨﺎ أن ﻧﺸﻜﻞ اﻟﺒﯿﺎﻧﺎت ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ‬
‫ﺗﺤﻠﻮ ﻟﻨﺎ ‪.‬‬

‫أو ﻗﺮرﻧﺎ ﻋﺪم اﺣﺘﯿﺎﺟﻨﺎ ﻟﻤﺮوﻧﺔ اﻛﺒﺮ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻓﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﺸﻔﺮة ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﺎﻟﯿﺔ ‪.‬‬

‫أﻧﺖ ﺣﺮ ﻓﻲ ﻃﺮﻳﻘﺔ ﺗﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت ‪ .‬ﻳﺘﻮﻗﻒ ذﻟﻚ ﻋﻠﻰ اﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ ﺗﻤﻜﻦ ﺑﺮاﻣﺠﻨﺎ ﻣﻦ اﺳﺘﺨﺪام ھﺬه اﻟﺒﯿﺎﻧﺎت ‪.‬‬
‫أﻣﺎ إذا أردت اﺳﺘﺨﺪام اﻟﻤﺮوﻧﺔ اﻟﻤﺘﻮاﻓﺮة ‪ xml‬ﻓﯿﻤﻜﻨﻚ اﻟﻘﯿﺎم ﺑﺬﻟﻚ ‪ .‬ﻓﺎﺧﺘﺎر ﻣﺎ ﻳﻨﺎﺳﺐ اﺣﺘﯿﺎﺟﺎﺗﻚ ‪.‬‬

‫ﻣﻦ ھﻨﺎ ﺟﺎءت ﺗﺴﻤﯿﺔ ھﺬه اﻟﻠﻐﺔ ﺑﺎﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻊ أو ‪ Extensible‬ﻓﺎن أي ﺷﺨﺺ ﻳﺴﺘﻄﯿﻊ ﺗﺮﻣﯿﺰ اﻟﺒﯿﺎﻧﺎت‬
‫ﻧﻔﺴﮫﺎ ﺑﺄي ﻃﺮﻳﻘﺔ ﺑﺎﺳﺘﺨﺪام ھﺬه اﻟﻠﻐﺔ ‪.‬‬

‫وﻟﻜﻦ ﻳﺠﺐ أن ﻧﺄﺧﺬ ﺑﺎﻟﺤﺴﺒﺎن أﻧﻪ ﺗﻜﻤﻦ اﻻﺳﺘﻔﺎدة اﻟﺤﻘﯿﻘﯿ ﺔ ﻣﻦ ﻟﻐﺔ ‪ XML‬ﻋﻨﺪﻣﺎ ﻳﺴﺘﺨﺪم اﻷﺷﺨﺎص ﻧﻔﺲ‬
‫اﻟﮫﯿﺌﺔ ﻟﺘﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت اﻟﺸﺎﺋﻌﺔ ﻻن ذﻟﻚ ﺳﯿﺴﻤﺢ ﺑﺘﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت ﺑﺼﻮرة اﻛﺒﺮ واﺳﮫﻞ ‪.‬‬

‫ھﻨﺎك ﻓﻌﻼ اﻟﻌﯿﺪ ﻣﻦ اﻟﻤﺸﺎرﻳﻊ ﻟﻠﻮﺻﻮل إﻟﻰ ﻣﻔﺮدات ﻗﯿﺎﺳﯿﺔ ﻷﻧﻮاع اﻟﺒﯿﺎﻧﺎت اﻟﺸﺎﺋﻌﺔ اﻻﺳﺘﺨﺪام ‪ .‬ﻓﻌﻼ ﺳﺒﯿﻞ‬
‫اﻟﻤﺜﺎل ﻟﻐﺔ اﻟﺮﺳﻮﻣﯿﺎت اﻟﺸﻌﺎﻋﯿﺔ اﻟﻘﺎﺑﻠﺔ ﻟﻠﺘﻮﺳﻊ ‪ Scalable Vector Graphics‬أو ‪ SVG‬وھﻰ ﻣﻔﺮدات ‪XML‬‬
‫اﻟﺘﻲ ﺗﻤﺜﻞ ﻗﺎﻋﺪة أﺳﺎﺳﯿﺔ ﻟﺘﻤﺜﯿﻞ اﻟﺮﺳﻮﻣﯿﺎت ﺛﻨﺎﺋﯿﺔ اﻟﺒﻌﺪ ‪.‬‬

‫وﻟﻐﺔ ‪MathML‬وھﻰ ﻣﻔﺮدات ‪ XML‬ﻟﻮﺻﻒ اﻟﺮﻳﺎﺿﯿﺎت ﻛﻘﺎﻋﺪة أﺳﺎﺳﯿﺔ ﻻﺗﺼﺎل اﻵﻻت ﺑﺒﻌﻀﮫﺎ اﻟﺒﻌﺾ ‪.‬‬

‫وﻟﻐﺔ اﻟﺘﺮﻣﯿﺰ اﻟﻜﯿﻤﯿﺎﺋﯿﺔ ‪Chemical Markup Language‬أو ‪ CML‬ھﻲ ﻣﻔﺮدات ‪ XML‬ﻷداره اﻟﻤﻌﻠﻮﻣﺎت اﻟﻜﯿﻤﯿﺎﺋﯿﺔ‬

‫وأﻳﻀﺎ ﻟﻐﺔ ‪ WML‬وھﻰ ﻟﻐﺔ ﺗﺮﻣﯿﺰ اﻟﻼﺳﻠﻜﻲ واﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﺑﻨﺎء ﻣﻮاﻗﻊ ﻳﻤﻜﻦ ﺗﺼﻔﺤﮫﺎ ﺑﺎﺳﺘﺨﺪام اﻟﮫﻮاﺗﻒ‬
‫اﻟﺨﻠﻮﻳﺔ‬

‫‪12‬‬
‫وھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﻔﺮدات اﻟﻤﺘﺨﺼﺼﺔ ﻓﻲ ﻣﺠﺎﻻت أﺧﺮى ﺗﺠﻌﻞ ﻣﻦ ﻛﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام ‪ XML‬ﺧﺎﺻﺔ ﺑﻨﺎ‬
‫إﻻ إن اﺳﺘﺨﺪام اﻟﻤﻔﺮدات اﻟﻘﯿﺎﺳﯿﺔ ﻳﺴﺎﻋﺪك ﻋﻠﻰ زﻳﺎدة ﺗﻮاﻓﻘﯿﺔ ﻣﺴﺘﻨﺪات ‪ XML‬ﻣﻊ اﻟﺒﺮﻣﺠﯿﺎت اﻷﺧﺮى‪.‬‬

‫ﻣﻤﺎ ﺗﺘﻜﻮن ﻟﻐﺔ ‪ XML‬؟‬

‫ﺗﻌﺘﺒﺮ ﺗﻘﻨﯿﺔ ‪ XML‬ﻋﺎﺋﻠﺔ ﺧﺎﺻﺔ ﺑﺬاﺗﮫﺎ ﺑﻌﻀﮫﺎ ﻣﺎ ﻳﺰال ﻓﻲ ﻗﯿﺪ اﻟﺘﻄﻮﻳﺮ ﻓﻲ ﺳﻨﻮاﺗﻪ اﻷوﻟﻰ ‪.‬‬

‫وﻟﻜﻞ ﻓﺮد ﻓﻲ ھﺬه اﻟﻌﺎﺋﻠﺔ ﻣﻮﺻﻔﺎﺗﻪ اﻟﺨﺎﺻﺔ ‪ .‬اﻟﻨﺴﺨﺔ ‪ XML 1.0‬ھﻲ اﻟﻘﺎﻋﺪة اﻷﺳﺎﺳﯿﺔ اﻟﺘﻲ ﺗﺒﻨﻰ ﻋﻠﯿﮫﺎ‬
‫‪ XML‬ﻓﮫﻲ ﺗﺼﻒ اﻟﺘﺮاﻛﯿﺐ اﻟﺘﻲ ﻳﺠﺐ ﻋﻠﻰ ﻣﺴﺘﻨﺪ ‪ XML‬اﺗﺒﺎﻋﮫﺎ وﻛﺬﻟﻚ اﻟﻘﻮاﻧﯿﻦ اﻟﺘﻲ ﻳﺠﺐ ﻋﻠﻰ ﻣﻌﺮﺑﺎت ‪XML‬‬
‫ﺗﻄﺒﻘﮫﺎ ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﺗﻌﺎرﻳﻒ أﻧﻮاع اﻟﻤﺴﺘﻨﺪات ‪.sDTD‬‬

‫ﻟﻐﺔ ‪Xpath‬وھﻰ أﻳﻀﺎ ﺟﺰء ﻻ ﻳﺘﺠﺰأ ﻣﻦ ﺗﻘﻨﯿﺔ ‪ XML‬وھﻰ ﻟﻐﺔ اﻻﺳﺘﻌﻼم ﻟﻌﻨﻮﻧﺔ اﻷﻗﺴﺎم ﻓﻲ ﻣﺴﺘﻨﺪ ‪XML‬‬
‫ﻓﮫﻲ ﺗﻤﻜﻦ اﻟﺘﻄﺒﯿﻘﺎت ﻣﻦ إﻳﺠﺎد ﻣﻌﻠﻮﻣﺎت ﻣﺤﺪده ﺿﻤﻦ ﻣﺴﺘﻨﺪ ‪. XML‬‬

‫ﺗﺪﺧﻞ ﻟﻐﺔ ‪CSS‬ﺿﻤﻦ ﻋﺎﺋﻠﺔ ‪ XML‬أﻳﻀﺎ وذﻟﻚ ﻓﻲ ﺣﺎﻻت اﺳﺘﻌﺮاض ﻣﺴﺘﻨﺪات ‪ XML‬اﻟﺒﺴﯿﻄﺔ وﻳﻤﻜﻦ اﻟﻌﻮض‬
‫ﻋﻨﮫﺎ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ‪ XSL‬وذﻟﻚ ﻓﻲ اﻟﺤﺎﻻت اﻟﻤﻌﻘﺪة وھﻰ ﺗﺘﻀﻤﻦ ﺗﺤﻮﻳﻼت ﺧﺎﺻﺔ ﺗﺴﻤﻰ ھﺬه‬
‫اﻟﺘﺤﻮﻳﻼت ‪ XSLT‬واﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﻳﻞ ﻣﺴﺘﻨﺪات ‪ XML‬إﻟﻰ أﻧﻮاع ﻣﺴﺘﻨﺪات أﺧﺮى ‪.‬ﺑﺈﺿﺎﻓﺔ إﻟﻰ أﺳﻠﻮب‬
‫ﻋﺮض اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬

‫اﻷﺧﺘﺎن ‪ XLink‬و ‪ XPointer‬ھﻤﺎ ﻟﻐﺘﺎن ﺗﺴﺘﺨﺪﻣﺎ ﻟﺮﺑﻂ ﻣﺴﺘﻨﺪات ‪ XML‬ﻣﻊ ﺑﻌﻀﮫﻤﺎ اﻟﺒﻌﺾ ﺑﺼﻮرة ﻣﺸﺎﺑﮫﺎ‬
‫ﻟﻠﻮﺻﻼت اﻟﺘﺸﻌﺒﯿﻪ ﻓﻲ ﻣﺴﺘﻨﺪات ‪. HTML‬‬

‫ﻧﻤﻮذج ﻛﺎﺋﻦ اﻟﻤﺴﺘﻨﺪ ‪ Document Object Model‬أو ‪ DOM‬ھﺬا اﻟﻨﻮع ﻣﻦ ﻋﺎﺋﻠﺔ ‪ XML‬ھﻮ ﻣﻌﺮوف ﺟﯿﺪاً ﻟﻤﻦ‬
‫ﺗﻌﺎﻣﻞ ﻣﻦ ﻗﺒﻞ ﻣﻊ ﻟﻐﺔ ‪ DHTML‬و ‪ JavaScript‬أﻟﻢ ﺗﻤﺮ ﻋﻠﯿﻚ ﺟﻤﻠﺔ ‪ Document.write‬ﻗﺒﻞ ذﻟﻚ ‪.‬‬

‫ﻓﮫﺬا اﻟﻜﺎﺋﻦ ﻳﻤﻜﻨﻪ رﺑﻂ ﻣﺴﺘﻨﺪات ‪ XML‬ﻣﻊ ﻟﻐﺎت ﺑﺮﻣﺠﺔ أﺧﺮى ﻣﻊ إﻣﻜﺎﻧﯿﺔ اﻹﺿﺎﻓﺔ واﻟﺤﺬف اﻟﺘﻌﺪﻳﻞ داﺧﻞ‬
‫ﻣﺴﺘﻨﺪات ‪ XML‬ﺑﻮاﺳﻄﺔ ﻟﻐﺘﻚ اﻟﻤﻔﻀﻠﺔ ‪.‬‬

‫‪13‬‬
‫اﻟﻨﻘﺎش و اﻷﺳﺌﻠﺔ‬
‫ﻟﺪي ﺗﺴﺎؤل ﺣﻮل اﻟﺘﻘﻨﯿﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ﻋﺎﺋﻠﺔ اﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻊ‪ ،‬ﻓﻌﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل‪:‬‬
‫ﻟﻐﺔ ‪ MathML‬ﻟﻮﺻﻒ اﻟﺮﻳﺎﺿﯿﺎت ﻛﻘﺎﻋﺪة أﺳﺎﺳﯿﺔ ﻻﺗﺼﺎل اﻵﻻت ﺑﺒﻌﻀﮫﺎ اﻟﺒﻌﺾ‪ ،‬ھﻞ ﻳﻌﻨﻲ ذﻟﻚ‬
‫أن ﺗﺮﻣﯿﺰ اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام ھﺬه اﻟﻠﻐﺔ ﺗﻘﺮأه اﻵت اﻟﺘﻲ ﺗﺘﺼﻞ ﺑﺒﻌﻀﮫﺎ اﻟﺒﻌﺾ؟! ﺑﻤﻌﻨﻰ أن ﺗﻜﻮن‬
‫اﻵﻟﺔ أو ﺑﺮﻧﺎﻣﺞ ﻓﯿﮫﺎ ﻗﺎدر ﻋﻠﻰ ﻧﻔﺴﯿﺮ واﺳﺘﺨﻼص ﺑﯿﺎﻧﺎت اﻻﺗﺼﺎل اﻟﻤﺮﻣﺰة ﺑﮫﺬه اﻟﻠﻐﺔ؟!‬
‫ﻧﻔﺲ اﻟﺸﺊ ﺑﺎﻟﻨﺴﺒﺔ ﻟـ ‪CML‬و ‪ WML‬؟؟‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟـ ‪ MathML‬و ‪CML‬و ‪WML‬ﻛﻠﮫﻤﺎ ﻟﻐﺎت ﻣﺸﺘﻘﺔ ﻣﻦ ‪ XML‬اى اﻧﮫﺎ ﺗﺘﺒﻊ ﻧﻔﺲ ﻗﻮاﻋﺪ ‪ XML‬وﻟﻜﻨﮫﺎ ﺗﻢ‬
‫ﺗﺤﺪﻳﺪ ﻣﻮاﺻﻔﺎﺗﮫﺎ اﻟﻘﯿﺎﺳﯿﺔ ﻟﻜﻰ ﺗﺘﻨﺎﺳﺐ ﻣﻊ اﻟﮫﺪف ﻣﻦ اﺳﺘﺨﺪاﻣﮫﺎ ‪.‬ﻛﻲ ﺗﺴﮫﻞ وﺗﻮﺣﺪ اﻟﻌﻤﻞ ﻣﻊ ﻣﺴﺘﻌﻤﻠﯿﮫﺎ‬
‫ﺑﺼﻮرة ﻗﯿﺎﺳﯿﺔ ﻣﻮﺣﺪة ﻣﺘﻔﻖ ﻋﻠﯿﮫﺎ ﻣﺴﺒﻘﺎذﻟﻚ ﺑﺘﺨﺼﯿﺺ ﺑﻌﺾ اﻟﻌﻨﺎﺻﺮ واﻟﺼﻔﺎت اﻟﻤﺤﺪده اﻟﺘﻰ ﺗﺼﻒ اﺷﯿﺎء‬
‫ﻣﻌﯿﻨﺔ ذات اھﻤﯿﺔ ﻟﻜﻮن اﻟﻠﻐﺔ‪.‬‬

‫اﻧﺖ ﻛﺘﺒﺖ‪" :‬ﻓﮫﺬا اﻟﻜﺎﺋﻦ ﻳﻤﻜﻨﻪ رﺑﻂ ﻣﺴﺘﻨﺪات ‪ XML‬ﻣﻊ ﻟﻐﺎت ﺑﺮﻣﺠﺔ أﺧﺮى ﻣﻊ إﻣﻜﺎﻧﯿﺔ اﻹﺿﺎﻓﺔ‬
‫واﻟﺤﺬف اﻟﺘﻌﺪﻳﻞ داﺧﻞ ﻣﺴﺘﻨﺪات ‪ XML‬ﺑﻮاﺳﻄﺔ ﻟﻐﺘﻚ اﻟﻤﻔﻀﻠﺔ"‬
‫ﻳﻌﻨﻲ ﻟﻮ اﻧﺎ اﺑﺮﻣﺞ ﺑﺎﻟﺠﺎﻓﺎ و ﺻﺎﺣﺒﻲ ﻳﺒﺮﻣﺞ ﺑﺎﻟـ ‪ #C‬ﻓﮫﻞ ﻧﺴﺘﻄﯿﻊ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻧﻔﺲ اﻟﺒﯿﺎﻧﺎت ﻣﻦ‬
‫ﺧﻼل اﻟـ ‪ XML‬؟‬

‫ﺗﺤﺪﺛﺖ ﻋﻦ اﻟﻜﺎﺋﻦ ‪ DOM‬ﻓﺎى ﻟﻐﺔ ﻳﻤﻜﻨﮫﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ھﺬا اﻟﻜﺎﺋﻦ ﺗﺴﻄﯿﻊ اﻟﺘﺤﻜﻢ ﻓﻰ ﻣﻠﻔﺎت‪XML‬‬
‫ﻟﯿﺲ ﻣﻌﻨﻰ ذﻟﻚ اﻧﻚ ﻻﺗﺴﺘﻄﯿﻊ اﻻﺗﺼﺎل ﺑﻤﻠﻔﺎت ‪ XML‬ﺑﻮاﺳﻄﺔ ﻟﻐﺎت ﻣﺨﺘﻠﻔﺔ وﻟﻜﻦ ﺗﺴﺘﻄﯿﻊ ﻓﻌﻞ ذﻟﻚ ﺑﺒﺴﺎط‬
‫ﺑﻮاﺳﻄﺔ ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ اﻟﺨﺎﺻﺔ اﻟﺘﻰ ﺗﺨﻠﺘﻠﻒ ﻣﻦ ﻟﻐﻪ ﺑﺮﻣﺠﺔ اﻟﻰ اﺧﺮى‪.‬‬

‫وﻟﻠﺘﺄﻛﯿﺪ أﺣﺐ أﻗﻮل وﺑﺎﻟﺘﺠﺮﺑﺔ أﻧﻪ ﺑﺈﻣﻜﺎﻧﻚ اﺳﺘﺨﺪام ﻣﻠﻔﺎت ‪ xml‬ذاﺗﮫﺎ ﻓﻲ أﻛﺜﺮ ﻣﻦ ﺑﺮﻧﺎﻣﺞ وﻛﻞ ﺑﺮﻧﺎﻣﺞ ﻣﺒﺮﻣﺞ‬
‫ﺑﻠﻐﺔ ﻣﺨﺘﻠﻔﺔ‬

‫ھﺬه ﺑﻌﺾ اﻷﺳﺌﻠﺔ‪:‬‬


‫‪ -1‬ﻟﻤﺎذا ﻋﺮض اﻟﻤﺘﺼﻔﺢ اﻟﻤﻠﻒ وﻟﻢ ﻳﻌﺮض اﻷﺳﻢ اﻟﻤﻜﺘﻮب ﻓﻘﻂ؟‬
‫ﻻن ﻟﻐﺔ ‪ XML‬ﺗﺴﺘﺨﺪم ﻓﻲ وﺻﻒ وﺗﺨﺰﻳﻦ وﺗﻨﻈﯿﻢ اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫واﻟﻤﺘﺼﺢ ﻟﻢ ﻳﺎﺧﺬ ﻣﻨﻚ اى ﺗﻌﻠﯿﻤﺎت ﻳﺴﺘﻌﻤﻠﮫﺎ ﻓﻰ ﻛﯿﻔﯿﺔ ﻋﺮض اﻟﺒﯿﺎﻧﺎت ‪ .‬ﻓﺎﻟﻮﺿﻊ اﻻﻓﺘﺮاﺿﻰ ﻟﺔ ان ﻳﻈﮫﺮ ﺑﮫﺬا‬
‫اﻟﺸﻜﻞ‪.‬‬
‫وﻟﻜﻦ ﻟﻚ ﺷﺨﺺ ﻏﺎﻳﺘﺔ ﻓﻰ ﺷﻜﻞ ﻋﺮض ھﺬه اﻟﺒﯿﺎﻧﺎت ‪.‬‬
‫ﺳﻨﺘﻌﺮف ﻓﻰ درس اﺧﺮى ﻛﯿﻔﯿﺔ اﻟﺘﺤﻜﻢ ﻓﻰ ﻋﺮض اﻟﺒﯿﻨﺎت ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ‪ .‬ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﻤﺮﻏﻮﺑﺔ‬
‫ھﺬا ﻣﺠﺮد ﻣﺜﺎل ﻟﻠﺘﻮﺿﯿﺢ ﻓﻘﻂ‪.‬‬

‫‪2-‬ھﻞ ھﺬه وﻇﯿﻔﺔ ال ‪xml‬ﻋﺮض اﻟﻤﻠﻔﺎت ﺑﺘﻨﺴﯿﻖ ﻟﻮﻧﻲ وﺑﺎﻟﺒﻨﯿﺔ اﻟﺸﺠﺮﻳﺔ؟‬


‫اﻋﺘﻘﺪ اﺟﺎﺑﺔ اﻟﺴﺆال اﻻول ﺳﺘﻔﯿﺪ ﻓﻰ ھﺬا اﻟﺴﺆال وﻟﻜﻦ اﻧﺘﻈﺮى اﻳﻀﺎ اﻟﺪرس اﻟﻘﺎدم ﻓﮫﻮ ﻳﻮﺿﺢ ﻟﻚ ﻟﻤﺎذا‬
‫ﻧﺴﺘﺨﺪم‪XML‬‬

‫‪3-‬ھﻞ ﻣﻦ اﻟﻤﻤﻜﻦ ﺗﻐﯿﯿﺮ اﻟﻮرﻗﺔ اﻹﻓﺘﺮاﺿﯿﻪ ﻟﻠﻤﺘﺼﻔﺢ؟‬


‫ﺑﺎﻟﺘﺎﻛﯿﺪ ﻃﺒﻌﺎ وذﻟﻚ ﻋﻨﺪﻣﺎ ﺗﺘﺤﻜﻢ ﻓﻰ ﻃﺮﻳﻘﺔ ﻋﺮض اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ‪.‬‬

‫‪4-‬اﻟﻤﻌﺮﺑﺎت ھﻞ ھﻲ ﻋﻤﻠﯿﺔ ﻳﻘﻮم ﺑﮫﺎ اﻟﻤﺘﺼﻔﺢ؟‬


‫ﺗﻮﺟﺪ اﻧﻮاع ﻋﺪﻳﺪ ﻣﻦ اﻟﻤﻌﺮﺑﺎت ﻣﻨﮫﺎ اﻟﻤﻌﺮب اﻟﻤﻮﺟﻮد داﺧﻞ ﻣﺘﺼﻔﺢ اﻻﻧﺘﺮﻧﺖ وﺗﻮﺟﺪ ﻣﻌﺮﺑﺎت ﻛﺜﯿﺮة اﺧﺮى ﻳﻤﻜﻦ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﮫﺎ ﺳﻮف اﺷﺮﺣﮫﺎ ﺑﺎﻟﺘﻔﺼﯿﻞ ﻓﻰ اﻟﺪرس اﻟﺮاﺑﻊ‪.‬‬

‫ﻣﺎھﻲ‪ RSS‬؟ ﻣﺎھﻲ ﻓﺎﺋﺪﺗﮫﺎ؟ وھﻞ ﻟﮫﺎ ﻋﻼﻗﺔ ب ‪xml‬؟‬


‫اﻣﺎ ﺑﺨﺼﻮص ‪ RSS‬ﻓﮫﯿﺎ ﻣﺸﺘﻘﺔ ﻣﻦ ‪ XML‬ﻟﻮﺻﻒ وﻋﺮض ﻗﻮاﺋﻢ اﻟﻌﻨﺎوﻳﻦ اﻟﻀﺨﻤﺔ ﻟﻤﻮاﻗﻊ اﻻﺧﺒﺎر‬

‫‪14‬‬
‫اﻟﺪرس اﻟﺜﺎﻟﺚ‬

‫ﻟﻤﺎذا ‪ XML‬وﻓﯿﻤﺎ ﺗﺴﺘﺨﺪم؟‪-:‬‬

‫ﺗﻘﻨﯿﺔ ‪ XML‬ھﻲ ﺗﻘﻨﯿﺔ ﺣﺪﻳﺜﺔ وﻓﻰ دور اﻟﺘﻄﻮﻳﺮ ﺣﺎﻟﯿﺎ وھﻰ ﻛﻤﺎ ﻋﺮﺿﻨﮫﺎ ﺳﺎﺑﻘﺎ ﻓﻲ ھﺬه اﻟﺴﻠﺴﻠﺔ وﻋﺮﻓﻨﺎ ﻣﺎ‬
‫ھﻲ ‪. XML‬ﺳﻮف ﻧﻮﺿﺢ ھﻨﺎ ﻣﺎ اﻟﺬي ﺗﻘﺪﻣﻪ ﻟﻨﺎ ھﺬه اﻟﻠﻐﺔ ‪.‬‬

‫ﺗﻌﺮﻓﻨﺎ ﺳﺎﺑﻘﺎ أن ﻟﺒﻨﺎء ﻣﺴﺘﻨﺪات ‪ XML‬ﻳﺠﺐ ﻋﻠﯿﻨﺎ ﻣﻌﺮﻓﺔ أﺷﯿﺎء وﺗﻌﻠﯿﻤﺎت ﻛﺜﯿﺮة ‪ .‬ﻓﻠﻤﺎذا ﻧﺴﺘﺨﺪم ﻛﻞ ھﺬه‬
‫اﻷﻣﻮر ‪ .‬أﻟﯿﺲ ﻣﻦ اﻟﺴﮫﻞ وﺿﻊ ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ ﻟﻤﺜﺎل ﻣﺴﺘﻨﺪ اﻷﺳﻤﺎء اﻟﺴﺎﺑﻖ ﺷﺮﺣﻪ ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ ‪.‬‬
‫وﻧﻀﻊ ﺑﻌﺾ اﻟﻤﻌﺎﻳﯿﺮ ﻟﺬﻟﻚ ﻓﻤﺜﻼ ﻳﻤﻜﻨﻨﺎ اﻟﻘﻮل أن اﻻﺳﻢ اﻷول ﻳﺒﺪأ ﻋﻨﺪ ﺑﺪاﻳﺔ اﻟﻤﻠﻒ ‪ ،‬واﻻﺳﻢ اﻷﺧﯿﺮ ﻳﺄﺗﻲ ﺑﻌﺪ‬
‫اﻟﻔﺮاغ اﻷول ‪ .‬ﺑﮫﺬه اﻟﻄﺮﻳﻘﺔ ﻳﻤﻜﻦ ﻟﺘﻄﺒﯿﻘﻨﺎ أن ﻳﻘﺮا ﺑﯿﺎﻧﺎت اﻻﺳﻢ اﻷول ﺑﺼﻮرة ﻣﻨﻔﺼﻠﺔ ﻋﻦ اﻻﺳﻢ اﻷﺧﯿﺮ ‪.‬‬

‫وﻟﺘﻮﺿﯿﺢ ذﻟﻚ ‪ :‬ﻟﻨﻔﺘﺮض إﻧﻨﺎ ﻧﺮﻳﺪ إﺿﺎﻓﺔ اﻻﺳﻢ اﻷوﺳﻂ ﻟﻤﺜﺎﻟﻨﺎ ﻓﯿﺼﺒﺢ ھﻜﺬا ‪.‬‬

‫‪Emad Adly Faik‬‬

‫وأﻳﻀﺎ ﻋﻨﺪ إﺿﺎﻓﺔ ھﺬه اﻟﻌﻤﻠﯿﺔ ﻻ ﻳﻮﺟﺪ إي ﻣﺸﻜﻼت ‪ .‬ﻳﻤﻜﻨﻨﺎ ﺗﻌﺪﻳﻞ اﻟﻘﺎﻧﻮن اﻟﺴﺎﺑﻖ ﺑﺤﯿﺚ إن ﻛﻞ ﺷﻲ ﻳﺄﺗﻲ‬
‫ﺑﻌﺪ اﻟﻔﺮاغ اﻷول وﻗﺒﻞ اﻟﻔﺮاغ اﻟﺜﺎﻧﻲ ﻳﻤﺜﻞ اﻻﺳﻢ اﻷوﺳﻂ ‪ ،‬وﻣﺎ ﻳﺄﺗﻲ ﺑﻌﺪ اﻟﻔﺮاغ اﻟﺜﺎﻧﻲ ﻳﻤﺜﻞ اﻻﺳﻢ اﻷﺧﯿﺮ ‪.‬‬

‫إﻟﻰ اﻵن ﻳﻤﻜﻨﻨﺎ ﺗﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام ھﺬا اﻟﻘﺎﻧﻮن وﺗﻨﻔﯿﺬه ﺑﺮﻣﺠﯿﺎ ‪ ،‬وﻟﻜﻦ ﻣﺎذا ﻟﻮ ﻗﺎﺑﻠﻨﺎ اﺳﻢ ﻛﺎﻟﺘﺎﻟﻲ ‪.‬‬

‫‪Emad Adly Faik Gabala‬‬

‫اﻵن ﻟﺪﻳﻨﺎ اﺳﻤﯿﻦ أوﺳﻄﯿﻦ ‪ .‬ھﻨﺎ ﻳﺼﺒﺢ اﻟﻘﺎﻧﻮن اﻛﺜﺮ ﺗﻌﻘﯿﺪا وﻋﻠﻤﺎ إن اﻟﺒﺸﺮ ﺗﺴﺘﻄﯿﻊ ﺗﻤﯿﺰ اﻻﺳﻢ اﻷوﺳﻂ ﻣﻦ‬
‫اﻻﺳﻢ اﻷول ﻣﻦ اﻻﺳﻢ اﻷﺧﯿﺮ ﺑﺴﮫﻮﻟﺔ ﻓﺎﻧﻪ ﻣﻦ اﻟﺼﻌﺐ ﺑﺮﻣﺠﺔ ذﻟﻚ ﺑﻄﺮﻳﻘﺔ ﻣﻨﻄﻘﯿﺔ ﺑﺤﯿﺚ ﻳﻤﻜﻦ اﻟﺤﺎﺳﺐ ﻣﻦ‬
‫ﺗﻤﯿﺰ ذﻟﻚ ﺑﺴﮫﻮﻟﺔ ‪.‬‬

‫ﻟﻸﺳﻒ ﻓﺎن ﻣﻌﻈﻢ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻋﻨﺪﻣﺎ ﻳﻮاﺟﮫﻮن ﻣﺸﻜﻠﻪ ﻣﻦ ھﺬا اﻟﻨﻮع ﻳﺘﺼﺮﻓﻮن ﻟﻮﺿﻊ ﻗﻮاﻧﯿﻦ ﺻﺎرﻣﺔ ﺑﺪﻻ ﻣﻦ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﻘﺪة ﻛﻤﺎ ھﻲ ‪ .‬ﻓﺎﻟﻤﺸﻜﻠﺔ اﻷﺳﻤﺎء ﻛﻤﺎ ﺳﺒﻖ ﻳﻤﻜﻦ ﻟﻤﻄﻮري اﻟﺒﺮاﻣﺞ أن ﻳﻘﺮروا أن‬
‫ﻟﻠﺸﺨﺺ اﻟﻮاﺣﺪ اﺳﻢ أوﺳﻂ واﺣﺪا ﻓﻘﻂ وﻻ ﻳﻤﻜﻦ ﻟﻠﺘﻄﺒﯿﻖ ﻗﺒﻮل أﻛﺜﺮ ﻣﻦ ذﻟﻚ ‪.‬‬

‫‪15‬‬
‫ﻓﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻟﯿﺲ ﺻﻌﺐ اﻟﺘﻄﺒﯿﻖ وﻟﻜﻦ ھﻮ ﻳﺴﻠﻂ اﻟﻀﻮء ﺣﻮل اﻷﺳﺒﺎب اﻟﺠﻮھﺮﻳﺔ اﻟﺘﻲ أدت ﻟﻈﮫﻮر ﻟﻐﺔ‬
‫‪ .XML‬ﻓﺎﻟﻤﺒﺮﻣﺠﯿﻦ ﻳﺴﺘﻄﯿﻌﻮن ﺗﻨﻈﯿﻢ ﺑﯿﺎﻧﺎﺗﮫﻢ ﺑﻌﺪد ﻏﯿﺮ ﻣﺤﺪد ﻣﻦ اﻟﻄﺮق ‪ .‬وﻓﻰ ﻛﻞ ﻃﺮﻳﻘﺔ ﻣﻦ اﻟﻄﺮق ﻧﻈﺎم‬
‫ﻣﻌﯿﻦ ﻻﺳﺘﺨﻼص اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﻧﺤﺘﺎﺟﮫﺎ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ‪XML‬‬

‫إﻟﻰ ھﻨﺎ ﻗﺪ ذﻛﺮﻧﺎ ﻣﺜﺎل ﺑﺴﯿﻂ ﺟﺪا ﻟﺘﻮﺿﯿﺢ اﺑﺴﻂ اﻷﺷﯿﺎء اﻟﺘﻲ ﺗﺪﻓﻌﻨﺎ ﻛﻤﻄﻮرﻳﻦ إﻟﻰ اﻟﺪﺧﻮل إﻟﻰ ﻋﺎﻟﻢ ‪. XML‬‬

‫وﺣﺘﻰ إن ﻛﺎن ھﺬا اﻟﻤﺜﺎل ﻏﯿﺮ ﻣﻔﮫﻮم ﻟﻠﻤﺮة اﻷوﻟﻲ ﻓﻼ ﺗﻘﻠﻖ ﺳﯿﻤﻜﻨﻚ اﻟﺘﻤﯿﺰ واﻟﺘﻮﺳﻊ اﻛﺜﺮ ﻋﻨﺪ اﻟﺒﺪء ﻓﻲ‬
‫ﺗﺸﻐﯿﻞ وﻛﺘﺎﺑﺔ ﻣﺴﺘﻨﺪات ‪.XML‬‬

‫ﻛﻤﺎ ﻳﻤﻜﻦ ﻟﻠﻐﺔ ‪ XML‬اﻟﻌﻤﻞ ﻋﻠﻰ إي ﻣﻨﺼﺔ ﺗﺸﻐﯿﻞ ﻓﮫﯿﺎ ﻟﯿﺴﺖ ﻣﺨﺼﺼﻪ ﻟﻠﻌﻤﻞ ﻋﻦ ﻧﻈﺎم ﻋﯿﻦ ﻣﺜﻞ ﻓﻲ‬
‫‪ Basic Visual‬ﻣﺨﺼﺺ ﻟﻠﻌﻤﻞ ﻋﻠﻰ ﻣﻨﺼﺎت وﻳﻨﺪوز ‪ .‬ﻓﯿﻤﻜﻨﻚ اﺳﺘﺨﺪاﻣﮫﺎ ﻋﻠﻰ إي ﻧﻈﺎم ﺗﺸﻐﯿﻞ ﺣﺎﻟﻲ أو‬
‫ﺳﻮف ﻳﻈﮫﺮ ﻣﺴﺘﻘﺒﻼ ‪.‬‬

‫ﻓﻤﻦ اﻷﺷﯿﺎء اﻟﺮاﺋﻌﺔ ﻋﻨﺪ اﺳﺘﺨﺪاﻣﻚ ﻟـ ‪ XML‬ھﻮ ﺗﻘﻠﯿﺺ زﻣﻦ اﻟﺘﺤﻤﯿﻞ ﻋﻠﻰ ﺧﺎدﻣﺎت اﻟﺸﺒﻜﺔ ‪Web‬‬
‫‪ Server‬ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﻋﻤﻠﯿﺎت إرﺳﺎل واﺳﺘﻘﺒﺎل ﻛﻤﯿﺎت ﺿﺨﻤﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺑﯿﻦ ﺟﮫﺎز اﻟﺰﺑﻮن واﻟﺨﺎدم ‪.‬‬

‫وأﻳﻀﺎ ﻣﻦ اﻟﻤﯿﺰات اﻟﺠﻤﯿﻠﺔ ﻓﻲ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻠﻔﺎت ‪ XML‬ھﻲ إﻣﻜﺎﻧﯿﺔ ﺗﺤﻮﻳﻞ ﻣﻠﻔﺎت‪ XML‬إﻟﻰ ﻣﻠﻔﺎت ‪html‬‬
‫ﺑﺴﻬﻮﻟﻪ ﻟﻌﺮﺿﻬﺎ ﺑﺸﻜﻞ ﺟﻤﯿﻞ ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ وذﻟﻚ ﺑﻮاﺳﻄﺔ ﻣﺤﻮﻻت ‪ . XSLT‬أو أن ﺗﻌﺮض ﻣﺒﺎﺷﺮة ﻋﺒﺮ اﻟﻤﺘﺼﻔﺢ ﺑﻮاﺳﻄﺔ‬
‫ورﻗﺔ اﻟﺘﻨﺴﯿﻖ ‪ css‬ﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل اﻷول ‪.‬‬

‫اﺳﺘﺪﻋﺎء اﻹﺟﺮاءات اﻟﺒﻌﯿﺪة ‪ .‬ﻓﻬﯿﺎ ﺗﺴﺘﺨﺪم ﺑﺮوﺗﻮﻛﻮل ‪ RPC‬ﻟﺬﻟﻚ ﻓﮫﻮ ﻳﺴﻤﺢ ﻟﻠﻜﺎﺋﻨﺎت اﻟﻤﻮﺟﻮدة ﻋﻠﻰ ﺟﮫﺎز ﻣﺎ ﺑﺎﺳﺘﺪﻋﺎء‬
‫اﻟﻜﺎﺋﻨﺎت اﻟﻤﻮﺟﻮدة ﻋﻠﻰ ﺟﮫﺎز أﺧﺮ ﻟﻠﻘﯿﺎم ﺑﻌﻤﻞ ﻣﺎ ‪.‬‬

‫أﻣﺎ ﻓﻲ ﻣﺠﺎل اﻟﺘﺠﺎرة اﻹﻟﻜﺘﺮوﻧﯿﺔ أﺣﺪ اﻟﻤﻮاﺿﯿﻊ اﻟﺴﺎﺧﻨﺔ ﺣﺎﻟﯿﺎ ﻓﻲ اﻹﻧﺘﺮﻧﺖ ‪ .‬اﻟﺘﻲ ﺳﺘﻈﻞ ﺳﺎﺧﻨﺔ ﻟﻔﺘﺮة‬
‫ﻃﻮﻳﻠﺔ ‪.‬ﻓﻤﻌﻈﻢ اﻟﺸﺮﻛﺎت اﻟﯿﻮم ﺗﻘﺮ ﺑﻀﺮورة رﺑﻂ ﻋﻤﻼﺋﮫﺎ ﻣﻌﮫﺎ ﻋﺒﺮ اﻹﻧﺘﺮﻧﺖ ﺑﺪ ﻣﻦ اﺳﺘﺨﺪام اﻟﻄﺮق اﻟﺘﻘﻠﯿﺪﻳﺔ ‪.‬‬

‫ﻓﻜﻠﻤﺎ اﺣﺘﺎﺟﺖ ﺷﺮﻛﺔ ﻣﺎ ﻹرﺳﺎل ﺑﯿﺎﻧﺎﺗﮫﺎ إﻟﻰ ﺟﮫﺔ أﺧﺮى ﻋﺒﺮ اﻹﻧﺘﺮﻧﺖ ﻓﺎن ‪ xml‬ھﻲ اﻟﺘﻘﻨﯿﺔ اﻷﻓﻀﻞ ﻟﺬﻟﻚ‬
‫ﺑﺎﻋﺘﺒﺎر أن اﻟﮫﺪف ﻣﻦ وراءھﺎ ھﻮ ﺗﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت واﻟﺘﺸﺎرك ﻋﻠﯿﮫﺎ ‪.‬‬

‫ﻓﮫﻨﺎك اﻟﻜﺜﯿﺮ واﻟﻜﺜﯿﺮ ﻣﻦ اﻷﻣﺎﻛﻦ اﻟﺘﻲ ﺗﻘﺪم ﻟﻨﺎ ﻓﯿﮫﺎ ﺗﻘﻨﯿﺔ ‪ XML‬اﻟﻔﺎﺋﺪة اﻟﺘﻲ ﻧﺮﺟﻮھﺎ‪.‬‬

‫‪16‬‬
‫اﻟﻨﻘﺎش و اﻻﺳﺌﻠﺔ‬

‫اﻧﺖ ذﻛﺮت ﺑﺎﺧﺮ ﺳﻄﺮ ان اﻟﺸﺮﻛﺎت ﺗﺤﺘﺎج ﻟﺘﺒﺎدل وإرﺳﺎل ﺑﯿﺎﻧﺎﺗﮫﺎ ﻋﺒﺮ اﻻﻧﺘﺮﻧﺖ وان ﺗﻘﻨﯿﺔ ‪ xml‬ھﻲ‬
‫اﻻﻓﻀﻞ ھﻞ ﻣﻌﻨﻰ ھﺬا اﻧﮫﺎ ﺿﺮورﻳﺔ ﻟﻤﻮاﻗﻊ اﻟﺘﺠﺎرة اﻻﻟﻜﺘﺮوﻧﯿﺔ؟وھﻞ ﺗﻜﻔﻲ ﻟﻮﺣﺪھﺎ ام ان اﻧﮫﺎ‬
‫ﺗﺤﺘﺎج اﻳﻀﺎ ﻟﻘﻮاﻋﺪ ﺑﯿﺎﻧﺎت وﻟﻐﺎت وﻳﺐ ﻣﻌﮫﺎ ؟‬

‫ﺗﺨﺘﻠﻒ اﻟﻘﺪرة ﻋﻠﻰ اﻧﺘﺎج ﺗﻄﺒﻘﺎت وﺑﺮﻣﺠﯿﺎت ﻣﻦ ﺷﺨﺺ اﻟﻰ اﺧﺮى ﺑﻨﺎء ﻋﻠﻰ ﻗﺪراﺗﻪ وﺗﻨﻮع اﻟﻠﻐﺎت اﻟﺘﻰ ﻳﺠﯿﺪ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﮫﺎ‪.‬‬
‫وﻟﻮ ﺗﺤﺪﺛﻨﺎ ﻋﻦ ﻗﺪرات اﻟﻠﻐﻪ ﻓﺎﺳﺘﻄﯿﻊ ان اﻗﻮل ﻟﻚ اﻧﻚ ﻳﻤﻜﻨﻚ ﺑﻨﺎء ﻣﻨﺘﺪى ﺣﻮار ﻛﺎﻣﻼ ﺑﻮاﺳﻄﺔ ‪XML .‬‬
‫وﻟﺪي ‪ analysation‬ﻟﻤﻨﺘﺪى ﺣﻮار وھﻮ ‪ Project‬ﺿﺨﻢ ﺟﺪا ﻣﻌﺘﻤﺪ ﺑﻨﺴﺒﺔ‪ %90‬ﻋﻠﻰ‪XML‬‬

‫ﻗﻠﺖ ان ﻟﻐﻪ ‪ xml‬ﻣﺎھﻲ اﻻ ﻋﺒﺎره ﻋﻦ ﺻﻔﺤﺎت ﺗﻌﺮض ﻓﯿﮫﺎ ﻣﻠﻔﺎت ﺻﺤﯿﺢ؟‬


‫وﺳﺆاﻟﻲ ھﻮ ﻣﺎ اﻟﻔﺮق ﺑﯿﻦ ‪ xml‬و ‪html‬و ‪asp‬؟؟‬

‫اﻧﻚ ﺗﻈﻠﻤﯿﻦ ﻟﻐﺔ ‪ XML‬ﻟﻮﺻﻔﻚ ﻟﮫﺎ ﺑﺎﻧﮫﺎ ﻣﺠﺮد ﺻﻔﺤﺎت‪.‬‬


‫ھﻰ ﺗﻘﻨﯿﺔ ﻗﻮﻳﺔ ﺟﺪا ‪ .‬ﻓﮫﯿﺎ ﺗﻌﺘﺒﺮ ﺗﻘﺪم ھﺎﺋﻞ ﻳﺴﺘﻔﯿﺪ ﻣﻨﻪ ﻛﻞ ﻣﺒﺮﻣﺞ وﻣﻄﻮر ﻛﺎن ﻳﻌﺎﻧﻰ ﻣﻦ ﻗﺼﻮر ﻓﻰ ھﺬا‬
‫اﻟﺠﺎﻧﺐ ‪.‬‬
‫ﻳﺒﺪو اﻧﻚ ﻟﻢ ﺗﺠﺪ ﺣﺘﻰ اﻻن اﻟﺤﺎﺟﺔ ل ‪XML‬ﻟﻜﻦ ﺳﻮف ﺗﺤﺘﺎﺟﮫﺎ ﻓﻰ اﻟﻘﺮﻳﺐ‪.‬‬

‫اﻣﺎ ﺑﺨﺼﻮص اﻟﻔﺎرق ﺑﯿﻦ ‪ XML‬و ‪HTML‬و ‪ASP‬‬


‫‪Asp‬ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﻮﺟﺔ ﻟﻠﻮﻳﺐ وھﻰ ﺧﺎرﺟﺔ ﻋﻦ وﺿﻌﮫﺎ ﻓﻰ اﻟﻤﻘﺎرﻧﺔ ﺑﯿﻦ ‪ HTML‬و ‪XML‬ﻻﻧﮫﻢ ﻟﻐﺎت ﺗﺮﻣﯿﺰ‬
‫اﻣﺎ ﻋﻦ ﻣﻘﺎرﻧﺔ ‪ HTML‬وْ ‪XML‬ﻳﻮﺟﺪ درس ﻓﻰ ھﺬه اﻟﺪورة ﺑﻌﻨﻮان‬
‫‪HTML‬ﻣﻘﺎﺑﻞ ‪ XML‬ﻳﻮﺿﺢ ﻟﻚ اﻟﻔﺮق اﻟﺠﻮھﺮي ﺑﯿﻨﮫﻢ‪.‬‬

‫ﻓﻲ ﻧﻈﺮي ﺗﻜﻤﻦ ﺣﺎﺟﺘﻨﺎ ﻟـ ‪XML‬ﻓﻲ اﻟﺘﻄﺒﯿﻘﺎت ﺑﻤﺨﺘﻠﻒ أﻧﻮاﻋﮫﺎ ﻟﻜﻮﻧﮫﺎ ﻣﻠﻔﺎت ﻧﺼﯿﺔ ﺗﺤﻮي ‪data and‬‬
‫‪ ،metadata‬ﻋﻼوةً ﻋﻠﻰ إﻣﻜﺎﻧﯿﺔ اﻋﺘﺒﺎرھﺎ ‪ small database‬ﺗﺤﻞ ﻣﺸﺎﻛﻞ ﻛﺜﯿﺮ ﻣﻘﺎرﻧﺔ ﺑﻨﻈﯿﺮاﺗﮫﺎ اﻟﻜﺒﯿﺮة‬

‫وﻏﯿﺮ ذﻟﻚ اﻟﻜﺜﯿﺮ ﻳﻠﺤﻖ اﻟـ ‪xml‬ﻓﻲ ﺑﯿﺌﺔ ‪ .net‬ﻳﻜﻔﻲ أن ﻧﻌﺮف أن ﻛﻞ ھﺬه اﻟﺒﯿﺌﺔ ﻗﺎﺋﻤﺔ ﻋﻠﻰ ھﺬه اﻟﺘﻘﻨﯿﺔ وأن‬
‫اﻟﻮﻳﻨﺪوز اﻟﺠﺪﻳﺪ ‪ longhorn‬ﻗﺎﺋﻢ ﻋﻠﯿﮫﺎ أﻳﻀﺎً ﻛﻮﺳﻂ اﻧﺘﻘﺎل اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫وﻧﻔﺲ اﻟﺸﺊ ﺑﺎﻟﻨﺴﺒﺔ ﻟﺒﺮﻣﺠﺔ اﻟﻮﻳﺐ‪xml ،‬اﻣﻜﺎﻧﯿﺎﺗﮫﺎ ﻛﺜﯿﺮةً أﻳﻀﺎً‬
‫ﻓﮫﻰ) ﻟﻐﺔ اﻟﺤﻠﻮل ( ‪Solutions Language‬‬

‫‪17‬‬
‫اﻟﺪرس اﻟﺮاﺑﻊ‬

‫ﻣﻨﻬﺠﯿﺔ ﻋﻤﻞ ﻣﺴﺘﻨﺪات ‪ XML‬وﺗﻜﻮﯾﻨﻬﺎ اﻟﻬﺮﻣﻲ ‪.‬‬

‫ﺳﻨﻨﺎﻗﺶ اﻟﯿﻮم اﻟﺘﺮﻛﯿﺐ اﻟﮫﺮﻣﻲ اﻟﺬي ﻳﻜﻮن ﻣﺴﺘﻨﺪات ‪ XML‬وﻛﯿﻔﯿﺔ ﺑﻨﺎء اﻟﺒﯿﺎﻧﺎت وﻛﯿﻔﯿﺔ ﺗﻤﺜﯿﻠﮫﺎ ﻓﻲ ﻣﺴﺘﻨﺪ‬
‫‪XML‬‬

‫ﻋﻨﺪﻣﺎ ﻧﻜﻮن أﻣﺎم ﻛﻤﯿﺔ ﻣﻌﻠﻮﻣﺎت ﺿﺨﻤﺔ أو ﺣﺘﻰ ﻣﺘﻮﺳﻄﺔ اﻟﺤﺠﻢ ﻓﻤﻦ اﻷﻓﻀﻞ ﺗﺠﻤﯿﻊ ھﺬه‬ ‫‪-‬‬
‫اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﻨﺘﻤﻲ إﻟﻰ ﻣﻮﺿﻮع واﺣﺪ ﻣﻊ ﺑﻌﻀﮫﺎ اﻟﺒﻌﺾ ﺑﺪل ﻣﻦ ﺗﻤﺜﯿﻠﮫﺎ ﻛﻤﺎ ھﻲ ‪.‬‬

‫ﻧﻌﻄﻰ ﻣﺜﺎل ﻟﻜﻲ ﺗﻮﺿﺢ اﻟﺼﻮرة ‪.‬‬

‫ﻣﺜﻼ ھﺬه اﻟﻤﻨﺘﺪى ﻣﺠﺰأ إﻟﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﻗﺴﺎم واﻟﻤﻮاﺿﯿﻊ اﻟﻔﺮﻋﯿﺔ اﻟﺘﻲ ﺗﺘﺒﻊ ﻣﻮﺿﻮﻋﺎت ﻓﺮﻋﯿﺔ واﻟﺘﻲ ﺗﺘﺒﻊ‬
‫ﺑﺪورھﺎ ﻣﻮاﺿﯿﻊ رﺋﯿﺴﯿﻪ ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﺗﻘﺴﯿﻢ اﻟﻤﻮﺿﻮع اﻟﻮاﺣﺪ إﻟﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻔﻘﺮات وھﻰ ﻋﺒﺎرة ﻋﻦ ردود‬
‫اﻷﻋﻀﺎء ‪ .‬ﻓﺬﻟﻚ ﻳﺴﮫﻞ ﻣﻦ ﻋﻤﻠﯿﺔ اﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬

‫ﻓﻨﺠﺪ ﻣﻄﻮري اﻟﺒﺮﻣﺠﯿﺎت ﺗﺴﺘﺨﺪم ھﺬا اﻟﻨﻤﻮذج ﻣﻨﺬ ﺳﻨﻮات ﻋﺪة ﺑﺎﺳﺘﺨﺪام ﺑﻨﯿﺔ ﺑﯿﻨﺎت ﺗﺴﻤﻰ ‪Object‬‬
‫‪ model‬أو ﻧﻤﻮذج اﻟﻜﺎﺋﻦ وھﻰ ﻣﺮﺗﺒﻄﺔ ﻣﻊ ﺑﻌﻀﮫﺎ ﺑﺘﺴﻠﺴﻞ ھﺮﻣﻲ ‪ .‬أﻳﻀﺎ ﻓﻲ ﻟﻐﺔ ‪ XML‬ﺗﺠﻤﻊ اﻟﺒﯿﻨﺎت ﻓﻲ‬
‫ﺗﺴﻠﺴﻞ ھﺮﻣﻲ ﻓﺎﻟﺒﻨﻮد ﻓﻲ اﻟﻤﺴﺘﻨﺪ ﺗﺘﺒﻊ ﺑﻌﻀﮫﺎ اﻟﺒﻌﺾ ﺑﻌﻼﻗﺎت ‪ Parent / Child‬أو اﻷب ‪ /‬اﻻﺑﻦ ‪.‬‬

‫وھﺬه اﻟﺒﻨﻮد ﺗﺴﻤﻰ ﺑﺎﻟﻌﻨﺎﺻﺮ ‪ elements‬وھﻰ أﺟﺰاء ﻣﻨﻔﺮدة ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬

‫ﻧﺄﺧﺬ ﻣﺜﺎل اﻻﺳﻢ اﻟﺴﺎﺑﻖ ﺷﺮﺣﻪ وﻧﻤﺜﻠﻪ ﺑﻄﺮﻳﻘﺔ ھﺮﻣﯿﺔ ﻛﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪.‬‬

‫ﻧﻼﺣﻆ أن اﻟﺒﻨﺪ >‪ < Name‬ھﻮ أب ﻟﻠﺒﻨﺪ >‪ < First‬واﻟﺒﻨﺪ >‪ < First‬ھﻮ اﺑﻦ ﻟﻠﺒﻨﺪ >‪ < Name‬واﻟﺒﻨﻮد >‪< First‬‬
‫و>‪ < Middle‬و >‪ < Last‬ﺟﻤﯿﻌﮫﺎ اﻧﺴﺎب ﻟﺒﻌﻀﮫﺎ اﻟﺒﻌﺾ ﻻن ﺟﻤﯿﻌﮫﻢ أﺑﻨﺎء ﻟﻠﺒﻨﺪ >‪< Name‬‬

‫وﻧﻼﺣﻆ أﻳﻀﺎ أن اﻟﻨﺺ ھﻮ اﺑﻦ ﻟﻠﻌﻨﺼﺮ اﻟﺬي ﻳﻨﺘﻤﻲ ﻟﻪ ﻓﺎﻟﻨﺺ ‪ Emad‬ﻳﻤﺜﻞ اﺑﻨﺎ ﻟﻠﺒﻨﺪ >‪. < First‬ﺗﺴﻤﻰ ھﺬه‬
‫اﻟﺒﻨﯿﺔ ﻣﻦ اﻟﺒﯿﻨﺎت ﺑﺎﻟﺸﺠﺮة ‪ Tree‬ﻓﻜﻞ ﺟﺰى ﻣﻦ اﻟﺸﺠﺮة ﻳﺤﺘﻮى ﻋﻠﻰ أﺑﻨﺎء ﺗﺴﻤﻰ ﺑﺎﻟﻔﺮوع ‪ Branches‬وﺟﻤﯿﻊ‬
‫اﻷﺟﺰاء اﻟﺘﻲ ﺗﺤﺘﻮى ﻋﻠﻰ أﺑﻨﺎء ﺗﺴﻤﻰ ﺑﺎﻷوراق ‪Leaves‬‬

‫‪18‬‬
‫إذا ﻧﻘﻮل ‪:‬‬

‫‪Element Content‬‬

‫اﻟﻌﻨﺼﺮ >‪ < Name‬ﻳﻌﺘﺒﺮ ‪ element content‬ﻻن ھﻨﺎك ﻋﻨﺎﺻﺮ ﺗﻨﺘﻤﻲ ﻟﻪ وﻟﯿﺲ ﻣﺠﺮد ﻧﺺ ﻓﺈﻧﻪ ﻳﻌﺘﺒﺮ ﻣﺤﺘﻮى‬
‫ﻋﻨﺼﺮ ‪.‬‬

‫‪Simple Content‬‬

‫اﻟﻌﻨﺼﺮ >‪ < First‬و >‪< Middle‬و>‪ < Last‬ھﻲ ﻣﺤﺘﻮى ﺑﺴﯿﻂ ‪ Simple Content‬ﻷﻧﮫﺎ ﺗﺤﺘﻮى ﻋﻠﻰ ﻧﺺ ﻓﻘﻂ ‪.‬‬

‫‪Mixed Content‬‬

‫أﻳﻀﺎ ﻳﻤﻜﻦ ﻟﻠﻌﻨﺎﺻﺮ أن ﺗﺤﺘﻮى ﻋﻠﻰ ﻋﻨﺎﺻﺮ أﺧﺮى وﻋﻠﻰ ﻧﺼﻮص ﻓﻲ ﺗﻠﻚ اﻟﺤﺎﻟﺔ ﻓﺎن ﻟﻠﻌﻨﺎﺻﺮ ﺗﻠﻚ ﻣﺤﺘﻮى‬
‫ﻣﺨﺘﻠﻂ ‪ Mixed Content‬ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ‪.‬‬

‫ﻧﻼﺣﻆ ﻓﻲ اﻟﻤﺜﺎل ھﺬا أن ﻟﻠﺒﻨﺪ >‪ < parent‬ﺛﻼث أﺑﻨﺎء‬

‫ﻧﺺ ‪ ،،‬ﻳﺤﺘﻮى ﻋﻠﻰ اﻟﻨﺺ ‪Computer‬‬

‫ﻋﻨﺼﺮ ‪ < em> ،،‬وھﻮ ﻋﻨﺼﺮ اﺑﻦ أﻳﻀﺎ‬

‫ﻧﺺ ‪ ،،‬ﻧﺺ أﺧﺮ ﻳﺤﺘﻮى ﻋﻠﻰ اﻟﻨﺺ ‪arab‬‬

‫ﻓﯿﻤﻜﻨﻨﺎ أﻻن ﺗﻤﺜﯿﻞ ھﺬا اﻟﻤﺜﺎل ﺑﺒﻨﯿﺔ ﺷﺠﺮﻳﺔ ھﻜﺬا ‪.‬‬

‫ﻧﺮﺟﻮ أن ﺗﻜﻮﻧﻮا ﺗﻔﮫﻤﺘﻢ ﻛﯿﻔﯿﺔ اﻟﺘﻤﺜﯿﻞ اﻟﮫﺮﻣﻲ ﻟﻠﺒﻨﻮد واﻟﻌﻼﻣﺎت ﻓﯿﻤﺎ ﺑﯿﻨﮫﻤﺎ ﻓﺄﻧﻚ ﺣﯿﻨﻤﺎ ﺗﻔﮫﻢ ذﻟﻚ ﺳﺘﺘﻤﻜﻦ‬
‫ﻣﻦ ﻓﮫﻢ ﻃﺒﯿﻌﺔ ﻟﻐﺔ ‪XML‬‬

‫‪19‬‬
‫ﻣﻨﮫﺠﯿﺔ ﻋﻤﻞ ‪ XML‬وﻗﻮاﻋﺪھﺎ ‪- :‬‬

‫‪Tags and Text and Elements‬‬ ‫‪ (1‬اﻟﻠﻮاﺣﻖ واﻟﻨﺼﻮص واﻟﻌﻨﺎﺻﺮ‬

‫اﻟﻼﺣﻘﺔ أو ﻣﺎ ﻳﻄﻠﻖ ﻋﻠﯿﮫﺎ اﻟﺒﻌﺾ واﻟﻮﺳﻢ )‪ (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‬‬

‫‪20‬‬
‫ﻗﻮاﻧﯿﻦ اﻟﻌﻨﺎﺻﺮ‬

‫ﻳﺠﺐ ﻋﻠﻰ ﻣﺴﺘﻨﺪات ‪ XML‬اﻟﺨﻀﻮع ﻟﮫﺬه اﻟﻘﻮاﻧﯿﻦ ﻛﻲ ﺗﺸﻜﻞ ﻓﻌﻠﯿﺎ ﻣﺴﺘﻨﺪات ‪ XML‬ﻣﺤﻜﻤﺔ اﻟﮫﯿﺌﺔ ‪Well-‬‬
‫‪formed XML Documents‬‬

‫ﻟﻜﻞ ﻻﺣﻘﺔ ﺑﺪاﻳﺔ ﻻﺣﻘﺔ ﻧﮫﺎﻳﺔ ﻣﻤﺎﺛﻠﺔ ﻟﮫﺎ ‪.‬‬ ‫‪-‬‬

‫ﻻ ﻳﻤﻜﻦ ﻟﻠﻮاﺣﻖ أن ﺗﺘﺪاﺧﻞ ‪.‬‬ ‫‪-‬‬

‫ﻳﺤﺘﻮى ﻣﺴﺘﻨﺪ ‪ XML‬ﻋﻠﻰ ﻋﻨﺼﺮ ﺟﺬر واﺣﺪ ﻓﻘﻂ‪.‬‬ ‫‪-‬‬

‫ﻟﻐﺔ ‪ XML‬ﺣﺴﺎﺳﺔ ﻟﺤﺎﻟﺔ اﻟﺤﺮوف ‪Case-Sensitive‬‬ ‫‪-‬‬

‫ﻟﻐﺔ ‪ XML‬ﻻ ﺗﺘﺠﺎھﻞ اﻟﻤﺴﺎﺣﺎت اﻟﻔﺎرﻏﺔ ﻓﻲ ﻣﺴﺘﻨﺪاﺗﮫﺎ ‪.‬‬ ‫‪-‬‬

‫أﺳﻤﺎء اﻟﻌﻨﺎﺻﺮ ‪-:‬‬

‫ﻟﻐﺔ ‪ XML‬ﺗﻮﻓﺮ ﻟﻚ اﻟﺤﺮﻳﺔ ﻓﻲ ﺗﺴﻤﯿﺔ اﻟﻌﻨﺎﺻﺮ ﻓﮫﻲ ﻻ ﺗﺤﺘﻮى ﻋﻠﻰ أﺳﻤﺎء ﻣﺤﺠﻮزة ﻛﻤﺎ ﻓﻲ ﻣﻌﻈﻢ اﻟﻠﻐﺎت ‪،‬‬
‫ﻓﮫﻲ ﻟﺪﻳﮫﺎ ﻣﺮوﻧﺔ ﻛﺒﯿﺮة ﻓﻲ اﺧﺘﯿﺎر اﻷﺳﻤﺎء ‪ .‬وﻟﻜﻦ ﻳﻮﺟﺪ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻮاﻧﯿﻦ اﻟﺘﻲ ﻳﺠﺐ ﻣﺮاﻋﺎﺗﮫﺎ ‪-:‬‬

‫ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺒﺪأ ﺑﺄﺣﺮف ﻻﺗﯿﻨﯿﺔ أو ﻏﯿﺮ ﻻﺗﯿﻨﯿﺔ أو أن ﺗﺒﺪأ ﺑﺎﻟﺮﻣﺰ ‪ (_)underscore‬وﻟﻜﻦ ﻻ ﻳﻤﻜﻦ‬ ‫‪-‬‬
‫أن ﺗﺒﺪأ ﺑﺮﻗﻢ أو ﺑﻌﻼﻣﺔ ﺗﺮﻗﯿﻢ ‪.‬‬

‫ﺑﻌﺪ اﻟﺤﺮف اﻷول ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺤﺘﻮى ﻋﻠﻰ أرﻗﺎم ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ اﻟﺮﻣﺰﻳﻦ " _ " و " ‪" .‬‬ ‫‪-‬‬

‫ﻻ ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺤﺘﻮى ﻋﻠﻰ ﻓﺮاﻏﺎت ‪.‬‬ ‫‪-‬‬

‫ﻻ ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺤﺘﻮى ﻋﻠﻰ "‪ ":‬ﻓﮫﻮ ﻣﺤﺠﻮز ﻓﻲ ‪XML‬‬ ‫‪-‬‬

‫ﻻ ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺒﺪأ ﺑﺎﻷﺣﺮف ‪ XML‬ﺳﻮاء ﻛﺎﻧﺖ ﺑﺄﺣﺮف ﺻﻐﯿﺮة أو ﻛﺒﯿﺮة ‪.‬‬ ‫‪-‬‬

‫ﻻ ﻳﻤﻜﻦ أن ﻳﻜﻮن ھﻨﺎك ﻓﺮاغ ﺑﯿﻦ ﻗﻮس اﻹﺣﺎﻃﺔ اﻟﻤﻔﺘﻮح > وﺑﯿﻦ اﺳﻢ اﻟﻌﻨﺼﺮ‬ ‫‪-‬‬

‫‪Attributes‬‬ ‫‪ (2‬اﻟﺼﻔﺎت‬

‫أن ﻣﺴﺘﻨﺪات ‪ XML‬ﻳﻤﻜﻦ أن ﺗﺘﻀﻤﻦ ﺻﻔﺎت أو ﺳﻤﺎت ﻣﻌﯿﻨﺔ ‪ attributes‬اﻟﺼﻔﺎت ﻋﺒﺎرة ﻋﻦ اﺳﻢ ﻣﻌﯿﻦ ﺗﺴﻨﺪ‬
‫ﻟﻪ ﻗﯿﻤﺔ ﻣﻌﯿﻨﺔ ﺑﺤﯿﺚ ﻳﺮﺗﺒﻂ ذﻟﻚ اﻻﺳﻢ وﺗﻠﻚ اﻟﻘﯿﻤﺔ ﺑﻌﻨﺼﺮ ﻣﻌﯿﻦ ﻓﻲ ﻣﺴﺘﻨﺪ ‪. XML‬‬

‫ﻣﺜﻞ ‪..‬‬

‫‪21‬‬
‫ﻳﺠﺐ أن ﺗﺤﺘﻮى اﻟﺼﻔﺎت ﻋﻠﻰ ﻗﯿﻢ وﻳﺠﺐ أن ﺗﻜﻮن ھﺬه اﻟﻘﯿﻢ واﻗﻌﺔ ﺑﯿﻦ ﻋﻼﻣﺘﻲ اﻗﺘﺒﺎس وﻻ ﻳﺸﺘﺮط أن ﺗﻜﻮن‬
‫ﻋﻼﻣﺔ اﻻﻗﺘﺒﺎس ﻣﻔﺮدة أو ﻣﺰدوﺟﺔ ‪.‬‬

‫ﻳﻤﻜﻦ ﻟﻠﺼﻔﺎت أن ﺗﻘﺪم ﺑﯿﺎﻧﺎت وﺻﻔﯿﺔ ‪ Metadata‬واﻟﺘﻲ ﻳﻤﻜﻦ أن ﻻ ﺗﻜﻮن وﺛﯿﻘﺔ اﻟﺼﻠﺔ ﺑﻤﻌﻈﻢ اﻟﺘﻄﺒﯿﻘﺎت اﻟﺘﻲ‬
‫ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺴﺘﻨﺪات ‪XML‬‬

‫ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل إذا ﻋﻠﻤﻨﺎ أن ﺑﻌﺾ اﻟﺘﻄﺒﯿﻘﺎت ﻳﻤﻜﻦ أن ﺗﮫﺘﻢ ﺑﺎﻻﺳﻢ اﻟﻤﺴﺘﻌﺎر ‪ Nickname‬وﻟﻜﻦ ﻣﻌﻈﻢ‬
‫اﻟﺘﻄﺒﯿﻘﺎت ﻻ ﺗﮫﺘﻢ ﺑﮫﺬه اﻟﻤﻌﻠﻮﻣﺎت ﻓﺎن اﺳﺘﺨﺪام ھﺬه اﻟﻤﻌﻠﻮﻣﺎت ﻛﺼﻔﺔ ﺳﯿﻜﻮن ذا ﻣﻌﻨﻰ ‪.‬‬

‫إذا ﻣﺎ اﻟﺬي ﺗﻘﺪﻣﻪ اﻟﺼﻔﺎت وﻻ ﻳﻤﻜﻦ ﻟﻠﻌﻨﺎﺻﺮ أن ﺗﻘﺪﻣﻪ ‪.‬‬

‫ﻣﺜﺎل ‪..‬‬

‫أﻳﻀﺎ ‪،،،‬‬

‫اﻟﺴﺒﺐ ﻳﺮﺟﻊ إﻟﻰ أن ﺑﻌﺾ اﻷﺷﺨﺎص ﻳﺠﺪون أن اﺳﺘﺨﺪام اﻟﺼﻔﺎت ﺗﺴﮫﻞ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻓﺎﻧﻚ ﻻ ﺗﺤﺘﺎج‬
‫إﻟﻰ اﻻھﺘﻤﺎم ﺑﺪرﺟﺔ ﺗﻌﺸﯿﺶ اﻟﻌﻨﺎﺻﺮ وﻻ ﺗﺤﺘﺎج ﻟﻠﻘﻠﻖ ﺣﻮل اﻟﻤﻌﺮﻓﺎت اﻟﻤﺘﺪاﺧﻠﺔ‪.‬‬

‫ﻓﯿﻤﺎ أن اﻟﺒﻌﺾ اﻵﺧﺮ ﻳﺮى إن ﻋﻤﻠﯿﺔ ﺗﺪاﺧﻞ وﺗﻌﺸﯿﺶ اﻟﻌﻨﺎﺻﺮ ﺳﮫﻞ ‪.‬‬

‫ﻣﺠﻤﻮﻋﺔ أﺧﺮى ﺗﺮى أن اﻟﺼﻔﺎت ﺗﺴﺘﮫﻠﻚ ﻣﺴﺎﺣﺔ اﻗﻞ ﺑﻜﺜﯿﺮ ﻣﻦ اﻟﻌﻨﺎﺻﺮ ‪ .‬ﻓﻤﺜﻼ اﻟﻤﺜﺎل اﻷول ﻟﻮ ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺘﻪ‬
‫ﺑﻮاﺳﻄﺔ اﻟﺼﻔﺎت ﺳﯿﻜﻮن ﺑﮫﺬا اﻟﺸﻜﻞ ‪.‬‬

‫وﻟﻜﻦ ذﻟﻚ ﻗﻠﻞ ﻣﻦ ﻣﺮوﻧﺔ ﻣﺴﺘﻨﺪات ‪ XML‬اﻟﺘﻲ ﺗﺘﺴﻢ ﺑﺎﻟﻤﺮوﻧﺔ ‪.‬‬

‫ﻓﻲ اﻟﻨﮫﺎﻳﺔ ﻧﻘﻮل إن ﻋﻤﻠﯿﺔ أﻓﻀﻠﯿﺔ اﻟﺼﻔﺎت ﻋﻦ اﻟﻌﻨﺎﺻﺮ أو اﻟﻌﻨﺎﺻﺮ ﻋﻦ اﻟﺼﻔﺎت ﺗﻌﻮد ﻋﻠﻰ اﺧﺘﯿﺎر‬ ‫‪-‬‬
‫اﻟﺸﺨﺺ وﻋﻠﻰ أﺳﻠﻮﺑﻪ ‪ .‬ﻓﺎﺧﺘﺎر ﻣﻨﮫﻢ ﻣﺎ ﻳﺸﻌﺮك ﺑﺎﻻرﺗﯿﺎح ‪.‬‬

‫‪22‬‬
‫‪Comments‬‬ ‫‪ (3‬اﻟﺘﻌﻠﯿﻘﺎت‬

‫ھﻲ ﻋﺒﺎرة ﻋﻦ إﺿﺎﻓﺔ اﻟﻨﺼﻮص اﻟﺘﻲ ﻻ ﺗﺸﻜﻞ ﺟﺰءا ﻣﻦ اﻟﻤﺴﺘﻦ و إﻧﻤﺎ ﺗﺨﺺ اﻟﺸﺨﺺ اﻟﺬي ﻳﻘﺮاء ﺷﻔﺮة‬
‫‪ XML‬ﻧﻔﺴﮫﺎ ‪.‬‬

‫إذ ﺻﺎدف ﻟﻚ وﺗﻌﺎﻣﻠﺖ ﻣﻦ ﻗﺒﻞ ﻣﻊ أي ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻓﺎﻧﻚ ﺗﻌﺮف ﺗﻤﺎﻣﺎ ﻣﺎذا ﺗﻌﻨﻰ ﺑﺎﻟﺘﻌﻠﯿﻘﺎت ‪.‬‬

‫وھﻰ ﺗﺴﺘﺨﺪم ﻟﻮﺿﻊ ﺑﮫﺎ ﺗﻌﻠﯿﻘﺎت ﺗﺼﻒ ﺑﻌﺾ اﻟﻔﻘﺮات و اﻻﻛﻮاد ﻟﻜﻲ ﺗﺴﺎﻋﺪك ﻓﻲ ﻓﮫﻢ ﺷﻔﺮه ﻣﺴﺘﻨﺪات‬
‫‪XML‬‬

‫وﻟﻜﻨﮫﺎ ﻟﯿﺴﺖ ﻣﮫﻤﺔ ﺑﺎﻟﺪرﺟﺔ ﻣﺜﻠﻤﺎ ﻓﻲ إي ﻟﻐﺔ ﺑﺮﻣﺠﺔ أﺧﺮي ﺣﯿﺚ أن ﻟﻐﺔ ‪ XML‬ﻟﻐﺔ ﺗﺼﻒ اﻟﺒﯿﻨﺎت إي أﻧﮫﺎ‬
‫ذاﺗﯿﺔ اﻟﻮﺻﻒ ﺗﺴﺎﻋﺪك ﻋﻠﻰ ﻓﮫﻤﮫﺎ ‪.‬‬

‫ﺗﺒﺪأ اﻟﺘﻌﻠﯿﻘﺎت ﺑﺎﻟﺮﻣﺰ > !— وﺗﻨﺘﮫﻲ ﺑﺎﻟﺮﻣﺰ ‪ < --‬ﻣﺜﻞ اﻟﺘﻌﻠﯿﻘﺎت ﻓﻲ ‪HTML‬‬

‫ﻣﺜﻼ ‪..‬‬

‫‪Empty Ele ments‬‬ ‫‪ (4‬اﻟﻌﻨﺎﺻﺮ اﻟﻔﺎرﻏﺔ‬

‫ﻗﺪ ﺗﻮﺟﺪ ﻓﻲ ﺑﻌﺾ ﻣﺴﺘﻨﺪات ‪ XML‬ﻋﻨﺎﺻﺮ ﻓﺎرﻏﺔ ﻣﻦ اﻟﺒﯿﻨﺎت‬

‫ﻓﻤﺜﻼ ‪...‬‬

‫ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﺗﻘﺪم ﻟﻚ ‪ XML‬اﻟﺤﻞ اﻷﻓﻀﻞ واﻟﺒﺪﻳﻞ اﻟﺬي ﺗﻜﻮن ﻓﯿﻪ ﻻ ﺗﺤﺘﺎج إﻟﻰ ﻣﻌﺮف ﻧﮫﺎﻳﺔ ‪End Tag‬‬
‫ﻓﺘﻜﺘﺐ ﺑﮫﺬا اﻟﺸﻜﻞ‬

‫>‪< last/‬‬

‫ﻋﻠﻰ أن ﻳﻜﻮن اﻟﻌﻨﺼﺮ ﺛﻢ اﻟﺮﻣﺰ "‪ "/‬ﺑﺪون ﻻﺣﻘﺔ اﻟﻨﮫﺎﻳﺔ اﻟﻤﻌﺘﺎدة وھﻰ اﻟﺤﺎﻟﺔ اﻟﻮﺣﯿﺪة اﻟﺘﻲ ﻻ ﺗﺴﺘﺨﺪم ﻓﯿﮫﺎ‬
‫ﻟﻮاﺣﻖ اﻟﻨﮫﺎﻳﺎت ‪.‬‬

‫وﻟﻮ أﺟﺮﻳﺖ ﺗﺠﺮﺑﺔ ﺑﺴﯿﻄﺔ داﺧﻞ ﻣﻌﺮب ‪ XML‬اﻟﻤﺪﻣﺠﺔ ﺑﻤﺘﺼﻔﺢ إﻧﺘﺮﻧﺖ اﻛﺴﺒﻠﻮرر ‪ 5.5‬وﻛﺘﺒﺖ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ‬

‫‪23‬‬
‫أﻧﮫﺎ ﺳﻮف ﺗﻈﮫﺮ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫‪XM L Declaration‬‬ ‫‪ (5‬ﺗﺼﺮﯾﺢ‬

‫ﺗﻌﺪ اﻟﺘﺼﺎرﻳﺢ ﻓﻲ ﺗﻌﺮﻳﻒ ﻣﺴﺘﻨﺪات ‪ XML‬ﺑﺄﻧﮫﺎ ﺗﺘﺒﻊ ﻧﻮﻋﺎ ﻣﻌﯿﻨﺎ ﺑﺎﻹﺿﺎﻓﺔ إﻟﻲ إﻋﻄﺎء اﻟﻤﻌﺮب اﻟﺘﻌﻠﯿﻤﺎت اﻷﺧﺮى‬

‫ﻓﻤﺜﻼ ھﺬا اﻟﺘﺼﺮﻳﺢ‬

‫وھﻮ ﻳﺠﺐ أن ﻳﻜﻮن ﻓﻲ ﺑﺪاﻳﺔ ﻣﺴﺘﻨﺪات ‪ XML‬وﻟﯿﺲ ﻣﻌﻨﻰ ﻋﺪم وﺟﻮده ﻳﺴﺒﺐ اﻟﺨﻄﺄ وﻟﻜﻦ اﻷﻓﻀﻞ ﺗﻌﺮﻳﻒ‬
‫اﻟﻤﺴﺘﻨﺪات ‪.‬‬

‫ﺷﺮح اﻟﺘﺼﺮﻳﺢ اﻟﺴﺎﺑﻖ‬

‫ﻓﺒﺪا ﺗﺼﺮﻳﺢ ‪ XML‬ﺑﺎﻟﺮﻣﺰ > ؟‪xml‬‬ ‫‪-‬‬


‫و ﻳﻨﺘﮫﻲ ﺑﺎﻟﺮﻣﺰ ؟ <‬

‫?<‬

‫إذا أﺿﻔﺖ ﺗﺼﺮﻳﺢ ‪ XML‬ﻳﺠﺐ أن ﺗﻀﯿﻒ أﻳﻀﺎ اﻟﺼﻔﺔ ‪ version‬أﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺼﻔﺘﯿﻦ ‪ Encoding‬و‬ ‫‪-‬‬
‫‪ Standalonge‬ﺑﮫﺬا اﻟﺘﺮﺗﯿﺐ ‪.‬‬

‫ﺣﺎﻟﯿﺎ ﻓﺎن اﻹﺻﺪار ‪ Version‬ﻳﺠﺐ أن ﻳﻜﻮن ﻳﺤﻮى اﻟﻘﯿﻤﺔ ‪ 1.0‬إذا ﻗﻤﺖ ﺑﻮﺿﻊ رﻗﻢ ﻏﯿﺮ ھﺬا اﻟﺮﻗﻢ ﻓﺎن‬ ‫‪-‬‬
‫‪ XML‬اﻟﻤﻜﺘﻮب ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻮاﺻﻔﺎت ‪ XML‬اﻹﺻﺪار ‪ 1.0‬ﺳﺘﺮﻓﺾ اﻟﻤﺴﺘﻨﺪ ‪.‬‬

‫ﻳﺠﺐ أن ﻳﺄﺗﻲ ھﺬا اﻟﺘﺼﺮﻳﺢ ﻓﻲ أول ﺳﻄﺮ ﻓﻲ ﻣﺴﺘﻨﺪ ‪ XML‬ﻛﻤﺎ ذﻛﺮﻧﺎ ‪.‬‬ ‫‪-‬‬

‫اﻟﺼﻔﺔ اﻟﺜﺎﻧﯿﺔ ﻓﻲ ﺗﺼﺮﻳﺢ ‪ XML‬ھﻲ ‪Encoding‬‬

‫‪24‬‬
‫ﺻﻔﺔ اﻟﺘﺸﻔﯿﺮ ‪ ، 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‬ﻏﯿﺮ ﻣﺴﻤﻮح ﺑﻬﺎ ‪.‬‬

‫‪25‬‬
‫ﺗﻌﺮﻓﻨﺎ ﺳﺎﺑﻘﺎ ﺑﺎﻟﻤﻘﺼﻮد ﺑﺎﻟﻤﺼﻄﻠﺢ ‪ PCDATA‬وﻋﺮﻓﻨﺎ اﻧﻪ ﻣﺼﻄﻠﺢ ﻣﺴﺘﺨﺪم ﻣﻦ ﻗﺒﻞ ‪ SGML‬ﻳﺸﯿﺮ إﻟﻰ اﻟﺒﯿﺎﻧﺎت‬
‫اﻟﻨﺼﯿﺔ اﻟﻤﻮﺟﻮدة داﺧﻞ اﻟﻌﻨﺎﺻﺮ ‪ ،‬ﻓﺘﻮﺟﺪ ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ ﺗﺤﻜﻢ ھﺬه اﻟﺒﯿﺎﻧﺎت اﻟﻨﺼﯿﺔ ﻋﻨﺪ ﻛﺘﺎﺑﺘﮫﺎ ﻟﻔﺎدى اﻷﺧﻄﺎء‬
‫أﺛﻨﺎء ﻋﻤﻞ ﻣﻌﺮب ‪. XML‬‬

‫ﻓﮫﻨﺎك ﺑﻌﺾ اﻟﺮﻣﻮز اﻟﻤﺤﺠﻮزة اﻟﺘﻲ ﻻ ﺗﺴﺘﻄﯿﻊ ﺗﻀﻤﯿﻨﮫﺎ ﻓﻲ ﺑﯿﻨﺎت ‪ PCDATA‬ﻻن ﺗﺮﻛﯿﺐ ‪ XML‬ﻳﺴﺘﺨﺪﻣﮫﺎ ﻣﻦ‬
‫ھﺬه اﻟﺮﻣﻮز < واﻟﺮﻣﺰ &‬

‫ﻓﻤﺜﻼ ‪..‬‬

‫ﻋﻨﺪ ﺗﺸﻐﯿﻞ ھﺬه اﻟﺸﻔﺮة ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ﺳﻮف ﺗﻌﺮض ﻟﻚ اﻟﺨﻄﺄ ﺑﮫﺬا اﻟﺸﻜﻞ ‪..‬‬

‫ھﺬا ﻳﻌﻨﻰ اﻧﻪ ﻋﻨﺪﻣﺎ ﻳﺼﻞ اﻟﻤﻌﺮب إﻟﻰ اﻟﺮﻣﺰ < ﺳﯿﺘﻮﻗﻊ أن ﻳﺠﺪ اﺳﻤﺎ ﻟﻤﻌﺮف ‪ Tag‬وﺑﺪﻻ ﻣﻦ ذﻟﻚ ﻓﻘﺪ وﺟﺪ‬
‫ﻓﺮاغ ‪ Space‬وﺣﺘﻰ إن ﺗﺠﺎوز اﻟﻤﻌﺮب ھﺬا اﻟﺨﻄﺄ ﻓﺈﻧﻪ ﺳﯿﺘﻮﻗﻒ ﻋﻨﺪ ﺧﻄﺎ أﺧﺮ ﻋﻨﺪﻣﺎ ﻳﺼﻞ إﻟﻰ اﻟﺮﻣﺰ “ & “‬

‫ﻓﻼ ﺗﻘﻠﻖ ﻓﮫﻨﺎك ﻃﺮﻳﻘﺘﺎن ﺗﻤﻜﻨﻚ ﻣﻦ ﺗﻀﻤﯿﻦ ھﺬه اﻟﺮﻣﻮز ﺿﻤﻦ ‪ PCDATA‬إﻣﺎ أن ﺗﺴﺘﺨﺪم اﻟﺮﻣﻮز اﻟﻤﺮادﻓﺔ‬
‫‪ Escaping Characters‬أو أن ﺗﺴﺘﺨﺪم ﻗﺴﻢ ‪ CDATA‬ﺳﻨﺘﻌﺮف ﻋﻠﻰ اﻟﻄﺮﻳﻘﺘﺎن اﻵن ﻓﻲ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬
‫ھﻨــــــــــــﺎ ‪.‬‬

‫‪26‬‬
‫اﻟﺪرس اﻟﺮاﺑﻊ‬

‫ﺗﺎﺑﻊ ﻣﻨﻬﺠﯿﺔ ﻋﻤﻞ ﻣﺴﺘﻨﺪات ‪ XML‬وﺗﻜﻮﯾﻨﻬﺎ اﻟﻬﺮﻣﻲ ‪.‬‬

‫اﻟﺮﻣﻮز اﻟﻤﺮادﻓﺔ ‪Escaping Characters‬‬

‫ﻳﻤﻜﻨﻚ اﺳﺘﺨﺪام اﻟﺮﻣﺰ < ﺿﻤﻦ ﺑﯿﻨﺎﺗﻚ اﻟﻨﺼﯿﺔ ﻓﻲ ‪ XML‬ﺑﺎﺳﺘﺒﺪال ھﺬا اﻟﺮﻣﺰ ﺑﻤﺮادﻓﺔ واﻟﺬي ﻧﺼﺖ ﻋﻠﯿﺔ ‪XML‬‬
‫وھﻮ‬

‫وﻳﻤﻜﻨﻚ أﻳﻀﺎ اﺳﺘﺨﺪام اﻟﺮﻣﺰ & وذﻟﻚ ﺑﺎﺳﺘﺒﺪاﻟﻪ ﺑﻤﺮادﻓﺔ وھﻮ‬

‫إذا ﻧﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﻤﺴﺘﻨﺪ اﻟﺴﺎﺑﻖ ﺑﺼﻮرة ﺳﻠﯿﻤﺔ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪..‬‬

‫وﻋﻨﺪ ﻋﺮﺿﻪ ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ﺳﯿﻈﮫﺮ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪..‬‬

‫واﻟﯿﻚ ھﺬا اﻟﺠﺪول ﻳﻮﺿﺢ ﻟﻚ اﻟﺮﻣﻮز اﻟﻤﺤﺠﻮزة ﻓﻲ ‪ XML‬وﻣﺮادﻓﺎﺗﮫﺎ ‪.‬‬

‫اﻟﺮﻣﺰ اﻟﻤﺮادف‬ ‫اﻟﺮﻣﺰ اﻟﻤﺤﺠﻮز‬


‫;‪& amp‬‬ ‫&‬
‫;‪& lt‬‬ ‫>‬
‫;‪& gt‬‬ ‫<‬
‫;‪&apos‬‬ ‫‘‬
‫;‪&qu‬‬ ‫"‬

‫‪27‬‬
‫ﺗﻮﺟﺪ اﻟﻌﺪﻳﺪ ﻣﻦ ھﺬه اﻟﺮﻣﻮز وھﻰ ﺗﻌﺮف ﺑﺎﺳﻢ ‪. Character Referances‬‬

‫ﻓﮫﻲ رﻣﻮز ‪ Unicode‬ﺗﺒﺪأ ﺑـ ‪ &#‬و ﺗﻨﺘﮫﻲ ﺑﺎﻟﺮﻣﺰ ; وﻳﺘﻮﺳﻄﮫﺎ رﻣﻮز وﻓﻖ اﻟﺘﻤﺜﯿﻞ اﻟﺴﺘﻌﺸﺮى وﻋﻠﻰ ﺳﺒﯿﻞ‬
‫اﻟﻤﺜﺎل ﻳﻤﻜﻨﻚ ﺗﻤﺜﯿﻞ اﻟﺮﻣﺰ © ﻓﻲ ﻣﺴﺘﻨﺪ ‪ XML‬ﺑﺈﺿﺎﻓﺔ اﻟﺮﻣﺰ اﻟﺒﺪﻳﻞ ؛ & ‪ 169#‬أو اﻟﻤﺮادف اﻟﺴﺘﻌﺸﺮى ﻟﻪ &‬
‫‪xA9#‬؛‬

‫أﻗﺴﺎم ‪CDATA‬‬

‫إذا ﻛﺎن ﻟﺪﻳﻚ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺮﻣﻮز اﻟﺘﻲ ﻳﺘﺤﺘﻢ ﻋﻠﯿﻚ اﺳﺘﺨﺪاﻣﮫﺎ رﻣﻮز ﺑﺪﻳﻠﻪ ﻟﮫﺎ ﺳﯿﺼﺒﺢ ﺷﻜﻞ ﺷﻔﺮة ﻣﺴﺘﻨﺪك‬
‫ﻣﺰﻋﺠﺎ ﻓﯿﺄﺗﻲ ھﻨﺎ اﻟﺤﺎﺟﺔ إﻟﻰ اﺳﺘﺨﺪام ﻣﺎ ﻳﻌﺮف ﺑﺄﻗﺴﺎم ‪CDATA‬‬

‫ﻋﻨﺪ اﺳﺘﺨﺪام أﻗﺴﺎم ‪ CDATA‬ﺳﯿﻘﻮم اﻟﻤﻌﺮب ﺑﻌﺪم إﻋﺮاب اﻟﻨﺺ و إﻧﻤﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻋﻠﻰ اﻧﻪ ﻋﺒﺎرة ﻋﻦ‬
‫ﺑﯿﺎﻧﺎت ‪ PCDATA‬ﺑﻤﺎ ﻳﺤﺘﻮﻳﮫﺎ ﻣﻦ رﻣﻮز ﻣﺤﺠﻮزة وﺗﻜﺘﺐ أﻗﺴﺎم ‪ CDATA‬ﺑﮫﺬا اﻟﺸﻜﻞ‬

‫أي أن ﻛﻞ ﻣﺎ ﻳﻮﺿﻊ ﺑﯿﻦ اﻟﺮﻣﻮز > !]‪ ]CDATA‬واﻟﺮﻣﻮز [[ < أي أن ﻣﻌﺮب ‪ XML‬ﺳﯿﻤﺮر ھﺬا اﻟﻨﺺ ﻛﻤﺎ ھﻮ وﺳﻮ‬
‫ﻳﺘﺠﺎھﻞ اﻟﺮﻣﻮز اﻟﻤﺤﺠﻮزة‪.‬‬

‫ﺗﻈﮫﺮ ﻗﻮة اﻟﺘﻌﺎﻣﻞ ﻣﻊ أﻗﺴﺎم ‪ CDATA‬ﻋﻨﺪﻣﺎ ﺗﺮﻳﺪ ﻛﺘﺎﺑﺔ ﺷﻔﺮة ﺑﺮﻣﺠﯿﺔ داﺧﻞ ﻣﺴﺘﻨﺪ ‪ Xml‬ﻓﻤﺜﻼ‪..‬‬

‫وﺳﯿﻈﮫﺮ ﺑﮫﺬا اﻟﺸﻜﻞ ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ‪..‬‬

‫‪28‬‬
‫إﻋﺮاب ﻣﺴﺘﻨﺪات ‪: XML‬‬

‫ﻳﺮﺟﻊ اﻟﺴﺒﺐ ﻟﻮﺟﻮد ھﺬه اﻟﻘﻮاﻧﯿﻦ ﻟﻜﺘﺎﺑﺔ ﻣﺴﺘﻨﺪات ‪ xml‬ﻣﺤﻜﻤﺔ ھﻮ ﻟﺘﺴﮫﯿﻞ ﻋﻤﻠﯿﺔ اﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ‬
‫ھﺬه اﻟﻤﺴﺘﻨﺪات ‪.‬‬

‫ﻳﺴﻤﻰ ﻣﻌﺎﻟﺞ ﻟﻐﺔ ‪ xml‬ﺑﻤﻌﺮب ‪ XML Parser‬وﻷﻧﻪ ﻳﻘﻮم ﺑﺒﺴﺎﻃﺔ ﺑﺄﻋﺮاب ﺷﻔﺮة ‪ xml‬وﻳﻮﻓﺮ ﻟﻠﺘﻄﺒﯿﻖ اﻟﻤﻌﻠﻮﻣﺎت‬
‫اﻟﺘﻰ ﻳﺤﺘﺎﺟﮫﺎ ﻣﻦ اﻟﻤﺴﺘﻨﺪ ‪.‬‬

‫ھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﻌﺮﺑﺎت اﻟﻤﺠﺎﻧﯿﺔ وﺳﻮف اذﻛﺮ ﻟﻜﻢ ﻣﺠﻤﻮﻋﺔ ﻣﻨﮫﺎ اﻵن ‪.‬‬

‫‪Microsoft Internet Explorer Parser :‬‬

‫أول ﻣﻌﺮﺑﺎت ‪ XML‬ﺿﻤﻨﺘﻪ ﺷﺮﻛﺔ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ ﻓﻲ ﻣﺘﺼﻔﺤﮫﺎ اﻹﺻﺪار اﻟﺮاﺑﻊ وﻟﻚ ﻓﻲ ﺑﺪاﻳﺎت ‪ XML‬وﻣﻊ اﻹﺻﺪار‬
‫اﻟﺨﺎﻣﺲ ﻣﻦ اﻟﻤﺘﺼﻔﺢ زودت ﻟﻐﺔ ‪ xml‬ﺑﺄدوات ﺑﺤﯿﺚ ﺗﻢ ﺗﺤﺪﻳﺜﮫﺎ إﻟﻰ اﻹﺻﺪار اﻷول ﻣﻦ ھﺬه اﻟﻤﻮاﺻﻔﺎت وﻋﺮﻓﺖ‬
‫ﺑﺎﺳﻢ ‪xml 1.0‬‬

‫ﻳﻤﻜﻨﻚ ﺗﺤﻤﯿﻞ اﻹﺻﺪار اﻷﺧﯿﺮ ﻣﻦ ﻣﻌﺮب ‪ xml‬ﻣﻦ ﻣﻮﻗﻊ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ ﻋﻠﻰ ھﺬه اﻟﻮﺻﻠﺔ ‪.‬‬

‫‪http://msdn.microsoft.com/XML/XMLDownloads/default.aspx‬‬

‫‪James Clark’s Expat :‬‬

‫ﻣﻌﺮب ﺟﺎﻳﻤﺰ ﻛﻼرك ﻳﻌﺪ ‪ Expat‬ﻣﻌﺮب ‪ xml 1.0‬ﻣﻜﺘﻮب ﺑﻠﻐﺔ ‪ c‬وھﻮ أﺣﺪ ﻣﻌﺮﺑﺎت ‪ XML‬اﻟﻤﺠﺎﻧﯿﺔ وﻳﻤﻜﻨﻚ ﺗﺤﻤﯿﻠﺔ‬
‫ﻣﻦ اﻟﻤﻮﻗﻊ اﻟﺘﺎﻟﻲ ‪ .‬أﺧﺮ إﺻﺪار ھﻮ ‪expat v1.2‬‬

‫‪ftp://ftp.jclark.com/pub/xml/expat1_2.zip‬‬

‫وﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل ھﺬا اﻟﻤﻌﺮب ﻳﻤﻜﻦ ﻣﺮاﺟﻌﺔ ھﺬه اﻟﻮﺻﻠﺔ‬

‫‪http://www.jclark.com/xml/expat.html‬‬

‫‪DataChannel XJ Parser‬‬

‫ﺗﻌﺪ ﺷﺮﻛﺔ ‪ DataChannel‬ﺷﺮﻛﺔ ﺑﺮﻣﺠﯿﺎت ﺣﻠﻮل اﻷﻋﻤﺎل ﻋﻤﻠﺖ ﻣﻊ ﺷﺮﻛﺔ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ ﻷﻧﺘﺎج ﻣﻌﺮب ‪xml‬‬
‫ﺑﻠﻐﺔ ﺟﺎﻓﺎ ﻳﻤﻜﻨﻚ ﻣﻦ اﻟﺤﺼﻮل ﻋﻠﻰ أﺧﺮ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل ھﺬا اﻟﻤﻌﺮب أﺧﺮ إﺻﺪار ﻟﻪ ﻣﻦ اﻟﻤﻮﻗﻊ اﻟﺘﺎﻟﻲ‪.‬‬

‫‪29‬‬
‫‪http://xdev.datachannel.com/directory/xml-parser.html‬‬

‫‪IBM XML4j‬‬

‫ﺗﻘﺪم ﺷﺮﻛﺔ ‪ IBM‬ﻋﺪدا ﻣﻦ أدوات وﺗﻄﺒﯿﻘﺎت ‪ xml‬ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ اﻟﻤﻌﺮب ‪ xml4j‬وھﻮ ﻛﺘﺐ ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ وھﻮ ﻣﺘﻮﻓﺮ‬
‫ﺑﺎﻟﻤﺠﺎن ﻋﻠﻰ اﻟﻤﻮﻗﻊ اﻟﺘﺎﻟﻲ‬

‫‪http://www.alphaworks.ibm.com‬‬

‫‪Apache Xerces‬‬

‫ﺗﻮﻓﺮ أﻳﻀﺎ ﻣﺆﺳﺴﺔ ‪ Apache‬ﻟﻠﺒﺮﻣﺠﯿﺎت ﻣﺸﺮوﻋﺎ أوﻟﯿﺎ ﻟﻤﻌﺮب ‪ XML‬ﻣﺎزال ﺑﺈﺻﺪارﺗﻪ اﻟﺘﺠﺮﻳﺒﯿﺔ ‪ Beta‬وھﻮ أﻳﻀﺎ‬
‫ﻛﺘﺐ ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ وﻟﻐﺔ ‪ C++‬وﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ﺑﯿﺮل أﻳﻀﺎ وﺗﺠﺪه ھﻨﺎ‬

‫‪http://xml.apache.org/‬‬

‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷﺧﻄﺎء ﻓﻲ ‪: XML‬‬

‫وﻛﻤﺎ ﺗﻢ ﺗﺤﺪﻳﺪ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻌﻠﻮﻣﺎت داﺧﻞ ﻣﺴﺘﻨﺪ ‪ XML‬ﺗﻢ أﻳﻀﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷﺧﻄﺎء ﺑﻮاﺳﻄﺔ ﻣﻌﺮب ‪XML‬‬
‫ﻓﮫﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻷﺧﻄﺎء وھﻰ اﻷﺧﻄﺎء ‪ Error‬واﻷﺧﻄﺎء ‪. fatal errors‬‬

‫ﻓﺎﻷﺧﻄﺎء ﺑﺒﺴﺎﻃﺔ ھﻲ اﻧﺘﮫﺎك ﻟﻤﻮﺻﻔﺎت وﻗﻮاﻧﯿﻦ ‪ XML‬اﻟﺘﻲ ﺗﻜﻠﻤﻨﺎ ﻋﻨﮫﺎ ھﻨﺎ ﺣﯿﺚ ﻳﻜﻮن اﻟﻨﺎﺗﺞ ﻏﯿﺮ ﻣﻌﺮوف ‪.‬‬

‫أﻣﺎ اﻷﺧﻄﺎء اﻟﻤﻤﯿﺘﺔ أو ‪ fatal Errors‬ﻓﮫﻲ اﻟﺘﻲ ﺗﺤﺘﻢ ﻋﻠﻰ اﻟﻤﻌﺮب ﻋﺪم اﻻﺳﺘﻤﺮار ﻓﻲ ﻣﻌﺎﻟﺠﺔ ﻣﺴﺘﻨﺪ ‪xml‬‬
‫أي إن أي ﺧﻄﺄ ﻳﺠﻌﻞ ﻣﺴﺘﻨﺪ ‪xml‬ﻏﯿﺮ ﻣﺤﻜﻢ اﻟﮫﯿﺌﺔ ﻳﺴﻤﻰ ﺧﻄﺄ ﻣﻤﯿﺖ ‪.‬‬

‫ﻓﮫﺬه اﻟﺼﺮاﻣﺔ ﻓﻲ ﻛﺘﺎﺑﺔ ﻣﺴﺘﻨﺪات ‪ xml‬ھﻲ اﻟﺘﻲ ﺗﺰﻳﺪ ﻣﻦ ﻗﻮﺗﮫﺎ وﻟﯿﺲ ﻣﺠﺮد ﺗﻔﺎدى ﻻﺧﻄﺎء اﻟﻤﻌﺮﺑﺎت وﻟﻜﻨﮫﺎ‬
‫ﺗﻮﺣﯿﺪ ﻛﺘﺎﺑﻪ ﻣﺴﺘﻨﺪات ﻗﯿﺎﺳﯿﺔ ﻳﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻣﻦ اﻛﺜﺮ ﻣﻦ ﻣﺘﺼﻔﺢ واﻛﺜﺮ ﻣﻦ ﻣﻨﺼﺔ ﺗﺸﻐﯿﻞ ‪ .‬ﺑﻌﻜﺲ ﻟﻐﺔ‬
‫‪ html‬ﻻ ﺗﻮﺟﺪ ﺻﺮاﻣﺔ ﻓﻲ ﻛﺘﺎﺑﺔ اﻟﻨﺼﻮص ﻣﻤﺎ ﻗﺪ ﺗﺠﺪ ﻣﺘﺼﻔﺤﺎ ﻳﻘﻮم ﺑﻌﺮض اﻟﺼﻔﺤﺔ ﺑﺸﻜﻞ ﻏﯿﺮ ﻻﺋﻖ ﻓﻲ ﺣﯿﻦ‬
‫ﻣﺘﺼﻔﺢ أﺧﺮ ﻳﻌﺮﺿﮫﺎ ﻛﻤﺎ ﺗﺮﻳﺪ ‪ .‬وھﺬا اﻟﻌﯿﺐ ﻓﻲ ‪ html‬وھﻮ ﺳﺒﺐ ﻣﻦ أﺳﺒﺎب ﻇﮫﻮر ﻟﻐﺔ ‪ XHTML‬اﻟﺘﻲ ﺗﻌﺘﺒﺮ‬
‫اﻟﻌﻮض ﻟﻘﺼﻮر ‪html‬‬

‫‪30‬‬
‫اﻟﻨﻘﺎش و اﻻﺳﺌﻠﺔ‬

‫اﺷﻌﺮ ھﻨﺎك ﺗﺸﺎﺑﻪ ﺑﯿﻦ ‪ xml‬وﺑﯿﻦ ‪ html‬وﻟﻜﻦ‪html‬‬


‫اﺷﯿﺎء ﻣﺤﺪده ووﺳﻮم ﻣﻌﺮوﻓﺔ اﻣﺎ ‪ xml‬ﻓﺒﺎﻣﻜﺎﻧﻚ اﻧﺸﺎء اي وﺳﻢ ﺗﺮﻳﺪ واﻳﻀﺎ ﻣﺎ ﻓﮫﻤﺘﻪ ان ‪html‬‬
‫ﻓﻘﻂ ﻟﻠﻮﻳﺐ اﻣﺎ ‪ xml‬ﺗﺸﻤﻞ اﻟﻮﻳﺐ وﺗﻄﺒﯿﻘﺎت ﻛﺜﯿﺮة ‪.‬اﻟﯿﺲ ﻛﺬﻟﻚ؟‬

‫‪ CDATA‬ﺗﻘﻮم ﺑﺘﻀﻤﯿﻦ ﺷﻔﺮات ﺑﺮﻣﺠﯿﺔ داﺧﻞ ‪ xml‬ﻣﺜﻞ ﻣﺎھﻮ ﻣﻮﺟﻮد ﻓﻲ ﻣﺜﺎل اﻟﺠﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ‬
‫ھﻞ اﻟﺒﺮﻧﺎﻣﺞ ﺳﯿﻨﻔﺬ داﺧﻞ ﻣﻠﻒ ‪ xml‬اﻗﺼﺪ ھﺬا اﻟﻤﺜﺎل ﻟﻮ وﺿﻌﻨﺎه ﻓﻲ ‪ html‬ﺳﯿﻨﻔﺬ رﺑﻤﺎ ﻣﺎ ﻳﺤﺘﻮﻳﻪ‬
‫ھﺬا اﻟﺴﻜﺮﻳﺒﺖ ھﻞ ‪ xml‬ﺳﺘﻨﻔﺬ ﻣﺎ ﺑﺪاﺧﻠﮫﺎ ﻣﻦ ﺷﻔﺮات ﺧﺎرﺟﯿﺔ ؟‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺴﺆال اﻻول ‪ ..‬ﻣﺎ ذﻛﺮت ﺻﺤﯿﺢ‪.‬‬


‫‪xml‬ﺳﺘﻨﻔﺬ ﻣﺎ ﺑﺪاﺧﻠﮫﺎ ﻣﻦ ﺷﻔﺮات ﺧﺎرﺟﯿﺔ ؟ ﻻ ﻃﺒﻌﺎ ‪ XML‬ﺗﻌﺘﺒﺮ ھﺬه اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﻧﮫﺎ ﺑﯿﺎﻧﺎت ﻧﺼﯿﺔ ‪PCDATA‬‬
‫ﻓﺒﺎﻟﺘﺎﻟﻲ ﻻ ﻳﺘﻢ ﺗﻨﻔﯿﺬھﺎ ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ‬

‫ﻛﯿﻒ ﻟﻲ ان ارﺑﻂ ﺑﯿﻦ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﺑﯿﻦ ‪ xml‬؟‬

‫اﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﺮﺑﻂ ‪ XML‬ﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻓﮫﺬه وﻣﻮﺿﻮع ﺧﺎص وﻳﻄﻮل ﺷﺮﺣﺔ واﺳﺎﺳﯿﺎت ﻋﻤﻠﻪ داﺧﻞ ﻟﻐﺔ ﻗﻮاﻋﺪ‬
‫اﻟﺒﯿﺎﻧﺎت ودﻋﻤﮫﺎ‬

‫ﻓﻲ ﻧﺴﺨﺔ اﻻوﻓﯿﺲ اﻟﺠﺪﻳﺪة ﺳﻤﻌﻨﺎ ﻋﻦ ﺗﻮاﺟﺪ ﺗﻘﻨﯿﺔ ‪ xml‬داﺧﻞ اﻻوﻓﯿﺲ ھﻞ اﻟﻤﺴﺘﺨﺪم‬
‫اﻟﻌﺎدي ﻳﺴﺘﻔﯿﺪ ﻣﻦ وﺟﻮد ھﺬا اﻟﺸﻲ ام ان اﻛﺜﺮ اﻟﻤﺴﺘﻔﯿﺪﻳﻦ ھﻢ اﻟﻤﻄﻮرﻳﻦ واﻟﻤﺒﺮﻣﺠﯿﻦ‬
‫اﻟﻤﺘﻘﺪﻣﯿﻦ ؟‬

‫ﺣﻮل ﺳﺆاﻟﻚ ﻋﻦ اﺳﺘﺨﺪام ‪ XML‬ﻓﻲ اﻷوﻓﯿﺲ اﻟﺠﺪﻳﺪ‪ ،‬ﻓﻤﺎ أﻋﻠﻤﻪ أن اﻟﻮﻳﻨﺪوز اﻟﺠﺪﻳﺪ أﻃﻠﻖ ﻣﺎ ﻳﺴﻤﻰ ‪XAML‬‬
‫ﻳﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻋﻮﺿﺎً ﻋﻦ اﻟﻤﺒﺮﻣﺞ أو اﻟﺨﺒﯿﺮ ﺑﺎﻟﺘﺤﻜﻢ ﺑﻤﻈﮫﺮ اﻟﺤﺎﺳﻮب‪ ، GUI‬ﺗﺨﯿّﻞ أﻧﻚ ﺑﻮاﺳﻄﺘﻪ ﺗﺴﺘﻄﯿﻊ‬
‫ﺟﻌﻞ اﻟـ ‪textBox‬اﻟﺬي ﺗﻀﻊ ﻓﯿﻪ ‪ password‬اﻟﺪﺧﻮل ﻋﻠﻰ اﻟﻨﻈﺎم ﻣﺎﺋﻞ‪ ،‬ﺑﻤﻌﻨﻰ ﺑﺪﻻً ﻣﻦ أن ﺗﻜﻮن ﺟﻤﯿﻊ زواﻳﺎه‬
‫ﻗﺎﺋﻤﺔ ﺗﺼﺒﺢ ﻟﻪ زاوﻳﺘﯿﻦ ﻣﺘﻘﺎﺑﻠﺘﯿﻦ ﻣﻨﻔﺮﺟﺘﺎن واﻷﺧﺮﻳﺘﺎن ﺣﺎدﺗﺎن وﻣﻊ ھﺬا اﻟﻤﯿﻼن ﺗﻜﺘﺐ داﺧﻠﻪ ﺑﻜﻞ أرﻳﺤﯿﺔ‪ ،‬وﻟﻚ‬
‫أن ﺗﻘﯿﺲ ﻋﻠﻰ ھﺬا‪ ،‬ﻛﻞ اﻟـ ‪Menus‬ﻓﻲ اﻟﻨﻈﺎم ﺑﺈﻣﻜﺎﻧﻚ اﻟﺘﺤﻜﻢ ﺑﺸﻜﻠﮫﺎ وإﺿﺎﻓﺔ اﻟﺰواﻳﺎ اﻟﺘﻲ ﺗﺮﻳﺪ ﻛﻞ ھﺬا‬
‫ﺑﻮاﺳﻄﺔ أﺳﻄﺮ ﺑﺴﯿﻄﺔ ﺗﻜﺘﺐ ﺑـ ‪ XAML‬وھﻲ ﻣﺸﺘﻘﺔ ﻣﻦ ‪ XML‬ورأت اﻟﻨﻮر ﻣﻊ ‪Windows Longhorn‬‬

‫ھﻞ ﻳﺸﺘﺮط ان ﺗﻜﻮن اﺳﻤﺎء اﻟﻌﻨﺎﺻﺮ ‪ lowercase‬؟‬


‫ﻓﻲ اﻟﻄﺮﻳﻘﺔ اﻟﺜﺎﻧﯿﺔ ﻟﻠﺘﻐﻠﺐ ﻋﻠﻰ ﻣﺸﻜﻠﺔ اﻟﺮﻣﻮز اﻟﻤﺤﺠﻮزة ‪ ..‬ھﻞ ﻳﻤﻜﻦ ﻛﺘﺎﺑﺔ ‪ CDATA‬ﺑﺎﻻﺣﺮف‬
‫اﻟﺼﻐﯿﺮة ؟ ام ان ھﺬا ﻳﻌﺘﺒﺮ ﺧﻄﺄ ؟‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻻﺳﻤﺎء اﻟﻌﻨﺎﺻﺮ ﻓﻼ ﻳﺸﺘﺮط ان ﺗﻜﻮن‪Low Case‬‬


‫اﻣﺎﺑﺎﻟﻨﺴﺒﺔ ﻟـ ‪ CDATA‬ﻓﯿﺠﺐ ان ﺗﻜﻮن ﺑﺤﺮوف ﻛﺒﯿﺮة‪.‬‬

‫‪31‬‬
‫اﻟﺪرس اﻟﺨﺎﻣﺲ‬

‫‪ Html‬ﻣﻘﺎﺑﻞ ‪XML‬‬

‫اﻻﺧﺘﻼف اﻟﺮﺋﯿﺴﻲ ﺑﯿﻦ ‪ XML‬و‪ HTML‬ھﻮ أن اﻟـ ‪ XML‬ﻳﺄﺧﺬ وﺟﮫﺔ ﻧﻈﺮ ﻣﺨﺘﻠﻔﺔ ﻋﻦ ‪ ، HTML‬ﺑﺎﻟﺮﻏﻢ ﻣﻦ اﻧﻪ ﻣﺎ‬
‫ذال ﻳﺴﺘﻌﻤﻞ وﺳﻢ ‪ Tags‬وھﻮ ﻟﯿﺲ ﺑﺪﻳﻞ ﻟـ ‪. HTML‬‬

‫‪ XML‬و ‪ HTML‬ﺻﻤﻤﺎ ﻛﻞ ﻣﻨﮫﻢ ﻟﮫﺪف ﻣﺨﺘﻠﻒ ‪ .‬أن اﻻﺧﺘﻼف اﻟﺮﺋﯿﺴﻲ ﺑﺎن ‪ XML‬ﺻﻤﻢ ﻟﻮﺻﻒ ﺗﺮﻛﯿﺐ اﻟﻨﺺ‬
‫وﻟﯿﺲ ﻣﺎ ھﻮ ﻳﺠﺐ أن ﻳﻌﺮض ﻋﻠﻰ ﺻﻔﺤﺔ اﻟﻤﺘﺼﻔﺢ ‪.‬ﺑﺎﺧﺘﺼﺎر ‪ XML .‬ﺻﻤﻢ ﻟﺤﻤﻞ اﻟﺒﯿﺎﻧﺎت ‪ ،‬ﻣﻦ اﻟﻨﺎﺣﯿﺔ اﻷﺧﺮى‬
‫‪ HTML‬ﺻﻤﻢ ﻟﻌﺮض اﻟﺒﯿﺎﻧﺎت واﻟﺘﺮﻛﯿﺰ ﻋﻠﻰ ﺷﻜﻞ ﻋﺮض ھﺬه اﻟﺒﯿﺎﻧﺎت ‪ .‬ھﻜﺬا ﻳﻤﻜﻦ أن ﻧﻘﻮل إن ‪ HTML‬ﻳﻌﻤﻞ‬
‫ﻋﻠﻰ ﻋﺮض اﻟﻤﻌﻠﻮﻣﺎت ‪ ،‬ﺑﯿﻨﻤﺎ ‪ XML‬ﻳﻌﻤﻞ وﺻﻒ اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬

‫دﻋﻨﺎ ﻧﺄﺧﺬ ﻣﺜﺎل ﺑﺴﯿﻂ ‪:‬‬

‫ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻣﻠﻒ ‪ file.html‬وﻧﻜﺘﺐ ﺑﺪاﺧﻞ ھﺬه اﻟﻜﻮد‬

‫وﻋﻨﺪ ﻋﺮض ھﺬه اﻟﺸﻔﺮة ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ﺳﻮف ﻳﻈﮫﺮ ﻟﻚ ﺷﻲ ﻣﺜﻞ ھﺬا‪:‬‬

‫وﻳﺠﺐ أن ﻧﻼﺣﻆ إن ﺟﻤﻠﺔ ‪ While this is bold text‬ﺗﻈﮫﺮ ﻛﻨﺺ ﻏﺎﻣﻖ ‪.‬‬

‫أﻣﺎ إذا ﻗﻤﻨﺎ ﺑﻌﺮض اﻟﻤﻠﻒ ھﺬا ﻋﻠﻰ اﻧﻪ وﺛﯿﻘﺔ ‪ XML‬ﺑﺪون ﺗﻐﯿﺮ ﻓﻲ ﺷﻜﻞ اﻟـ ‪ ، Tags‬ﻓﻘﻂ ﻗﻢ ﺑﺘﻐﯿﺮ اﻣﺘﺪاد‬
‫اﻟﻤﻠﻒ ﺑﺪل ﻣﻦ ‪ file.html‬إﻟﻰ ‪file.xml‬‬

‫ﺳﻮف ﻧﻼﺣﻆ أن ﻣﺘﺼﻔﺤﻚ ﻗﺎم ﺑﻌﺮض اﻟﻤﻠﻒ وﻟﻜﻦ ﺑﺸﻜﻞ أﺧﺮى ﻳﺸﺒﻪ ھﺬا اﻟﺸﻜﻞ ‪:‬‬

‫‪32‬‬
‫ﻧﺴﺘﻨﺘﺞ ﻣﻦ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ أن ﺷﻔﺮة ‪ HTML‬اﻟﺘﻲ ﺗﺤﻤﻞ اﻻﻣﺘﺪاد ‪ html‬ﺗﻢ ﻋﺮﺿﮫﺎ ﺑﺸﻜﻞ ﻳﺠﺐ أن ﻳﻜﻮن‬
‫ﻣﻌﺮوف أو ﻣﺘﻮﻗﻊ ﻋﺮﺿﮫﺎ ﺑﻪ ‪ .‬وذﻟﻚ ﻷﻧﮫﺎ ﺗﺤﺘﻮى ﻋﻠﻰ وﺻﻔﺎت ‪ Tags‬ﺗﻢ ﺗﻌﺮﻳﻔﮫﺎ ﻣﺴﺒﻘﺎ ﻟﺪى اﻟﻤﺘﺼﻔﺢ ﻟﻜﻲ‬
‫ﻳﻤﻜﻨﻪ اﻟﺘﻌﺮف ﻋﻠﯿﮫﺎ وﻋﺮض اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ أﺳﺎﺳﮫﺎ ‪ .‬ﻣﺜﻞ >‪ .. <h1> , <h2> , <body‬اﻟﺦ ‪ .‬ﻓﺄي ﻣﺘﺼﻔﺢ‬
‫ﻳﻤﻜﻨﻪ أﻳﻀﺎ إﺿﺎﻓﺔ وﺻﻔﺎت ﺟﺪﻳﺪه ﻟﻌﺮض اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻣﺘﺼﻔﺢ اﻟﻨﺘﺴﻜﯿﺐ ﻟﻪ ‪ tags‬ﺧﺎص ھﻲ‬
‫>‪ <BLINK‬وﻟﻜﻦ ﻟﯿﺲ ھﻨﺎك ﻃﺮﻳﻘﺔ ﻗﯿﺎﺳﯿﺔ ﻟﺘﻘﺪﻳﻢ أﻧﻮاع اﻟﻌﻨﺼﺮ اﻟﺠﺪﻳﺪة ‪ .‬أﻣﺎ ھﺬا اﻟﺤﺎل ﻣﺨﺘﻠﻒ ﺗﻤﺎﻣﺎ ﻣﻊ‬
‫وﺛﺎﺋﻖ ‪XML‬‬

‫ﻓﻲ ﺣﺎﻟﺔ ﺗﻐﯿﺮ اﻣﺘﺪاد اﻟﻤﻠﻒ ﻟﯿﺘﻢ ﻋﺮﺿﺔ ﻛﻮﺛﯿﻘﺔ ‪ xml‬ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ‪ .‬ھﻨﺎ ﺗﻈﮫﺮ اﻟﻘﺪرة ﻟﺘﻌﺮﻳﻒ اﻟﻌﻨﺎﺻﺮ اﻟﺠﺪﻳﺪة‬
‫وﻋﻼوة ﻋﻠﻰ ذﻟﻚ ‪ ،‬ﻳﻤﻜﻨﮫﺎ اﻟﻌﻤﻞ ﻋﻠﻰ اﻟﻮﺛﯿﻘﺔ ﻧﻔﺴﮫﺎ ‪ ،‬ﺑﺤﯿﺚ ﻳﻜﻮن اﻟﻮﺻﻒ ﻋﺒﺎرة ﻋﻦ وﺻﻒ ذاﺗﻲ ‪self-‬‬
‫‪. describing‬‬

‫دﻋﻨﺎ ﻧﺘﺨﯿﻞ ﻣﺜﺎﻻ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻛﻮﺛﯿﻘﺔ ‪ HTML‬ﻋﻠﻰ ھﯿﺌﻪ ﺟﺪول دورات ﺗﺪرﻳﺒﯿﺔ ‪:‬‬

‫‪PHP Programming‬‬ ‫‪15-04-2003‬‬ ‫‪Emad Adly‬‬ ‫‪jimmy salh adel‬‬

‫‪Java Programming‬‬ ‫‪8-03-2004‬‬ ‫‪jimmy Adle‬‬ ‫‪Devman karim‬‬

‫‪ASP Programming‬‬ ‫‪12-5-2004‬‬ ‫‪salh Mohammed‬‬ ‫‪SeGa mrscript‬‬

‫)وھﻜﺬا ﻟﻜﻞ ﺻﻒ(‪. . .‬‬

‫>‪</table‬‬

‫‪33‬‬
‫وﺑﺎﻟﺮﻏﻢ ﻣﻦ إﻧﻨﺎ ﻛﺒﺸﺮ أو ﻣﺒﺮﻣﺠﯿﻦ ﻳﻤﻜﻦ ﻷي ﺷﺨﺺ ﺗﺨﻤﯿﻦ أن اﻻﺳﻢ اﻟﻤﺬﻛﻮر ﺷﻔﻰ ھﺬا اﻟﺠﺪول ﻳﺪل ﻋﻦ‬
‫اﻧﻪ اﺳﻢ اﻟﻤﻌﻠﻢ أو اﻟﻤﺤﺎﺿﺮ ﻟﻠﺪورة اﻟﻤﺬﻛﻮر ﺑﺠﻮارھﺎ ‪ ،‬وﻟﯿﺲ ﻣﻦ اﻟﻤﻌﻘﻮل اﻟﺘﻌﺮف ﻋﻠﻰ ‪PHP Programming‬‬
‫ﻛﺎﺳﻢ اﻟﻤﻌﻠﻢ ‪ ،‬أو ﻣﻦ ھﻢ اﻟﻤﺸﺎرﻛﯿﻦ ﻓﻲ اﻟﺪورة ‪ ،‬أﻣﺎ ﻓﻲ اﻟﺒﺮﻣﺠﺔ وﻓﮫﻢ اﻟﺤﺎﺳﺐ ﻟﺬﻟﻚ ﺑﻄﺮﻳﻘﺔ ﻣﻨﮫﺠﯿﺔ ﻓﺎن‬
‫‪ XML‬ﻳﺜﺒﺖ ھﺬا ﻓﻲ ﺗﻌﺪﻳﻞ ھﺬا اﻟﺠﺪول ھﻜﺬا ‪:‬‬

‫ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻟـ ‪ XML‬ھﻮ ﻳﻌﺘﺒﺮ وﺛﯿﻘﺔ ‪ XML‬ﻗﯿﺎﺳﯿﺔ ﻳﻤﻜﻨﻚ أن ﺗﻌﻄﻰ إي ﺑﯿﺎﻧﺎت ﺗﻌﻄﻲ اﻟﻤﻌﻨﻰ اﻟﻤﻨﺎﺳﺐ‬
‫ﻟﻠﻮﺻﻒ اﻟﺨﺎص ﺑﮫﺬه اﻟﺒﯿﺎﻧﺎت واﻟﺘﻲ ﺗﻢ ﺗﻌﺮﻳﻔﺔ ﻛﻮﺻﻒ ﻗﯿﺎﺳﻲ ذاﺗﻲ ﻟﻮﺛﯿﻘﺔ ‪ . XML‬ﺑﺎﺧﺘﯿﺎرﻧﺎ ﻟـ ‪ Tags‬ﺗﻌﻄﻰ‬
‫وﺻﻒ واﺿﺢ وﺻﺮﻳﺢ ﻟﻤﺎ ﺗﺤﺘﻮى ﻣﻦ ﺑﯿﺎﻧﺎت ‪،‬‬

‫ﻓﮫﻜﺬا اﺻﺒﺢ ﻧﺺ ﻗﯿﺎﺳﻲ ﻟﺬا ﻳﻤﻜﻦ أن ﻳﺘﺤﻮل ﺑﺴﮫﻮﻟﺔ ﻣﻦ ﺟﮫﺎز إﻟﻰ ﺟﮫﺎز أو ﻧﻈﺎم إﻟﻰ ﻧﻈﺎم ‪ ،‬ﻟﺬا إي واﺣﺪ‬
‫ﻳﻤﻜﻨﻪ أن ﻳﻔﮫﻢ أن ھﺬه اﻟﻮﺛﯿﻘﺔ ﺗﺤﻤﻞ ﺷﻲ ﻣﻦ اﻟﺘﻮﺿﯿﺢ إﻧﮫﺎ دورة ‪. Course‬‬

‫واﻟﺴﺆال اﻟﺬي ﻳﺪور ﻓﻲ ذھﻦ اﻵن ھﻮ ﻛﯿﻒ ﻟﻲ أن أھﯿﺊ ھﺬا ﻟﯿﻈﮫﺮ ﻓﻲ ﺷﻜﻞ وﺻﻮرة ‪ html‬ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ؟‬

‫ﻧﻼﺣﻆ أن ‪ HTML‬ﺗﺤﺘﻮى ﻋﻠﻰ ﺗﻌﻠﯿﻤﺎت ﻟﻮﺻﻒ اﻟﻨﺺ ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ﻓﻌﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ‪PHP Programming‬‬
‫ﻳﺸﯿﺮ إﻟﻰ اﻧﻪ ﻧﺺ ‪ ، italics‬ھﻨﺎ ﻧﺠﺪ أن ‪ XML‬ﻟﯿﺲ ﻋﻨﺪه ﻋﺪد ﺛﺎﺑﺖ ﻣﻦ اﻟـ ‪ tags‬ﻣﺜﻠﻤﺎ ﻳﻌﻤﻞ ‪ HTML‬وﻟﻜﻨﻪ ﻗﺎﺑﻞ‬
‫ﻟﻼﻣﺘﺪاد ﻣﺜﻞ ﻟﻐﺔ ‪ SGML‬ﺗﺴﻤﺢ ﻟﻤﺼﻤﻢ اﻟﻮﺛﯿﻘﺔ ﺑﺘﻌﺮﻳﻒ اﻟﺒﯿﺎﻧﺎت اﻟﺨﺎﺻﺔ ‪ XML ،‬ﺟﺎءت ﻟﺘﻠﺒﯿﻪ اﻟﻨﻘﺺ ﻓﻲ ھﺬه‬
‫اﻟﻠﻐﺎت واﻟﺤﺎﺟﺔ ﻟﻨﺸﺮ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﺘﻀﻤﻦ ﺷﺒﻜﺎت اﻟﻤﻌﻠﻮﻣﺎت اﻟﻜﺒﯿﺮة واﻟﻨﺸﺮ اﻟﻮرﻗﻲ اﻟﺘﻘﻠﯿﺪي‬
‫واﺳﺘﻌﻤﺎﻟﮫﺎ ﻋﻠﻰ أﻧﻈﻤﺔ ﻏﯿﺮ ﺗﻘﻠﯿﺪﻳﺔ ‪ ،‬وﻛﻠﻤﺎ ﺗﻮﺳﻌﻪ اﻹﻧﺘﺮﻧﺖ ﺳﺘﺼﺒﺢ اﻛﺜﺮ وﺿﻮﺣﺎ‪.‬‬

‫ﻟﻢ ﻧﺘﻄﺮق ﻓﻲ ھﺬه اﻟﺴﻠﺴﻠﺔ إﻟﻰ ﻛﯿﻔﯿﺔ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت وﻋﺮﺿﮫﺎ ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ﺑﻄﺮق ﻏﯿﺮ ﺗﻘﻠﯿﺪﻳﺔ أو‬
‫ﺑﺼﻮرة ‪html‬ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ‪. XSLT‬‬
‫وأﻳﻀﺎ ﻟﻢ ﻧﺘﻄﺮق إﻟﻰ اﻟﻮﺻﻮل إﻟﻰ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻣﺴﺘﻨﺪات ‪ XML‬ﺑﺮﻣﺠﯿﺎ ﺑﻮاﺳﻄﺔ ﺗﻘﻨﯿﺎت ‪ DOM‬و ‪SAX‬‬
‫ھﺬه اﻟﺪورة ﺗﻌﺘﺒﺮ ﺗﻤﮫﯿﺪ ﻟﻜﻞ ھﺬه اﻟﺘﻘﻨﯿﺎت وﻋﻠﻰ وﻋﺪ أن أﺗﺤﺪث ﻋﻦ ﻛﻞ ھﺬه اﻟﺘﻘﻨﯿﺎت ﻓﻲ دروس أﺧﺮى ﻓﻲ‬
‫ﻗﺴﻢ دروس ‪ XML‬أو أن اﻛﺘﺒﮫﺎ ﻟﻜﻢ ﻓﻲ ﺳﻠﺴﻠﺔ ﺗﻌﺮض ﻓﻲ ﺻﻮرة دورة ﺗﻜﻤﯿﻠﯿﺔ ‪.‬‬
‫ﻓﻤﻦ ﻣﻨﻜﻢ اھﺘﻢ ﺑﮫﺬه اﻟﻠﻐﺔ ﻳﺘﺎﺑﻌﻨﺎ داﺧﻞ ﻗﺴﻢ ‪ XML‬وﺳﺘﺠﺪ اﻟﻤﺰﻳﺪ أن ﺷﺎء اﷲ ‪.....‬‬

‫أرﺟﻮ أن ﺗﻜﻮﻧﻮا ﻗﺪ ﻗﻀﯿﺘﻢ وﻗﺘﻨﺎ ﻣﻔﯿﺪ ﻓﻲ ﺗﻌﻠﻢ ﺑﺪاﻳﺎت ‪.XML‬‬

‫ﺗﻤﺖ اﻟﺪورة ﺑﺤﻤﺪ اﷲ ‪.‬‬

‫‪34‬‬

Vous aimerez peut-être aussi