Académique Documents
Professionnel Documents
Culture Documents
C4arab.com
ﺗﺄﻟﯿﻒ
ﻋﻤﺎد ﻋﺪﻟﻲ
ﻣﺸﺮف ﺳﺎﺣﺔ ﺑﺮﻣﺠﺔ اﻟﻤﻮاﻗﻊ و إدارﺗﮫﺎ
ﯾﺴﻤﺢ ﺑﺘﻮزﯾﻊ اﻟﻜﺘﺎب ﻋﻠﻰ ﺻﻮرﺗﻪ اﻹﻟﻜﺘﺮوﻧﯿﺔ ﻟﻜﻦ ﻻ ﯾﺴﻤﺢ ﺑﻄﺒﻊ اﻟﻜﺘﺎب أو ﺗﻐﯿﯿﺮ ﻫﯿﺌﺘﻪ
إﻻ ﺑﻌﺪ أﺧﺬا إذن ﻣﻦ اﻟﻜﺎﺗﺐ
اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ© 2000-2005ﺟﻤﯿﻊ اﻟﺤﻘﻮق ﻣﺤﻔﻮﻇﺔ -
اﻟﺘﻮاﺻﻞ ﻣﻊ اﻟﻘﺮاء
ﺣﺮﺻﺖ اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ _ وﻣﻦ ﻣﻨﻄﻠﻖ اﻫﺘﻤﺎﻣﻬﺎ اﻟﻌﺎم ﺑﻌﻠﻮم اﻟﺤﺎﺳﺐ واﻟﺘﻘﻨﯿﺔ
واﻫﺘﻤﺎﻣﻬﺎ اﻟﺨﺎص ﺑﺘﻘﺪﯾﻢ ﻫﺬه اﻟﻌﻠﻮم ﺑﺎﻟﻠﻐﺔ اﻟﻌﺮﺑﯿﺔ _ ﻋﻠﻰ ﺗﻘﺪﯾﻢ ﻫﺬه اﻟﺴﻠﺴﺔ ﻣﻦ
اﻟﻜﺘﺐ اﻹﻟﻜﺘﺮوﻧﯿﺔ اﻟﺘﻰ ﻧﺘﻤﻨﻰ أن ﺗﺤﻘﻖ ﻃﻤﻮﺣﺎت اﻟﻘﺎرئ اﻟﻌﺮﺑﻰ اﻟﺬى اﻋﺘﺎد ﻋﻠﻰ ﻗﺮاءة أﺟﻮد
اﻟﻤﻄﺒﻮﻋﺎت ﺑﻜﺎﻓﺔ اﻟﻠﻐﺎت اﻟﻌﺎﻟﻤﯿﺔ .
إن اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ _ﻣﻦ ﺧﻼل ﻫﺬه اﻟﺴﻠﺴﻠﺔ _ ﺗﻄﻤﺢ ﻟﺘﻘﺪﯾﻢ ﺳﻠﺴﻠﺔ ﻣﻦ اﻟﻜﺘﺐ ﺑﻤﺴﺘﻮى ﻋﺎلٍ ﻣﻦ
اﻟﺠﻮدة ،اﻟﺸﻲء اﻟﺬى ﻟﻦ ﯾﺘﺤﻘﻖ ﺑﺪون ﻣﻼﺣﻈﺎﺗﻜﻢ واﻗﺘﺮاﺣﺎﺗﻜﻢ ﺣﻮل اﻟﺴﻠﺴﻠﺔ _ ﻃﺮﯾﻘﺔ اﻟﻜﺘﺎﺑﺔ ،
اﻷﺧﻄﺎء اﻹﻣﻼﺋﯿﺔ واﻟﻨﺤﻮﯾﺔ ،اﻟﺘﻨﻈﯿﻢ واﻟﺘﺮﺗﯿﺐ ،ﻃﺮﯾﻘﺔ ﻧﺸﺮ اﻟﻜﺘﺎب وﺗﻮزﯾﻌﻪ ،اﻹﺧﺮاج اﻟﻔﻨﻰ ...
اﻟﺦ
ﺗـــــــــــﻬﺎﻧﻰ اﻟﺴـــــــــــــــــﺒﯿﺖ
ﻣﺸﺮﻓﺔ اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ
1
..ﺑﺴــــﻢ اﷲ اﻟﺮﺣﻤــــﻦ اﻟﺮﺣﯿـــــﻢ ..
اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ ..ھﻲ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺪورات
اﻟﺘﻲ ﺗﻘﺪﻣﮫﺎ ﻟﻜﻢ اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ؛ ﺑﺪأﻧﺎ ﺑﺘﻘﺪﻳﻤﮫﺎ
ﻓﻲ اﻟﺼﯿﻒ ﺗﺤﺖ ﻣﺴﻤﻰ " اﻟﺪورات اﻟﺼﯿﻔﯿﺔ " وھﺎ
ھﻲ ﺗﻌﻮد ﻣﻦ ﺟﺪﻳﺪ .ﺣﺮﺻﻨﺎ ﻋﻠﻰ ﺗﻘﺪﻳﻢ دورات ﻓﻲ
ﻣﺠﺎﻻت ﻣﺨﺘﻠﻔﺔ ﻟﻨﺮاﻋﻲ أﻏﻠﺐ اﻻھﺘﻤﺎﻣﺎت ﻛﻤﺎ
ﺣﺮﺻﻨﺎ ﻋﻠﻰ اﻧﺘﻘﺎء اﻟﺪورات اﻟﻤﻔﯿﺪة ،ﻏﯿﺮ اﻟﻤﺘﻜﺮرة،
ﺑﻄﺮﻳﻘﺔ ﺟﺎدة ﺗﻨﻘﻠﻚ إﻟﻰ اﻟﺠﻮ اﻟﺪراﺳﻲ ﻓﻲ ﻗﺎﻋﺎت
اﻟﺠﺎﻣﻌﺔ و ﺻﻔﻮف اﻟﻤﻌﺎھﺪ و ﻟﻜﻦ ﻓﻲ ﺑﯿﺌﺔ
إﻟﻜﺘﺮوﻧﯿﺔ! ﻛﻞ ھـﺬا ﻣﺠــﺎﻧـــﺎ! ...
ﻳﻮﺟﺪ ﻛﺬﻟﻚ ﺳﺎﺣﺔ ﻣﺘﺨﺼﺼﺔ ﻟﮫﺎ ﺿﻤﻦ ﻣﺠﻤﻮﻋﺔ
ﺳﺎﺣﺎت اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻨﻘﺎش واﻷﺳﺌﻠﺔ،
ﺗﺠﺪھﺎ ھﻨـــﺎ! ...
اﺳﺘﻔﺪ واﺳﺘﺜﻤﺮ وﻗﺘﻚ ﻣﻌﻨﺎ! إذا ﻛﻨﺖ ﺗﺮﻏﺐ ﻓﻲ
ﺗﻄﻮﻳﺮ ذاﺗﻚ و ﺗﻮﺳﯿﻊ ﻧﻄﺎق ﺛﻘﺎﻓﺘﻚ ﻓﻲ اﻟﺤﺎﺳﻮب
ﻓﺎﺳﺘﻐﻞ ﻛﻞ دﻗﯿﻘﺔ واﺳﺘﻔﺪ ﻣﻌﻨﺎ! و ﻻ ﺗﻨﺴﻰ أﻧﻨﺎ
ﻓﻲ ﻋﺼﺮ اﻟﻤﻌﻠﻮﻣﺎت واﻟﺴﺮﻋﺔ.
اﺑﺪأ اﻵن !اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﺪورات و اﺧﺘﺮ اﻟﺪورة اﻟﺘﻲ ﺗﻨﺎﺳﺒﻚ ،اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻷﺳﺎﺗﺬة ﻟﻼﻃﻼع ﻋﻠﻰ
ﻗﺎﺋﻤﺔ اﻷﺳﺎﺗﺬة اﻟّﺬﻳﻦ ﺳﯿﻠﻘﻮن اﻟﻤﺤﺎﺿﺮات ،اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﺘﺴﺠﯿﻞ ﻛﻲ ﺗﺴﺠّﻞ ﻧﻔﺴﻚ ﻓﻲ إﺣﺪى
اﻟﺪورات ،ﻟﻦ ﺗﺴﺘﻄﯿﻊ اﻟﻤﺸﺎرﻛﺔ ﻓﻲ أي دورة ﻗﺒﻞ أن ﺗﺴﺠﻞ .اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﻤﺮاﺟﻊ ﻛﻲ ﺗﻄﻠﻊ ﻋﻠﻰ
اﻟﻤﺮاﺟﻊ اﻟﻤﻘﺪﻣﺔ ﻣﻦ اﻷﺳﺎﺗﺬة ﺑﺨﺼﻮص اﻟﺪورات اﻟﺤﺎﻟﯿﺔ .اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﻟﻤﻠﺘﺤﻘﯿﻦ ﻟﺘﻄﻠﻊ ﻋﻠﻰ ﺑﻌﺾ
اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ اﻟﻤﻠﺘﺤﻘﯿﻦ ﻓﻲ اﻟﺪورات .اﻧﺘﻘﻞ ﻟﺼﻔﺤﺔ اﺗﺼﻞ ﺑﻨﺎ ﻛﻲ ﺗﺮﺳﻞ ﻟﻨﺎ اﻗﺘﺮاﺣﺎً أو ﻃﻠﺒﺎً .ﻧﺤﻦ
ﺑﺎﻧﺘﻈﺎرك! ﻟﻜﻦ اﻟﻮﻗﺖ ﻣﺤﺪود و ﻋﺪد اﻟﻤﻠﺘﺤﻘﯿﻦ ﻓﻲ ﻛﻞ دورة ﻣﺤﺪود ﻟﺬا ﻻ ﺗﺘﺄﺧﺮ ﻓﻲ اﻟﺘﺴﺠﯿﻞ ﻣﻦ
ﻓﻀﻠﻚ.
2
ﻫﺬا اﻟﻜﺘﺎب ....
ﻟﯿﺲ ﻓﻰ اﻷﺻﻞ أﻻ دورة ﺗﻢ ﺗﺪرﯾﺴﻬﺎ ﻓﻰ ﺳﺎﺣﺔ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ ﺑﺎﻟﻤﻮﺳﻮﻋﺔ
اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ ،وﺗﻢ ﺟﻤﻊ ﺗﻠﻚ اﻟﺪروس وﺳﻠﺴﻠﺔ اﻟﻨﻘﺎش اﻟﺘﻰ
دارت ﺣﻮﻟﻬﺎ ﻫﻨﺎ ﻓﻰ ﻫﺬا اﻟﻜﺘﺎب ،وﺗﻢ وﺿﻊ اﻟﻨﻘﺎﺷﺎت ﻋﻠﻰ ﻫﯿﺌﺔ أﺳﺌﻠﺔ
وأﺟﻮﺑﺔ ﻟﻜﻰ ﯾﺴﺘﻔﯿﺪ اﻟﺠﻤﯿﻊ ﻣﻨﻬﺎ ،،،،،،،،،
اﻟﺴﻠﺴﻠﺔ اﻟﻮﺣﯿﺪة اﻟﺘﻰ ﺗﺘﺒﻊ ﻧﻈﺎم اﻷﺳﺌﻠﺔ واﻷﺟﻮﺑﺔ اﻟﻨﺎﺗﺠﺔ ﻓﻌﻼً ﻣﻦ ﻣﺸﺎﻛﻞ ﺣﻘﯿﻘﺔ ﻷﺷﺨﺎص ﻣﻦ ﻣﺨﺘﻠﻒ •
اﻷﻣﺎﻛﻦ واﻟﺪول ،ﻣﻤﺎ ﯾﻬﯿﺊ ﻋﻨﺪك ﻧﻮع ﻣﻦ اﺳﺘﻌﺪاد ﻷى ﻣﺸﻜﻠﺔ وﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ.
ﺗﻌﺘﺒﺮ ﺳﻠﺴﻠﺔ اﻟﻜﺘﺎب اﻟﻮﺣﯿﺪة اﻟﻤﺪﻋﻮﻣﺔ ارﺑﻊ وﻋﺸﺮﯾﻦ ﺳﺎﻋﺔ ﻃﻮال اﻟﻌﺎم ،ﻓﯿﻤﻜﻨﻚ اﻻﺳﺘﻔﺴﺎر ﻋﻦ اى •
ﻣﺸﻜﻠﺔ وﺣﻠﻬﺎ ﻋﻦ ﻃﺮﯾﻖ وﺿﻌﻬﺎ ﻓﻰ ﺳﺎﺣﺔ اﻟﻨﻘﺎش واﻷﺳﺌﻠﺔ ﺑﺎﻟﻤﻮﺳﻮﻋﺔ .
إن ﻫﺬا اﻟﻜﺘﺎب ﻫﻮ ﻣﻦ اﺟﻞ ﻧﺸﺮ اﻟﻤﻌﺮﻓﺔ وﺗﻮﺳﯿﻊ اﻟﺘﻔﻜﯿﺮ اﻟﻤﻨﻄﻘﻰ اﻷﺳﺎﺳﻲ ،اﻻﺣﺘﺮاف ﻫﻮ ﻟﯿﺲ اﻟﻬﺪف •
ﻓﻰ ﺣﺪ ذاﺗﻪ ،ﺑﻞ اﻻﺳﺘﻄﻼع واﻛﺘﺸﺎف اﻟﺬات واﻹﻟﻤﺎم اﻟﺠﯿﺪ ﺑﺎﻷﺳﺎﺳﯿﺎت واﻟﻤﺒﺎدئ اﻷوﻟﯿﺔ
ﻣﻦ اﺟﻞ ﺷﻖ ﻃﺮﯾﻖ اﻟﻨﺠﺎح ﺑﻜﻞ ﺳﻬﻮﻟﺔ وﯾﺴﺮ.
3
اﻟﻤﺤﺘﻮﻳﺎت :
4
اﻟﺪرس اﻷول
ﻟﻘﺪ ﻗﻤﺖ ﺑﻜﺘﺎﺑﺔ ھﺬه اﻟﺴﻠﺴﻠﺔ اﻟﺘﻲ ﺗﺼﻒ وﺻﻒ دﻗﯿﻖ إﻟﻰ ﺗﻘﻨﯿﺎت XMLوإﻣﻜﺎﻧﯿﺘﮫﺎ وﻗﺪراﺗﮫﺎ اﻟﻔﺮﻳﺪة ﻟﻜﻲ
ﺗﺨﺪم اﻷﺷﺨﺎص اﻟﺬﻳﻦ ﻳﻮدون اﻻﻃﻼع ﻋﻠﻰ ﻟﻐﺔ XMLوﻣﻌﺮﻓﺔ اﻟﻤﺰﻳﺪ ﻋﻨﮫﺎ وﻣﺎذا ﻳﻤﻜﻦ أن ﻳﻔﻌﻠﻮا ﺑﻮاﺳﻄﺘﮫﺎ
وﻛﯿﻔﯿﺔ اﻻﺳﺘﻔﺎدة ﻣﻨﮫﺎ .
ﻓﮫﻲ ﻟﻐﺔ ﻣﺼﻤﻤﻪ ﻟﺘﻔﯿﺪ ﻛﻞ ﻣﻦ ﻳﺒﺤﺚ ﻋﻦ ﺑﻨﺎء وﺗﺼﻤﯿﻢ ﻣﻮاﻗﻊ إﻧﺘﺮﻧﺖ ذات أﺳﺎس ﺻﻠﺐ .ﺑﺄﺣﺪث اﻟﺘﻘﻨﯿﺎت
ﻟﺬﻟﻚ .وأﻳﻀﺎ اﻟﻤﺒﺮﻣﺠﯿﻦ اﻟﺬﻳﻦ ﻳﺒﺤﺜﻮا ﻋﻦ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻟﻺﻧﺘﺮﻧﺖ وﺗﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت واﻷﺷﺨﺎص اﻟﺬﻳﻦ ﻳﺮﻳﺪون
اﺳﺘﺨﺪام ﺗﻘﻨﯿﺎت ﻗﻮﻳﺔ ﻻﻋﺎدة ﺗﺼﻤﯿﻢ ﻣﻮﻗﻌﮫﻢ ﺑﺴﮫﻮﻟﺔ .
-ﻣﺘﺼﻔﺢ ﻳﻤﻜﻨﻪ اﺳﺘﻌﺮاض ﻣﺴﺘﻨﺪات 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
إن ﺷﺎء اﷲ ﻳﻜﻮن ﻓﮫﻤﻲ ﺻﺤﯿﺢ؟!
اﻟﺒﺘﺎت ﻛﻤﺎ ﻓﮫﻤﺖ اﻧﮫﺎ ﺗﺘﺮﺟﻢ اﻻرﻗﺎم اﻟﻰ اﻋﺪادﺻﺤﯿﺤﻪ ﻓﻤﺜﻼ رﻗﻢ )) ... 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
اﻟﺪرس اﻟﺜﺎﻧﻲ
ﻟﻐﺔ اﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻌﺔ eXtensible Markup Languageاﻟﺘﻲ ﻳﺮﻣﺰ ﻟﮫﺎ ﺑﺎﻻﺧﺘﺼﺎر XMLوھﻰ ﺗﺴﺘﺨﺪم ﻓﻲ
وﺻﻒ وﺗﺨﺰﻳﻦ وﺗﻨﻈﯿﻢ اﻟﺒﯿﺎﻧﺎت ﺑﺨﻼف ﻟﻐﺔ HTMLاﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﻜﯿﻔﯿﺔ ﻋﺮض اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ .
ﺗﺤﺪﺛﻨﺎ ﺳﺎﺑﻘﺎ ﻋﻦ ﻟﻐﺔ SGMLوذﻛﺮﻧﺎ إﻧﮫﺎ ﻟﻐﺔ ﻣﻌﻘﺪة ﻻ ﺗﺼﻠﺢ ﻟﺘﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت ﻋﺒﺮ اﻟﺸﺒﻜﺔ .وﻋﻠﻰ اﻟﺮﻏﻢ ﻣﻦ
أﻧﮫﺎ ﻟﻐﺔ ﻟﻮﺻﻒ اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ وﻻ ﻳﻤﻜﻦ اﺳﺘﺨﻼص ﻣﻌﻠﻮﻣﺎت ﻣﻌﯿﻨﺔ ﺣﻮل ﺷﺨﺺ ﻣﺎ وﻟﺴﺒﺐ ﻗﺼﻮر ﻟﻐﺔ
HTMLﻓﻲ ﻗﺪرﺗﮫﺎ ﻋﻠﻰ وﺻﻒ أﻧﻮاع ﻣﺤﺪدة ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت دﻋﺖ اﻟﺤﺎﺟﺔ ﻟﻮﺟﻮد ﻟﻐﺔ ﺗﺤﻘﻖ ذﻟﻚ وھﻰ ﻟﻐﺔ
اﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻊ أو XMLوھﻰ ﻟﻐﺔ أﻳﻀﺎ ﻣﺸﺘﻘﺔ ﻣﻦ ﻟﻐﺔ SGMLوﻣﺘﻮاﻓﻘﺔ ﺑﺼﻮرة ﻛﺒﯿﺮة ﻣﻊ ھﺬه اﻟﻠﻐﺔ .ھﺬا
ﻳﻌﻨﻰ إن أي ﻣﺴﺘﻨﺪ ﻳﺘﺒﻊ ﻣﺼﻄﻠﺤﺎت وﺗﻌﺎﺑﯿﺮ ﻟﻐﺔ XMLﻓﺄﻧﺔ ﻳﺘﺒﻊ أﻳﻀﺎ ﻣﺼﻄﻠﺤﺎت وﺗﻌﺎﺑﯿﺮ ﻟﻐﺔ. SGML
وھﻨﺎ ﻳﺠﺐ ﻣﻼﺣﻈﺔ ﺷﻲ ھﺎم أن ﻟﻐﺔ XMLﻟﯿﺴﺖ ﻟﻐﺔ ﻓﻲ اﻷﺻﻞ ﻓﺎ XMLﺗﺼﻒ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺘﻌﺎﺑﯿﺮ اﻟﺘﻲ
ﺗﺴﺘﺨﺪﻣﮫﺎ ﻟﺒﻨﺎء ﻟﻐﺎﺗﻚ اﻟﺨﺎﺻﺔ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻟﻨﻔﺘﺮض أن ﻟﺪﻳﻨﺎ ﺑﯿﺎﻧﺎت ﺣﻮل اﺳﻢ ﺷﺨﺺ ﻣﺎ واﻧﻚ ﺗﺮﻳﺪ
ﺗﺒﺎدل ھﺬه اﻟﺒﯿﺎﻧﺎت ﻣﻊ اﻵﺧﺮﻳﻦ ﻳﻤﻜﻨﻚ ﺗﻤﺜﯿﻞ ھﺬه اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻣﻠﻒ ﻧﺼﻲ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ.
Emad Adly
ذﻛﺮﻧﺎ ﺳﺎﺑﻘﺎ أن ﻟﻐﺔ SGMLو XMLﺗﺴﻤﯿﺎن ﺑﺎﻟﻐﺎت ذاﺗﯿﺔ اﻟﻮﺻﻒ ﻻن اﻟﺒﯿﺎﻧﺎت ﻳﻤﻜﻨﮫﺎ ﺑﺴﮫﻮﻟﺔ ﻣﻌﺮﻓﺔ أن ھﺬه
اﻟﻤﻌﻠﻮﻣﺎت ﺗﻤﺜﻞ اﺳﻢ Nameﻟﺸﺨﺺ ﻣﺎ وأﻳﻀﺎ ھﻨﺎك ﺑﯿﺎﻧﺎت ﺗﺴﻤﻰ > <firstو ﺑﯿﺎﻧﺎت أﺧﺮى ﺗﺴﻤﻰ ><last
ﻳﺠﺐ آن ﺗﻜﻮن ذات ﻣﻌﻨﻰ ﻃﺒﻌﺎ اﻟﻤﻌﻨﻰ ﻳﺪل ﻋﻠﻰ ﻣﺤﺘﻮى اﻟﻤﻌﻠﻮﻣﺔ ﺑﺪاﺧﻠﮫﺎ .
10
ﻟﻮ ﻗﻤﻨﺎ ﺑﺤﻔﻆ اﻟﻤﻠﻒ اﻟﺴﺎﺑﻖ ﺑﺎﺳﻢ name.xmlﻓﯿﻤﻜﻨﺎ ﻓﺘﺢ ھﺬا اﻟﻤﻠﻒ ﺑﻮاﺳﻄﺔ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ ﻟﺪﻳﻚ ﺑﺸﺮط
أن ﻻ ﻳﻘﻞ ﻋﻦ 5.5وﺳﻮف ﻳﻈﮫﺮ ﺑﮫﺬا اﻟﺸﻜﻞ .
وﺑﺎﻟﺮﻏﻢ ﻣﻦ أن ﻣﻠﻒ XMLاﻟﺴﺎﺑﻖ ﻻ ﻳﺤﺘﻮى ﻋﻠﻰ إي ﻣﻌﻠﻮﻣﺎت ﺣﻮل ﻛﯿﻔﯿﺔ اﻟﻌﺮض ﻓﺎن اﻟﻤﺘﺼﻔﺢ ﻗﺎم
ﺑﺎﺳﺘﻌﺮاض اﻟﻤﻠﻒ ﺑﺼﻮرة ﻟﻄﯿﻔﺔ وﺑﺘﻨﺴﯿﻖ ﻟﻮﻧﻰ ﻣﺨﺘﻠﻒ وأﻳﻀﺎ اﻟﺒﻨﯿﺔ اﻟﺸﺠﺮﻳﺔ اﻟﺘﻲ ﻓﮫﻤﮫﺎ اﻟﻤﺘﺼﻔﺢ وﺗﺮﺟﻤﮫﺎ
أﻳﻀﺎ وذﻟﻚ ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ اﻟﺮﻣﺰ ) (-ﺑﺠﺎﻧﺐ اﻟﺒﻨﺪ > <nameوھﺬه اﻟﻄﺮﻳﻘﺔ ﻣﻔﯿﺪة ﺟﺪا ﻋﻨﺪﻣﺎ ﻳﻜﻮن اﻟﻤﻠﻒ ﻛﺒﯿﺮ
اﻟﺤﺠﻢ .
وﻧﻼﺣﻆ أﻧﻨﺎ ﻟﻢ ﻧﻘﻢ ﺑﻮﺻﻒ اﻟﺒﯿﺎﻧﺎت ﻟﻜﻲ ﺗﻈﮫﺮ ﺑﮫﺬا اﻟﺘﻨﺴﯿﻖ اﻟﻤﻮﺟﻮد وﻟﻜﻦ ھﺬا ﻣﺎ ﻳﻘﺪﻣﻪ ﻟﻨﺎ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ
ﻓﻠﮫﺬا اﻟﻤﺘﺼﻔﺢ ورﻗﺔ ﺗﻨﺴﯿﻖ Style Sheetاﻓﺘﺮاﺿﯿﺔ ﻣﺒﯿﺘﺔ داﺧﻠﺔ ﻣﻤﺎ ﻳﻤﻜﻦ اﻟﻤﺘﺼﻔﺢ ﻣﻦ ﻋﺮض إي ﻣﺴﺘﻨﺪ
XMLوﻓﻖ ورﻗﺔ اﻟﺘﻨﺴﯿﻖ ھﺬه .
وﺑﮫﺬا ﻗﺪ ﻋﺮﻓﻨﺎ ﻣﻘﺪﻣﺔ ﺑﺴﯿﻄﺔ إﻟﻰ ھﺬه اﻟﻠﻐﺔ وﻓﻰ اﻟﺪرس اﻟﻘﺎدم ﺳﻮف ﻧﺘﺤﺪث ﻋﻦ اﻷﺳﺒﺎب اﻟﺘﻲ ﺗﺪﻓﻌﻨﺎ
ﻟﺘﻌﻠﻢ ھﺬه اﻟﻠﻐﺔ .
واﻟﺠﺪﻳﺮ ﺑﺎﻟﺬﻛﺮ أن ﻟﻐﺔ XMLﺗﺘﻄﻠﺐ ﻣﻨﺎ ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ اﻟﻤﺤﺪدة ﻟﻜﺘﺎﺑﻪ وﺛﺎﺋﻖ XMLﻗﺎﺑﻠﺔ ﻟﻠﻌﺮض .ﻣﺜﻠﮫﺎ ﻣﺜﻞ ﻟﻐﺔ
HTMLﻓﯿﮫﺎ أﻳﻀﺎ ﺗﺘﻄﻠﺐ دراﻳﺔ ﺑﻄﺮﻳﻘﺔ ﻛﺘﺎﺑﻪ اﻟـ Tagsاﻟﺨﺎص ﺑﮫﺎ .
إذا اﺗﺒﻌﻨﺎ اﻟﻘﻮاﻧﯿﻦ اﻟﻤﺤﺪدة وﻓﻖ ﻟﻐﺔ XMLﻳﻤﻜﻨﻨﺎ اﻟﻮﺛﻮق ﻣﻦ ﺳﮫﻮﻟﺔ اﺳﺘﺨﻼص اﻟﻤﻌﻠﻮﻣﺎت .ﻳﻌﻮد ذﻟﻚ إﻟﻰ
وﺟﻮد ﺑﺮﻣﺠﯿﺎت ﺗﺴﻤﻰ ﺑﺎﻟﻤﻌﺮﺑﺎت Parsersوﻇﯿﻔﺘﮫﺎ ﻗﺮاءة ﻋﺒﺎرات XMLواﺳﺘﺨﻼص اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ ﺗﻠﻚ
اﻟﻌﺒﺎرات .
ﻓﻼ داﻋﻲ ﻟﻠﻘﻠﻖ ﺣﻮل ﻛﯿﻔﯿﺔ اﺳﺘﺨﻼص اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ ﻣﻠﻔﺎت .XMLﻓﺎﻟﯿﻮم اﻓﻀﻞ ﻣﻦ اﻷﻣﺲ .ﻓﻲ اﻟﻤﺎﺿﻲ
وﻗﺒﻞ اﺳﺘﺨﺪام ھﺬه اﻟﻤﻌﺮﺑﺎت ﻛﺎن ﻳﺘﺤﺘﻢ ﻋﻠﯿﻚ اﻟﻘﯿﺎم ﺑﺎﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻌﻤﻞ ﻟﺒﻨﺎء ﻗﻮاﻧﯿﻦ ﺗﺤﻜﻢ ھﺬه اﻟﻤﻌﻠﻮﻣﺎت
وﻟﻜﻦ اﻵن ﻣﻊ ﺻﯿﻐﺔ XMLﻳﻤﻜﻨﻚ ﻓﻘﻂ إﻋﻄﺎء ﻣﻌﺮب ﻟﻐﺔ XMLﻣﻠﻔﺎ ﻛﻤﺎ ﻳﻠﻲ -:
ﺳﯿﻘﻮم اﻟﻤﻌﺮب ﺑﺎﺳﺘﺨﻼص اﻟﺒﯿﺎﻧﺎت ﻣﻦ ھﺬه اﻟﺸﻔﺮة وﺳﯿﺨﺒﺮﻧﺎ ﺑﺄن ھﻨﺎك ﺑﻨﺪا ﻟﻠﺒﯿﻨﺎت ﺑﺎﺳﻢ وأن اﻟﻤﻌﻠﻮﻣﺔ
اﻟﻤﺮﻓﻘﺔ ﻟﮫﺬا اﻟﺒﻨﺪ ھﻲ Emadوﻻ ﻳﺘﺤﺘﻢ ﻋﻠﻰ ﻣﻌﺮب XMLﻣﻌﺮﻓﺔ أي ﻗﻮاﻧﯿﻦ ﺣﻮل ﻣﻮﺿﻊ اﻻﺳﻢ ﻣﻦ اﻟﺒﯿﺎﻧﺎت .
11
أن اﻟﺸﻔﺮة اﻟﻤﻜﺘﻮﺑﺔ ﺑﻠﻐﺔ XMLﻣﮫﻤﺎ ﻛﺎن ﻧﻮﻋﮫﺎ ﻻ ﺗﺆﺛﺮ ﻓﻲ ﻋﻤﻞ اﻟﻤﻌﺮب ﻓﺎن ﻛﻨﺖ ﻛﺘﺒﺖ ﺷﻔﺮة XML
ﺑﺎﻹﻧﺠﻠﯿﺰﻳﺔ أو ﺑﺎﻟﻌﺮﺑﯿﺔ أو ﺑﺄﻳﺔ ﻟﻐﺔ أﺧﺮى ﻓﺠﻤﯿﻌﮫﺎ ﻳﻤﻜﻦ ﻗﺮاءﺗﮫﺎ وﻓﮫﻤﮫﺎ ﺑﻨﻔﺲ اﻟﻤﻌﺮب .وﺣﺘﻰ إذا ﻛﺎن
اﻟﺸﺨﺺ اﻟﺬي ﻛﺘﺒﮫﺎ ﻻ ﻳﻌﺮف ﺷﻲ ﻋﻦ ھﺬه اﻟﻠﻐﺔ .
ﻟﻐﺔ XMLﻟﻐﺔ ﻣﺮﻧﺔ ﺑﺪرﺟﺔ ﻛﺒﯿﺮة ﻓﮫﻲ ﺗﮫﺪف إﻟﻰ أن ﺗﻜﻮن اﻷﺳﺎس ﻟﻠﻐﺎت ﺗﺒﺎدل اﻟﻤﻌﻄﯿﺎت اﻟﻤﺨﺘﻠﻔﺔ ﺧﺎﺻﺔ
ﻋﺒﺮ اﻹﻧﺘﺮﻧﺖ ﻓﮫﻲ ﺗﺠﻌﻞ ﻣﻦ ﺗﺸﺎرك اﻟﻤﻠﻔﺎت واﻟﻤﻌﻠﻮﻣﺎت ﻋﻠﻰ اﻹﻧﺘﺮﻧﺖ وﺗﺒﺎدﻟﮫﺎ ﻣﺴﺎﻟﺔ ﺳﮫﻠﻪ ﺟﺪا.
ﺑﺎﻋﺘﺒﺎر أﻧﺔ ﻳﻤﻜﻨﻨﺎ اﻟﺘﺤﻜﻢ ﺑﺼﻮرة ﻛﺎﻣﻠﺔ ﻓﻲ ﺗﻜﻮﻳﻦ ﻣﺴﺘﻨﺪات XMLﻓﯿﻤﻜﻨﻨﺎ أن ﻧﺸﻜﻞ اﻟﺒﯿﺎﻧﺎت ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ
ﺗﺤﻠﻮ ﻟﻨﺎ .
أو ﻗﺮرﻧﺎ ﻋﺪم اﺣﺘﯿﺎﺟﻨﺎ ﻟﻤﺮوﻧﺔ اﻛﺒﺮ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻓﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﺸﻔﺮة ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﺎﻟﯿﺔ .
أﻧﺖ ﺣﺮ ﻓﻲ ﻃﺮﻳﻘﺔ ﺗﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت .ﻳﺘﻮﻗﻒ ذﻟﻚ ﻋﻠﻰ اﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ ﺗﻤﻜﻦ ﺑﺮاﻣﺠﻨﺎ ﻣﻦ اﺳﺘﺨﺪام ھﺬه اﻟﺒﯿﺎﻧﺎت .
أﻣﺎ إذا أردت اﺳﺘﺨﺪام اﻟﻤﺮوﻧﺔ اﻟﻤﺘﻮاﻓﺮة xmlﻓﯿﻤﻜﻨﻚ اﻟﻘﯿﺎم ﺑﺬﻟﻚ .ﻓﺎﺧﺘﺎر ﻣﺎ ﻳﻨﺎﺳﺐ اﺣﺘﯿﺎﺟﺎﺗﻚ .
ﻣﻦ ھﻨﺎ ﺟﺎءت ﺗﺴﻤﯿﺔ ھﺬه اﻟﻠﻐﺔ ﺑﺎﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻊ أو Extensibleﻓﺎن أي ﺷﺨﺺ ﻳﺴﺘﻄﯿﻊ ﺗﺮﻣﯿﺰ اﻟﺒﯿﺎﻧﺎت
ﻧﻔﺴﮫﺎ ﺑﺄي ﻃﺮﻳﻘﺔ ﺑﺎﺳﺘﺨﺪام ھﺬه اﻟﻠﻐﺔ .
وﻟﻜﻦ ﻳﺠﺐ أن ﻧﺄﺧﺬ ﺑﺎﻟﺤﺴﺒﺎن أﻧﻪ ﺗﻜﻤﻦ اﻻﺳﺘﻔﺎدة اﻟﺤﻘﯿﻘﯿ ﺔ ﻣﻦ ﻟﻐﺔ XMLﻋﻨﺪﻣﺎ ﻳﺴﺘﺨﺪم اﻷﺷﺨﺎص ﻧﻔﺲ
اﻟﮫﯿﺌﺔ ﻟﺘﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت اﻟﺸﺎﺋﻌﺔ ﻻن ذﻟﻚ ﺳﯿﺴﻤﺢ ﺑﺘﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت ﺑﺼﻮرة اﻛﺒﺮ واﺳﮫﻞ .
ھﻨﺎك ﻓﻌﻼ اﻟﻌﯿﺪ ﻣﻦ اﻟﻤﺸﺎرﻳﻊ ﻟﻠﻮﺻﻮل إﻟﻰ ﻣﻔﺮدات ﻗﯿﺎﺳﯿﺔ ﻷﻧﻮاع اﻟﺒﯿﺎﻧﺎت اﻟﺸﺎﺋﻌﺔ اﻻﺳﺘﺨﺪام .ﻓﻌﻼ ﺳﺒﯿﻞ
اﻟﻤﺜﺎل ﻟﻐﺔ اﻟﺮﺳﻮﻣﯿﺎت اﻟﺸﻌﺎﻋﯿﺔ اﻟﻘﺎﺑﻠﺔ ﻟﻠﺘﻮﺳﻊ Scalable Vector Graphicsأو SVGوھﻰ ﻣﻔﺮدات XML
اﻟﺘﻲ ﺗﻤﺜﻞ ﻗﺎﻋﺪة أﺳﺎﺳﯿﺔ ﻟﺘﻤﺜﯿﻞ اﻟﺮﺳﻮﻣﯿﺎت ﺛﻨﺎﺋﯿﺔ اﻟﺒﻌﺪ .
وﻟﻐﺔ MathMLوھﻰ ﻣﻔﺮدات XMLﻟﻮﺻﻒ اﻟﺮﻳﺎﺿﯿﺎت ﻛﻘﺎﻋﺪة أﺳﺎﺳﯿﺔ ﻻﺗﺼﺎل اﻵﻻت ﺑﺒﻌﻀﮫﺎ اﻟﺒﻌﺾ .
وﻟﻐﺔ اﻟﺘﺮﻣﯿﺰ اﻟﻜﯿﻤﯿﺎﺋﯿﺔ Chemical Markup Languageأو CMLھﻲ ﻣﻔﺮدات XMLﻷداره اﻟﻤﻌﻠﻮﻣﺎت اﻟﻜﯿﻤﯿﺎﺋﯿﺔ
وأﻳﻀﺎ ﻟﻐﺔ WMLوھﻰ ﻟﻐﺔ ﺗﺮﻣﯿﺰ اﻟﻼﺳﻠﻜﻲ واﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﺑﻨﺎء ﻣﻮاﻗﻊ ﻳﻤﻜﻦ ﺗﺼﻔﺤﮫﺎ ﺑﺎﺳﺘﺨﺪام اﻟﮫﻮاﺗﻒ
اﻟﺨﻠﻮﻳﺔ
12
وھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﻔﺮدات اﻟﻤﺘﺨﺼﺼﺔ ﻓﻲ ﻣﺠﺎﻻت أﺧﺮى ﺗﺠﻌﻞ ﻣﻦ ﻛﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام 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ذاﺗﮫﺎ ﻓﻲ أﻛﺜﺮ ﻣﻦ ﺑﺮﻧﺎﻣﺞ وﻛﻞ ﺑﺮﻧﺎﻣﺞ ﻣﺒﺮﻣﺞ
ﺑﻠﻐﺔ ﻣﺨﺘﻠﻔﺔ
14
اﻟﺪرس اﻟﺜﺎﻟﺚ
ﺗﻘﻨﯿﺔ XMLھﻲ ﺗﻘﻨﯿﺔ ﺣﺪﻳﺜﺔ وﻓﻰ دور اﻟﺘﻄﻮﻳﺮ ﺣﺎﻟﯿﺎ وھﻰ ﻛﻤﺎ ﻋﺮﺿﻨﮫﺎ ﺳﺎﺑﻘﺎ ﻓﻲ ھﺬه اﻟﺴﻠﺴﻠﺔ وﻋﺮﻓﻨﺎ ﻣﺎ
ھﻲ . XMLﺳﻮف ﻧﻮﺿﺢ ھﻨﺎ ﻣﺎ اﻟﺬي ﺗﻘﺪﻣﻪ ﻟﻨﺎ ھﺬه اﻟﻠﻐﺔ .
ﺗﻌﺮﻓﻨﺎ ﺳﺎﺑﻘﺎ أن ﻟﺒﻨﺎء ﻣﺴﺘﻨﺪات XMLﻳﺠﺐ ﻋﻠﯿﻨﺎ ﻣﻌﺮﻓﺔ أﺷﯿﺎء وﺗﻌﻠﯿﻤﺎت ﻛﺜﯿﺮة .ﻓﻠﻤﺎذا ﻧﺴﺘﺨﺪم ﻛﻞ ھﺬه
اﻷﻣﻮر .أﻟﯿﺲ ﻣﻦ اﻟﺴﮫﻞ وﺿﻊ ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ ﻟﻤﺜﺎل ﻣﺴﺘﻨﺪ اﻷﺳﻤﺎء اﻟﺴﺎﺑﻖ ﺷﺮﺣﻪ ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ .
وﻧﻀﻊ ﺑﻌﺾ اﻟﻤﻌﺎﻳﯿﺮ ﻟﺬﻟﻚ ﻓﻤﺜﻼ ﻳﻤﻜﻨﻨﺎ اﻟﻘﻮل أن اﻻﺳﻢ اﻷول ﻳﺒﺪأ ﻋﻨﺪ ﺑﺪاﻳﺔ اﻟﻤﻠﻒ ،واﻻﺳﻢ اﻷﺧﯿﺮ ﻳﺄﺗﻲ ﺑﻌﺪ
اﻟﻔﺮاغ اﻷول .ﺑﮫﺬه اﻟﻄﺮﻳﻘﺔ ﻳﻤﻜﻦ ﻟﺘﻄﺒﯿﻘﻨﺎ أن ﻳﻘﺮا ﺑﯿﺎﻧﺎت اﻻﺳﻢ اﻷول ﺑﺼﻮرة ﻣﻨﻔﺼﻠﺔ ﻋﻦ اﻻﺳﻢ اﻷﺧﯿﺮ .
وﻟﺘﻮﺿﯿﺢ ذﻟﻚ :ﻟﻨﻔﺘﺮض إﻧﻨﺎ ﻧﺮﻳﺪ إﺿﺎﻓﺔ اﻻﺳﻢ اﻷوﺳﻂ ﻟﻤﺜﺎﻟﻨﺎ ﻓﯿﺼﺒﺢ ھﻜﺬا .
وأﻳﻀﺎ ﻋﻨﺪ إﺿﺎﻓﺔ ھﺬه اﻟﻌﻤﻠﯿﺔ ﻻ ﻳﻮﺟﺪ إي ﻣﺸﻜﻼت .ﻳﻤﻜﻨﻨﺎ ﺗﻌﺪﻳﻞ اﻟﻘﺎﻧﻮن اﻟﺴﺎﺑﻖ ﺑﺤﯿﺚ إن ﻛﻞ ﺷﻲ ﻳﺄﺗﻲ
ﺑﻌﺪ اﻟﻔﺮاغ اﻷول وﻗﺒﻞ اﻟﻔﺮاغ اﻟﺜﺎﻧﻲ ﻳﻤﺜﻞ اﻻﺳﻢ اﻷوﺳﻂ ،وﻣﺎ ﻳﺄﺗﻲ ﺑﻌﺪ اﻟﻔﺮاغ اﻟﺜﺎﻧﻲ ﻳﻤﺜﻞ اﻻﺳﻢ اﻷﺧﯿﺮ .
إﻟﻰ اﻵن ﻳﻤﻜﻨﻨﺎ ﺗﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام ھﺬا اﻟﻘﺎﻧﻮن وﺗﻨﻔﯿﺬه ﺑﺮﻣﺠﯿﺎ ،وﻟﻜﻦ ﻣﺎذا ﻟﻮ ﻗﺎﺑﻠﻨﺎ اﺳﻢ ﻛﺎﻟﺘﺎﻟﻲ .
اﻵن ﻟﺪﻳﻨﺎ اﺳﻤﯿﻦ أوﺳﻄﯿﻦ .ھﻨﺎ ﻳﺼﺒﺢ اﻟﻘﺎﻧﻮن اﻛﺜﺮ ﺗﻌﻘﯿﺪا وﻋﻠﻤﺎ إن اﻟﺒﺸﺮ ﺗﺴﺘﻄﯿﻊ ﺗﻤﯿﺰ اﻻﺳﻢ اﻷوﺳﻂ ﻣﻦ
اﻻﺳﻢ اﻷول ﻣﻦ اﻻﺳﻢ اﻷﺧﯿﺮ ﺑﺴﮫﻮﻟﺔ ﻓﺎﻧﻪ ﻣﻦ اﻟﺼﻌﺐ ﺑﺮﻣﺠﺔ ذﻟﻚ ﺑﻄﺮﻳﻘﺔ ﻣﻨﻄﻘﯿﺔ ﺑﺤﯿﺚ ﻳﻤﻜﻦ اﻟﺤﺎﺳﺐ ﻣﻦ
ﺗﻤﯿﺰ ذﻟﻚ ﺑﺴﮫﻮﻟﺔ .
ﻟﻸﺳﻒ ﻓﺎن ﻣﻌﻈﻢ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻋﻨﺪﻣﺎ ﻳﻮاﺟﮫﻮن ﻣﺸﻜﻠﻪ ﻣﻦ ھﺬا اﻟﻨﻮع ﻳﺘﺼﺮﻓﻮن ﻟﻮﺿﻊ ﻗﻮاﻧﯿﻦ ﺻﺎرﻣﺔ ﺑﺪﻻ ﻣﻦ
اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﻘﺪة ﻛﻤﺎ ھﻲ .ﻓﺎﻟﻤﺸﻜﻠﺔ اﻷﺳﻤﺎء ﻛﻤﺎ ﺳﺒﻖ ﻳﻤﻜﻦ ﻟﻤﻄﻮري اﻟﺒﺮاﻣﺞ أن ﻳﻘﺮروا أن
ﻟﻠﺸﺨﺺ اﻟﻮاﺣﺪ اﺳﻢ أوﺳﻂ واﺣﺪا ﻓﻘﻂ وﻻ ﻳﻤﻜﻦ ﻟﻠﺘﻄﺒﯿﻖ ﻗﺒﻮل أﻛﺜﺮ ﻣﻦ ذﻟﻚ .
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ﻓﻲ اﻟﺘﻄﺒﯿﻘﺎت ﺑﻤﺨﺘﻠﻒ أﻧﻮاﻋﮫﺎ ﻟﻜﻮﻧﮫﺎ ﻣﻠﻔﺎت ﻧﺼﯿﺔ ﺗﺤﻮي data and
،metadataﻋﻼوةً ﻋﻠﻰ إﻣﻜﺎﻧﯿﺔ اﻋﺘﺒﺎرھﺎ small databaseﺗﺤﻞ ﻣﺸﺎﻛﻞ ﻛﺜﯿﺮ ﻣﻘﺎرﻧﺔ ﺑﻨﻈﯿﺮاﺗﮫﺎ اﻟﻜﺒﯿﺮة
وﻏﯿﺮ ذﻟﻚ اﻟﻜﺜﯿﺮ ﻳﻠﺤﻖ اﻟـ xmlﻓﻲ ﺑﯿﺌﺔ .netﻳﻜﻔﻲ أن ﻧﻌﺮف أن ﻛﻞ ھﺬه اﻟﺒﯿﺌﺔ ﻗﺎﺋﻤﺔ ﻋﻠﻰ ھﺬه اﻟﺘﻘﻨﯿﺔ وأن
اﻟﻮﻳﻨﺪوز اﻟﺠﺪﻳﺪ longhornﻗﺎﺋﻢ ﻋﻠﯿﮫﺎ أﻳﻀﺎً ﻛﻮﺳﻂ اﻧﺘﻘﺎل اﻟﺒﯿﺎﻧﺎت.
وﻧﻔﺲ اﻟﺸﺊ ﺑﺎﻟﻨﺴﺒﺔ ﻟﺒﺮﻣﺠﺔ اﻟﻮﻳﺐxml ،اﻣﻜﺎﻧﯿﺎﺗﮫﺎ ﻛﺜﯿﺮةً أﻳﻀﺎً
ﻓﮫﻰ) ﻟﻐﺔ اﻟﺤﻠﻮل ( Solutions Language
17
اﻟﺪرس اﻟﺮاﺑﻊ
ﺳﻨﻨﺎﻗﺶ اﻟﯿﻮم اﻟﺘﺮﻛﯿﺐ اﻟﮫﺮﻣﻲ اﻟﺬي ﻳﻜﻮن ﻣﺴﺘﻨﺪات XMLوﻛﯿﻔﯿﺔ ﺑﻨﺎء اﻟﺒﯿﺎﻧﺎت وﻛﯿﻔﯿﺔ ﺗﻤﺜﯿﻠﮫﺎ ﻓﻲ ﻣﺴﺘﻨﺪ
XML
ﻋﻨﺪﻣﺎ ﻧﻜﻮن أﻣﺎم ﻛﻤﯿﺔ ﻣﻌﻠﻮﻣﺎت ﺿﺨﻤﺔ أو ﺣﺘﻰ ﻣﺘﻮﺳﻄﺔ اﻟﺤﺠﻢ ﻓﻤﻦ اﻷﻓﻀﻞ ﺗﺠﻤﯿﻊ ھﺬه -
اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﻨﺘﻤﻲ إﻟﻰ ﻣﻮﺿﻮع واﺣﺪ ﻣﻊ ﺑﻌﻀﮫﺎ اﻟﺒﻌﺾ ﺑﺪل ﻣﻦ ﺗﻤﺜﯿﻠﮫﺎ ﻛﻤﺎ ھﻲ .
ﻣﺜﻼ ھﺬه اﻟﻤﻨﺘﺪى ﻣﺠﺰأ إﻟﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﻗﺴﺎم واﻟﻤﻮاﺿﯿﻊ اﻟﻔﺮﻋﯿﺔ اﻟﺘﻲ ﺗﺘﺒﻊ ﻣﻮﺿﻮﻋﺎت ﻓﺮﻋﯿﺔ واﻟﺘﻲ ﺗﺘﺒﻊ
ﺑﺪورھﺎ ﻣﻮاﺿﯿﻊ رﺋﯿﺴﯿﻪ ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﺗﻘﺴﯿﻢ اﻟﻤﻮﺿﻮع اﻟﻮاﺣﺪ إﻟﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻔﻘﺮات وھﻰ ﻋﺒﺎرة ﻋﻦ ردود
اﻷﻋﻀﺎء .ﻓﺬﻟﻚ ﻳﺴﮫﻞ ﻣﻦ ﻋﻤﻠﯿﺔ اﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت .
ﻓﻨﺠﺪ ﻣﻄﻮري اﻟﺒﺮﻣﺠﯿﺎت ﺗﺴﺘﺨﺪم ھﺬا اﻟﻨﻤﻮذج ﻣﻨﺬ ﺳﻨﻮات ﻋﺪة ﺑﺎﺳﺘﺨﺪام ﺑﻨﯿﺔ ﺑﯿﻨﺎت ﺗﺴﻤﻰ Object
modelأو ﻧﻤﻮذج اﻟﻜﺎﺋﻦ وھﻰ ﻣﺮﺗﺒﻄﺔ ﻣﻊ ﺑﻌﻀﮫﺎ ﺑﺘﺴﻠﺴﻞ ھﺮﻣﻲ .أﻳﻀﺎ ﻓﻲ ﻟﻐﺔ XMLﺗﺠﻤﻊ اﻟﺒﯿﻨﺎت ﻓﻲ
ﺗﺴﻠﺴﻞ ھﺮﻣﻲ ﻓﺎﻟﺒﻨﻮد ﻓﻲ اﻟﻤﺴﺘﻨﺪ ﺗﺘﺒﻊ ﺑﻌﻀﮫﺎ اﻟﺒﻌﺾ ﺑﻌﻼﻗﺎت Parent / Childأو اﻷب /اﻻﺑﻦ .
ﻧﺄﺧﺬ ﻣﺜﺎل اﻻﺳﻢ اﻟﺴﺎﺑﻖ ﺷﺮﺣﻪ وﻧﻤﺜﻠﻪ ﺑﻄﺮﻳﻘﺔ ھﺮﻣﯿﺔ ﻛﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ.
ﻧﻼﺣﻆ أن اﻟﺒﻨﺪ > < 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ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل .
ﻧﺮﺟﻮ أن ﺗﻜﻮﻧﻮا ﺗﻔﮫﻤﺘﻢ ﻛﯿﻔﯿﺔ اﻟﺘﻤﺜﯿﻞ اﻟﮫﺮﻣﻲ ﻟﻠﺒﻨﻮد واﻟﻌﻼﻣﺎت ﻓﯿﻤﺎ ﺑﯿﻨﮫﻤﺎ ﻓﺄﻧﻚ ﺣﯿﻨﻤﺎ ﺗﻔﮫﻢ ذﻟﻚ ﺳﺘﺘﻤﻜﻦ
ﻣﻦ ﻓﮫﻢ ﻃﺒﯿﻌﺔ ﻟﻐﺔ XML
19
ﻣﻨﮫﺠﯿﺔ ﻋﻤﻞ XMLوﻗﻮاﻋﺪھﺎ - :
اﻟﻼﺣﻘﺔ أو ﻣﺎ ﻳﻄﻠﻖ ﻋﻠﯿﮫﺎ اﻟﺒﻌﺾ واﻟﻮﺳﻢ ) (Tagھﻲ ﻋﺒﺎرة ﻋﻦ ﻛﻠﻤﺔ أو ﻣﺼﻄﻠﺢ ﻣﻮﺿﻮع ﺑﯿﻦ رﻣﺰي إﺣﺎﻃﺔ
> < ﻳﻤﺜﻞ رﻣﺰا ﻣﻌﺮﻓﺎ ﻟﺘﻨﺴﯿﻖ ﻣﺎ وذﻟﻚ ﻓﻲ ﻣﺴﺘﻨﺪات HTMLﺑﯿﻨﻤﺎ ﻳﻤﺜﻞ اﺳﻤﺎ ﻟﻌﻨﺼﺮ Elementsﻓﻲ
ﻣﺴﺘﻨﺪات XML
ﻣﺜﻞ ....
وﻛﻤﺎ ﺗﻼﺣﻆ ﻓﺎن اﻟـ Tagﺗﺄﺧﺬ اﻟﻄﺎﺑﻊ اﻟﺰوﺟﻲ ﻓﻜﻞ ﻻﺣﻘﺔ ﻟﮫﺎ ﻻﺣﻘﺔ ﻣﻘﺎﺑﻠﻪ ﻟﮫﺎ ﺗﻌﺮف اﻷوﻟﻰ ﻻﺣﻘﺔ اﻟﺒﺪاﻳﺔ
Start Tagوﺗﻌﺮف اﻟﺜﺎﻧﯿﺔ ﺑﻼﺣﻘﺔ اﻟﻨﮫﺎﻳﺔ . End Tagاﻻﺧﺘﻼف ﺑﯿﻦ اﻻﺛﻨﯿﻦ ھﻮ أن ﻻﺣﻘﺔ اﻟﻨﮫﺎﻳﺔ ﺗﺤﺘﻮى ﻋﻠﻰ
اﻟﺮﻣﺰ “. ”/
ﻓﻲ XMLﺟﻤﯿﻊ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﻮﺟﻮدة ﺑﯿﻦ ﻻﺣﻘﺔ اﻟﺒﺪاﻳﺔ وﻻﺣﻘﺔ اﻟﻨﮫﺎﻳﺔ ﻧﺴﻤﻰ ﺑﺎﻟﻌﻨﺎﺻﺮ Elementوﺑﺎﻟﺘﺎﻟﻲ
ﻓﺎن .
Element Content
اﻟﻨﺺ اﻟﻮاﻗﻊ ﺑﯿﻦ ﻻﺣﻘﺔ اﻟﺒﺪاﻳﺔ وﻻﺣﻘﺔ اﻟﻨﮫﺎﻳﺔ ﻳﺴﻤﻰ ﺑﻤﺤﺘﻮى اﻟﻌﻨﺼﺮ Element content
PCDATA
اﻟﻤﺤﺘﻮى اﻟﻮاﻗﻊ ﺑﯿﻦ ﻻﺣﻘﺘﯿﻦ ﻋﺒﺎرة ﻋﻦ ﺑﯿﺎﻧﺎت وﻳﻌﺮف ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﺑﺒﯿﺎﻧﺎت اﻟﺮﻣﺰ اﻟﻤﻌﺮب PCDATAوذﻟﻚ إذا
اﺣﺘﻮى ھﺬه اﻟﻌﻨﺼﺮ ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻧﺼﯿﺔ ﻣﺜﻞ اﻟﻌﻨﺼﺮ > < middleﻓﮫﻮ PCDATA
Root Element
اﻟﻤﺴﺘﻨﺪ ﻛﻜﻞ ﺑﺪء ﺑﺎﻟﻼﺣﻘﺔ > < nameواﻧﺘﮫﺎء ﺑﺎﻟﻼﺣﻘﺔ> < /nameﻓﮫﻮ ﻳﻤﺜﻞ ﻋﻨﺼﺮ ﻳﺤﺘﻮى ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ
ﻣﻦ اﻟﻌﻨﺎﺻﺮ وھﻨﺎ ﻧﻄﻠﻖ ﻋﻠﯿﻪ ﻋﻨﺼﺮ اﻟﺠﺬرRoot Element
20
ﻗﻮاﻧﯿﻦ اﻟﻌﻨﺎﺻﺮ
ﻳﺠﺐ ﻋﻠﻰ ﻣﺴﺘﻨﺪات XMLاﻟﺨﻀﻮع ﻟﮫﺬه اﻟﻘﻮاﻧﯿﻦ ﻛﻲ ﺗﺸﻜﻞ ﻓﻌﻠﯿﺎ ﻣﺴﺘﻨﺪات XMLﻣﺤﻜﻤﺔ اﻟﮫﯿﺌﺔ Well-
formed XML Documents
ﻟﻐﺔ XMLﺗﻮﻓﺮ ﻟﻚ اﻟﺤﺮﻳﺔ ﻓﻲ ﺗﺴﻤﯿﺔ اﻟﻌﻨﺎﺻﺮ ﻓﮫﻲ ﻻ ﺗﺤﺘﻮى ﻋﻠﻰ أﺳﻤﺎء ﻣﺤﺠﻮزة ﻛﻤﺎ ﻓﻲ ﻣﻌﻈﻢ اﻟﻠﻐﺎت ،
ﻓﮫﻲ ﻟﺪﻳﮫﺎ ﻣﺮوﻧﺔ ﻛﺒﯿﺮة ﻓﻲ اﺧﺘﯿﺎر اﻷﺳﻤﺎء .وﻟﻜﻦ ﻳﻮﺟﺪ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻮاﻧﯿﻦ اﻟﺘﻲ ﻳﺠﺐ ﻣﺮاﻋﺎﺗﮫﺎ -:
ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺒﺪأ ﺑﺄﺣﺮف ﻻﺗﯿﻨﯿﺔ أو ﻏﯿﺮ ﻻﺗﯿﻨﯿﺔ أو أن ﺗﺒﺪأ ﺑﺎﻟﺮﻣﺰ (_)underscoreوﻟﻜﻦ ﻻ ﻳﻤﻜﻦ -
أن ﺗﺒﺪأ ﺑﺮﻗﻢ أو ﺑﻌﻼﻣﺔ ﺗﺮﻗﯿﻢ .
ﺑﻌﺪ اﻟﺤﺮف اﻷول ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺤﺘﻮى ﻋﻠﻰ أرﻗﺎم ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ اﻟﺮﻣﺰﻳﻦ " _ " و " " . -
ﻻ ﻳﻤﻜﻦ ﻟﻸﺳﻤﺎء أن ﺗﺒﺪأ ﺑﺎﻷﺣﺮف XMLﺳﻮاء ﻛﺎﻧﺖ ﺑﺄﺣﺮف ﺻﻐﯿﺮة أو ﻛﺒﯿﺮة . -
ﻻ ﻳﻤﻜﻦ أن ﻳﻜﻮن ھﻨﺎك ﻓﺮاغ ﺑﯿﻦ ﻗﻮس اﻹﺣﺎﻃﺔ اﻟﻤﻔﺘﻮح > وﺑﯿﻦ اﺳﻢ اﻟﻌﻨﺼﺮ -
Attributes (2اﻟﺼﻔﺎت
أن ﻣﺴﺘﻨﺪات XMLﻳﻤﻜﻦ أن ﺗﺘﻀﻤﻦ ﺻﻔﺎت أو ﺳﻤﺎت ﻣﻌﯿﻨﺔ attributesاﻟﺼﻔﺎت ﻋﺒﺎرة ﻋﻦ اﺳﻢ ﻣﻌﯿﻦ ﺗﺴﻨﺪ
ﻟﻪ ﻗﯿﻤﺔ ﻣﻌﯿﻨﺔ ﺑﺤﯿﺚ ﻳﺮﺗﺒﻂ ذﻟﻚ اﻻﺳﻢ وﺗﻠﻚ اﻟﻘﯿﻤﺔ ﺑﻌﻨﺼﺮ ﻣﻌﯿﻦ ﻓﻲ ﻣﺴﺘﻨﺪ . XML
ﻣﺜﻞ ..
21
ﻳﺠﺐ أن ﺗﺤﺘﻮى اﻟﺼﻔﺎت ﻋﻠﻰ ﻗﯿﻢ وﻳﺠﺐ أن ﺗﻜﻮن ھﺬه اﻟﻘﯿﻢ واﻗﻌﺔ ﺑﯿﻦ ﻋﻼﻣﺘﻲ اﻗﺘﺒﺎس وﻻ ﻳﺸﺘﺮط أن ﺗﻜﻮن
ﻋﻼﻣﺔ اﻻﻗﺘﺒﺎس ﻣﻔﺮدة أو ﻣﺰدوﺟﺔ .
ﻳﻤﻜﻦ ﻟﻠﺼﻔﺎت أن ﺗﻘﺪم ﺑﯿﺎﻧﺎت وﺻﻔﯿﺔ Metadataواﻟﺘﻲ ﻳﻤﻜﻦ أن ﻻ ﺗﻜﻮن وﺛﯿﻘﺔ اﻟﺼﻠﺔ ﺑﻤﻌﻈﻢ اﻟﺘﻄﺒﯿﻘﺎت اﻟﺘﻲ
ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺴﺘﻨﺪات XML
ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل إذا ﻋﻠﻤﻨﺎ أن ﺑﻌﺾ اﻟﺘﻄﺒﯿﻘﺎت ﻳﻤﻜﻦ أن ﺗﮫﺘﻢ ﺑﺎﻻﺳﻢ اﻟﻤﺴﺘﻌﺎر Nicknameوﻟﻜﻦ ﻣﻌﻈﻢ
اﻟﺘﻄﺒﯿﻘﺎت ﻻ ﺗﮫﺘﻢ ﺑﮫﺬه اﻟﻤﻌﻠﻮﻣﺎت ﻓﺎن اﺳﺘﺨﺪام ھﺬه اﻟﻤﻌﻠﻮﻣﺎت ﻛﺼﻔﺔ ﺳﯿﻜﻮن ذا ﻣﻌﻨﻰ .
ﻣﺜﺎل ..
أﻳﻀﺎ ،،،
اﻟﺴﺒﺐ ﻳﺮﺟﻊ إﻟﻰ أن ﺑﻌﺾ اﻷﺷﺨﺎص ﻳﺠﺪون أن اﺳﺘﺨﺪام اﻟﺼﻔﺎت ﺗﺴﮫﻞ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻓﺎﻧﻚ ﻻ ﺗﺤﺘﺎج
إﻟﻰ اﻻھﺘﻤﺎم ﺑﺪرﺟﺔ ﺗﻌﺸﯿﺶ اﻟﻌﻨﺎﺻﺮ وﻻ ﺗﺤﺘﺎج ﻟﻠﻘﻠﻖ ﺣﻮل اﻟﻤﻌﺮﻓﺎت اﻟﻤﺘﺪاﺧﻠﺔ.
ﻓﯿﻤﺎ أن اﻟﺒﻌﺾ اﻵﺧﺮ ﻳﺮى إن ﻋﻤﻠﯿﺔ ﺗﺪاﺧﻞ وﺗﻌﺸﯿﺶ اﻟﻌﻨﺎﺻﺮ ﺳﮫﻞ .
ﻣﺠﻤﻮﻋﺔ أﺧﺮى ﺗﺮى أن اﻟﺼﻔﺎت ﺗﺴﺘﮫﻠﻚ ﻣﺴﺎﺣﺔ اﻗﻞ ﺑﻜﺜﯿﺮ ﻣﻦ اﻟﻌﻨﺎﺻﺮ .ﻓﻤﺜﻼ اﻟﻤﺜﺎل اﻷول ﻟﻮ ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺘﻪ
ﺑﻮاﺳﻄﺔ اﻟﺼﻔﺎت ﺳﯿﻜﻮن ﺑﮫﺬا اﻟﺸﻜﻞ .
ﻓﻲ اﻟﻨﮫﺎﻳﺔ ﻧﻘﻮل إن ﻋﻤﻠﯿﺔ أﻓﻀﻠﯿﺔ اﻟﺼﻔﺎت ﻋﻦ اﻟﻌﻨﺎﺻﺮ أو اﻟﻌﻨﺎﺻﺮ ﻋﻦ اﻟﺼﻔﺎت ﺗﻌﻮد ﻋﻠﻰ اﺧﺘﯿﺎر -
اﻟﺸﺨﺺ وﻋﻠﻰ أﺳﻠﻮﺑﻪ .ﻓﺎﺧﺘﺎر ﻣﻨﮫﻢ ﻣﺎ ﻳﺸﻌﺮك ﺑﺎﻻرﺗﯿﺎح .
22
Comments (3اﻟﺘﻌﻠﯿﻘﺎت
ھﻲ ﻋﺒﺎرة ﻋﻦ إﺿﺎﻓﺔ اﻟﻨﺼﻮص اﻟﺘﻲ ﻻ ﺗﺸﻜﻞ ﺟﺰءا ﻣﻦ اﻟﻤﺴﺘﻦ و إﻧﻤﺎ ﺗﺨﺺ اﻟﺸﺨﺺ اﻟﺬي ﻳﻘﺮاء ﺷﻔﺮة
XMLﻧﻔﺴﮫﺎ .
إذ ﺻﺎدف ﻟﻚ وﺗﻌﺎﻣﻠﺖ ﻣﻦ ﻗﺒﻞ ﻣﻊ أي ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻓﺎﻧﻚ ﺗﻌﺮف ﺗﻤﺎﻣﺎ ﻣﺎذا ﺗﻌﻨﻰ ﺑﺎﻟﺘﻌﻠﯿﻘﺎت .
وھﻰ ﺗﺴﺘﺨﺪم ﻟﻮﺿﻊ ﺑﮫﺎ ﺗﻌﻠﯿﻘﺎت ﺗﺼﻒ ﺑﻌﺾ اﻟﻔﻘﺮات و اﻻﻛﻮاد ﻟﻜﻲ ﺗﺴﺎﻋﺪك ﻓﻲ ﻓﮫﻢ ﺷﻔﺮه ﻣﺴﺘﻨﺪات
XML
وﻟﻜﻨﮫﺎ ﻟﯿﺴﺖ ﻣﮫﻤﺔ ﺑﺎﻟﺪرﺟﺔ ﻣﺜﻠﻤﺎ ﻓﻲ إي ﻟﻐﺔ ﺑﺮﻣﺠﺔ أﺧﺮي ﺣﯿﺚ أن ﻟﻐﺔ XMLﻟﻐﺔ ﺗﺼﻒ اﻟﺒﯿﻨﺎت إي أﻧﮫﺎ
ذاﺗﯿﺔ اﻟﻮﺻﻒ ﺗﺴﺎﻋﺪك ﻋﻠﻰ ﻓﮫﻤﮫﺎ .
ﺗﺒﺪأ اﻟﺘﻌﻠﯿﻘﺎت ﺑﺎﻟﺮﻣﺰ > !— وﺗﻨﺘﮫﻲ ﺑﺎﻟﺮﻣﺰ < --ﻣﺜﻞ اﻟﺘﻌﻠﯿﻘﺎت ﻓﻲ HTML
ﻣﺜﻼ ..
ﻓﻤﺜﻼ ...
ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﺗﻘﺪم ﻟﻚ XMLاﻟﺤﻞ اﻷﻓﻀﻞ واﻟﺒﺪﻳﻞ اﻟﺬي ﺗﻜﻮن ﻓﯿﻪ ﻻ ﺗﺤﺘﺎج إﻟﻰ ﻣﻌﺮف ﻧﮫﺎﻳﺔ End Tag
ﻓﺘﻜﺘﺐ ﺑﮫﺬا اﻟﺸﻜﻞ
>< last/
ﻋﻠﻰ أن ﻳﻜﻮن اﻟﻌﻨﺼﺮ ﺛﻢ اﻟﺮﻣﺰ " "/ﺑﺪون ﻻﺣﻘﺔ اﻟﻨﮫﺎﻳﺔ اﻟﻤﻌﺘﺎدة وھﻰ اﻟﺤﺎﻟﺔ اﻟﻮﺣﯿﺪة اﻟﺘﻲ ﻻ ﺗﺴﺘﺨﺪم ﻓﯿﮫﺎ
ﻟﻮاﺣﻖ اﻟﻨﮫﺎﻳﺎت .
وﻟﻮ أﺟﺮﻳﺖ ﺗﺠﺮﺑﺔ ﺑﺴﯿﻄﺔ داﺧﻞ ﻣﻌﺮب XMLاﻟﻤﺪﻣﺠﺔ ﺑﻤﺘﺼﻔﺢ إﻧﺘﺮﻧﺖ اﻛﺴﺒﻠﻮرر 5.5وﻛﺘﺒﺖ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ
23
أﻧﮫﺎ ﺳﻮف ﺗﻈﮫﺮ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
ﺗﻌﺪ اﻟﺘﺼﺎرﻳﺢ ﻓﻲ ﺗﻌﺮﻳﻒ ﻣﺴﺘﻨﺪات XMLﺑﺄﻧﮫﺎ ﺗﺘﺒﻊ ﻧﻮﻋﺎ ﻣﻌﯿﻨﺎ ﺑﺎﻹﺿﺎﻓﺔ إﻟﻲ إﻋﻄﺎء اﻟﻤﻌﺮب اﻟﺘﻌﻠﯿﻤﺎت اﻷﺧﺮى
وھﻮ ﻳﺠﺐ أن ﻳﻜﻮن ﻓﻲ ﺑﺪاﻳﺔ ﻣﺴﺘﻨﺪات XMLوﻟﯿﺲ ﻣﻌﻨﻰ ﻋﺪم وﺟﻮده ﻳﺴﺒﺐ اﻟﺨﻄﺄ وﻟﻜﻦ اﻷﻓﻀﻞ ﺗﻌﺮﻳﻒ
اﻟﻤﺴﺘﻨﺪات .
?<
إذا أﺿﻔﺖ ﺗﺼﺮﻳﺢ XMLﻳﺠﺐ أن ﺗﻀﯿﻒ أﻳﻀﺎ اﻟﺼﻔﺔ versionأﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺼﻔﺘﯿﻦ Encodingو -
Standalongeﺑﮫﺬا اﻟﺘﺮﺗﯿﺐ .
ﺣﺎﻟﯿﺎ ﻓﺎن اﻹﺻﺪار Versionﻳﺠﺐ أن ﻳﻜﻮن ﻳﺤﻮى اﻟﻘﯿﻤﺔ 1.0إذا ﻗﻤﺖ ﺑﻮﺿﻊ رﻗﻢ ﻏﯿﺮ ھﺬا اﻟﺮﻗﻢ ﻓﺎن -
XMLاﻟﻤﻜﺘﻮب ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻮاﺻﻔﺎت XMLاﻹﺻﺪار 1.0ﺳﺘﺮﻓﺾ اﻟﻤﺴﺘﻨﺪ .
ﻳﺠﺐ أن ﻳﺄﺗﻲ ھﺬا اﻟﺘﺼﺮﻳﺢ ﻓﻲ أول ﺳﻄﺮ ﻓﻲ ﻣﺴﺘﻨﺪ XMLﻛﻤﺎ ذﻛﺮﻧﺎ . -
24
ﺻﻔﺔ اﻟﺘﺸﻔﯿﺮ ، Encoding Attributesﻟﻮ رﺟﻌﻨﺎ إﻟﻰ درﺳﻨﺎ اﻷول ﻓﻲ ھﺬه اﻟﺴﻠﺴﻠﺔ واﻟﺬي ﺗﺤﺪﺛﻨﺎ ﻓﯿﻪ ﻋﻦ
اﻟﺒﯿﺎﻧﺎت وأﻧﻮاﻋﮫﺎ ﻓﻼ ﺗﺴﺘﻐﺮب إذا ﻋﺮﻓﺖ أن اﻟﻨﺼﻮص ﺗﺨﺰن ﻓﻲ اﻟﺤﺎﺳﺐ ﻋﻠﻰ ﺷﻜﻞ أرﻗﺎم ﺑﺎﻋﺘﺒﺎر أن اﻷرﻗﺎم
ھﻲ اﻟﻠﻐﺔ أﻻم ﻟﻠﺤﺎﺳﺐ ﻓﻤﺜﻼ اﻟﺤﺮف aﻳﻤﺜﻞ ﻓﻲ ﺟﺪول اﻟـ ASCIIاﻟﺮﻗﻢ 97واﻟﺤﺮف Aﻳﻤﺜﻞ اﻟﺮﻗﻢ . 65
ھﻨﺎك ﻧﻮﻋﺎن ﻣﻦ ﺷﻔﺮة ASCIIاﻟﺸﻔﺮة اﻟﻘﯿﺎﺳﯿﺔ واﻟﺘﻲ ﺗﺘﻜﻮن ﻣﻦ ﺳﺒﻌﺔ ﺑﺘﺎت واﻟﺸﻔﺮة اﻟﻤﻮﺳﻌﺔ واﻟﺘﻲ
ﺗﺘﻜﻮن ﻣﻦ ﺛﻤﺎﻧﯿﺔ ﺑﺘﺎت أي أن ﺷﻔﺮة ASCIIاﻟﻤﻮﺳﻌﺔ ﺗﺴﺘﺨﺪم ﺑﺎﻳﺘﺎ واﺣﺪا ﻟﻜﻞ رﻣﺰ وﺑﺎﻟﺘﺎﻟﻲ ﻓﺎن اﻟﺸﻔﺮة ﻻ
ﻳﻤﻜﻦ اﺳﺘﯿﻌﺎﺑﺎ اﻛﺜﺮ ﻣﻦ 256رﻣﺰ ﻣﺨﺘﻠﻒ ﻓﮫﻮ ﻛﺎﻓﻲ ﻟﺘﻤﺜﯿﻞ ﻛﻞ اﻟﺤﺮوف اﻷﺑﺠﺪﻳﺔ اﻹﻧﺠﻠﯿﺰﻳﺔ اﻟﻜﺒﯿﺮة واﻟﺼﻐﯿﺮة
ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ اﻟﻌﻼﻣﺎت واﻷرﻗﺎم وﻟﻜﻦ ﻏﯿﺮ ﻛﺎﻓﻲ ﻟﺘﻤﺜﯿﻞ ﻟﻐﺎت أﺧﺮى ﻣﺜﻞ اﻟﻌﺮﺑﯿﺔ أو اﻟﯿﺎﺑﺎﻧﯿﺔ ...اﻟﺦ
ﺑﻌﺪ ھﺬه اﻟﻤﻘﺪﻣﺔ ﻧﺮﺟﻊ إﻟﻰ ﻣﺜﺎﻟﻨﺎ اﻟﺴﺎﺑﻖ ﺟﻤﻠﺔ ﺗﺼﺮﻳﺢ XMLﻋﻨﺪ اﻟﺼﻔﺔ
'encoding=’UTF-16
ﻟﺬا ﻓﻘﺪ ﻧﺼﺖ ﻣﻮاﺻﻔﺎت XMLﻋﻠﻰ اﺳﺘﺨﺪام ﺷﻔﺮه ﻣﻮﺣﺪة ﻋﺎﻟﻤﯿﺔ ﻟﺘﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت وﻟﻜﻦ ﻟﻸﺳﻒ ﻓﺎن اﻟﻘﻠﯿﻞ
ﻳﺴﺘﺨﺪم ھﺬه اﻟﺸﻔﺮة واﻟﻌﺪﻳﺪ ﻳﺴﺘﺨﺪم ﺷﻔﺮات أﺧﺮى ﻣﺜﻞ ISO-88591وﺷﻔﺮة windows-1252
ﻣﻼﺣﻈﺔ إذ ﻟﻢ ﺗﻘﻢ ﺑﺘﺤﺪﻳﺪ ﺷﻔﺮة إي اﻧﻚ ﻟﻢ ﺗﻘﻢ ﺑﻮﺿﻊ ھﺬه اﻟﺼﻔﺔ أﺻﻼ أن ﻣﻌﺮب XMLﻳﻘﺮاء اﻟﻤﺴﺘﻨﺪ
ﺑﺸﻔﺮة UTF-8أو UTF-16
وھﻰ ﺗﻌﻨﻰ أن اﻟﻤﺴﺘﻨﺪ ﻗﺎﺋﻢ ﺑﺬاﺗﯿﺔ ﻓﺈذا ﻗﻤﺖ ﺑﺈﺿﺎﻓﺔ ھﺬه اﻟﺼﻔﺔ إﻟﻰ ﺗﺼﺮﻳﺢ XMLﻓﺈﻧﻪ ﻟﮫﺬه اﻟﺼﻔﺔ ﻗﯿﻤﺘﯿﻦ
yesوno
ﺗﺸﯿﺮ اﻟﻘﯿﻤﺔ yesإﻟﻰ أن اﻟﻤﺴﺘﻨﺪ ﻗﺎﺋﻢ ﺑﺬاﺗﻪ وﻻ ﻳﻌﺘﻤﺪ ﻋﻠﻰ أي ﻣﻠﻔﺎت أﺧﺮى
ﺗﺸﯿﺮ اﻟﻘﯿﻤﺔ Noإﻟﻰ أن اﻟﻤﺴﺘﻨﺪ ﻳﻤﻜﻦ إن ﻳﻜﻮن ﻣﻌﺘﻤﺪ أو ﻣﺮﺗﺒﻄﺎ ﺑﻤﻠﻔﺎت أﺧﺮى.
25
ﺗﻌﺮﻓﻨﺎ ﺳﺎﺑﻘﺎ ﺑﺎﻟﻤﻘﺼﻮد ﺑﺎﻟﻤﺼﻄﻠﺢ PCDATAوﻋﺮﻓﻨﺎ اﻧﻪ ﻣﺼﻄﻠﺢ ﻣﺴﺘﺨﺪم ﻣﻦ ﻗﺒﻞ SGMLﻳﺸﯿﺮ إﻟﻰ اﻟﺒﯿﺎﻧﺎت
اﻟﻨﺼﯿﺔ اﻟﻤﻮﺟﻮدة داﺧﻞ اﻟﻌﻨﺎﺻﺮ ،ﻓﺘﻮﺟﺪ ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ ﺗﺤﻜﻢ ھﺬه اﻟﺒﯿﺎﻧﺎت اﻟﻨﺼﯿﺔ ﻋﻨﺪ ﻛﺘﺎﺑﺘﮫﺎ ﻟﻔﺎدى اﻷﺧﻄﺎء
أﺛﻨﺎء ﻋﻤﻞ ﻣﻌﺮب . XML
ﻓﮫﻨﺎك ﺑﻌﺾ اﻟﺮﻣﻮز اﻟﻤﺤﺠﻮزة اﻟﺘﻲ ﻻ ﺗﺴﺘﻄﯿﻊ ﺗﻀﻤﯿﻨﮫﺎ ﻓﻲ ﺑﯿﻨﺎت PCDATAﻻن ﺗﺮﻛﯿﺐ XMLﻳﺴﺘﺨﺪﻣﮫﺎ ﻣﻦ
ھﺬه اﻟﺮﻣﻮز < واﻟﺮﻣﺰ &
ﻓﻤﺜﻼ ..
ﻋﻨﺪ ﺗﺸﻐﯿﻞ ھﺬه اﻟﺸﻔﺮة ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ﺳﻮف ﺗﻌﺮض ﻟﻚ اﻟﺨﻄﺄ ﺑﮫﺬا اﻟﺸﻜﻞ ..
ھﺬا ﻳﻌﻨﻰ اﻧﻪ ﻋﻨﺪﻣﺎ ﻳﺼﻞ اﻟﻤﻌﺮب إﻟﻰ اﻟﺮﻣﺰ < ﺳﯿﺘﻮﻗﻊ أن ﻳﺠﺪ اﺳﻤﺎ ﻟﻤﻌﺮف Tagوﺑﺪﻻ ﻣﻦ ذﻟﻚ ﻓﻘﺪ وﺟﺪ
ﻓﺮاغ Spaceوﺣﺘﻰ إن ﺗﺠﺎوز اﻟﻤﻌﺮب ھﺬا اﻟﺨﻄﺄ ﻓﺈﻧﻪ ﺳﯿﺘﻮﻗﻒ ﻋﻨﺪ ﺧﻄﺎ أﺧﺮ ﻋﻨﺪﻣﺎ ﻳﺼﻞ إﻟﻰ اﻟﺮﻣﺰ “ & “
ﻓﻼ ﺗﻘﻠﻖ ﻓﮫﻨﺎك ﻃﺮﻳﻘﺘﺎن ﺗﻤﻜﻨﻚ ﻣﻦ ﺗﻀﻤﯿﻦ ھﺬه اﻟﺮﻣﻮز ﺿﻤﻦ PCDATAإﻣﺎ أن ﺗﺴﺘﺨﺪم اﻟﺮﻣﻮز اﻟﻤﺮادﻓﺔ
Escaping Charactersأو أن ﺗﺴﺘﺨﺪم ﻗﺴﻢ CDATAﺳﻨﺘﻌﺮف ﻋﻠﻰ اﻟﻄﺮﻳﻘﺘﺎن اﻵن ﻓﻲ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ھﻨــــــــــــﺎ .
26
اﻟﺪرس اﻟﺮاﺑﻊ
ﻳﻤﻜﻨﻚ اﺳﺘﺨﺪام اﻟﺮﻣﺰ < ﺿﻤﻦ ﺑﯿﻨﺎﺗﻚ اﻟﻨﺼﯿﺔ ﻓﻲ XMLﺑﺎﺳﺘﺒﺪال ھﺬا اﻟﺮﻣﺰ ﺑﻤﺮادﻓﺔ واﻟﺬي ﻧﺼﺖ ﻋﻠﯿﺔ XML
وھﻮ
إذا ﻧﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﻤﺴﺘﻨﺪ اﻟﺴﺎﺑﻖ ﺑﺼﻮرة ﺳﻠﯿﻤﺔ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ..
27
ﺗﻮﺟﺪ اﻟﻌﺪﻳﺪ ﻣﻦ ھﺬه اﻟﺮﻣﻮز وھﻰ ﺗﻌﺮف ﺑﺎﺳﻢ . Character Referances
ﻓﮫﻲ رﻣﻮز Unicodeﺗﺒﺪأ ﺑـ &#و ﺗﻨﺘﮫﻲ ﺑﺎﻟﺮﻣﺰ ; وﻳﺘﻮﺳﻄﮫﺎ رﻣﻮز وﻓﻖ اﻟﺘﻤﺜﯿﻞ اﻟﺴﺘﻌﺸﺮى وﻋﻠﻰ ﺳﺒﯿﻞ
اﻟﻤﺜﺎل ﻳﻤﻜﻨﻚ ﺗﻤﺜﯿﻞ اﻟﺮﻣﺰ © ﻓﻲ ﻣﺴﺘﻨﺪ XMLﺑﺈﺿﺎﻓﺔ اﻟﺮﻣﺰ اﻟﺒﺪﻳﻞ ؛ & 169#أو اﻟﻤﺮادف اﻟﺴﺘﻌﺸﺮى ﻟﻪ &
xA9#؛
أﻗﺴﺎم CDATA
إذا ﻛﺎن ﻟﺪﻳﻚ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺮﻣﻮز اﻟﺘﻲ ﻳﺘﺤﺘﻢ ﻋﻠﯿﻚ اﺳﺘﺨﺪاﻣﮫﺎ رﻣﻮز ﺑﺪﻳﻠﻪ ﻟﮫﺎ ﺳﯿﺼﺒﺢ ﺷﻜﻞ ﺷﻔﺮة ﻣﺴﺘﻨﺪك
ﻣﺰﻋﺠﺎ ﻓﯿﺄﺗﻲ ھﻨﺎ اﻟﺤﺎﺟﺔ إﻟﻰ اﺳﺘﺨﺪام ﻣﺎ ﻳﻌﺮف ﺑﺄﻗﺴﺎم CDATA
ﻋﻨﺪ اﺳﺘﺨﺪام أﻗﺴﺎم CDATAﺳﯿﻘﻮم اﻟﻤﻌﺮب ﺑﻌﺪم إﻋﺮاب اﻟﻨﺺ و إﻧﻤﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻋﻠﻰ اﻧﻪ ﻋﺒﺎرة ﻋﻦ
ﺑﯿﺎﻧﺎت PCDATAﺑﻤﺎ ﻳﺤﺘﻮﻳﮫﺎ ﻣﻦ رﻣﻮز ﻣﺤﺠﻮزة وﺗﻜﺘﺐ أﻗﺴﺎم CDATAﺑﮫﺬا اﻟﺸﻜﻞ
أي أن ﻛﻞ ﻣﺎ ﻳﻮﺿﻊ ﺑﯿﻦ اﻟﺮﻣﻮز > !] ]CDATAواﻟﺮﻣﻮز [[ < أي أن ﻣﻌﺮب XMLﺳﯿﻤﺮر ھﺬا اﻟﻨﺺ ﻛﻤﺎ ھﻮ وﺳﻮ
ﻳﺘﺠﺎھﻞ اﻟﺮﻣﻮز اﻟﻤﺤﺠﻮزة.
ﺗﻈﮫﺮ ﻗﻮة اﻟﺘﻌﺎﻣﻞ ﻣﻊ أﻗﺴﺎم CDATAﻋﻨﺪﻣﺎ ﺗﺮﻳﺪ ﻛﺘﺎﺑﺔ ﺷﻔﺮة ﺑﺮﻣﺠﯿﺔ داﺧﻞ ﻣﺴﺘﻨﺪ Xmlﻓﻤﺜﻼ..
28
إﻋﺮاب ﻣﺴﺘﻨﺪات : XML
ﻳﺮﺟﻊ اﻟﺴﺒﺐ ﻟﻮﺟﻮد ھﺬه اﻟﻘﻮاﻧﯿﻦ ﻟﻜﺘﺎﺑﺔ ﻣﺴﺘﻨﺪات xmlﻣﺤﻜﻤﺔ ھﻮ ﻟﺘﺴﮫﯿﻞ ﻋﻤﻠﯿﺔ اﺳﺘﺨﺮاج اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ
ھﺬه اﻟﻤﺴﺘﻨﺪات .
ﻳﺴﻤﻰ ﻣﻌﺎﻟﺞ ﻟﻐﺔ xmlﺑﻤﻌﺮب XML Parserوﻷﻧﻪ ﻳﻘﻮم ﺑﺒﺴﺎﻃﺔ ﺑﺄﻋﺮاب ﺷﻔﺮة xmlوﻳﻮﻓﺮ ﻟﻠﺘﻄﺒﯿﻖ اﻟﻤﻌﻠﻮﻣﺎت
اﻟﺘﻰ ﻳﺤﺘﺎﺟﮫﺎ ﻣﻦ اﻟﻤﺴﺘﻨﺪ .
ھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﻌﺮﺑﺎت اﻟﻤﺠﺎﻧﯿﺔ وﺳﻮف اذﻛﺮ ﻟﻜﻢ ﻣﺠﻤﻮﻋﺔ ﻣﻨﮫﺎ اﻵن .
أول ﻣﻌﺮﺑﺎت XMLﺿﻤﻨﺘﻪ ﺷﺮﻛﺔ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ ﻓﻲ ﻣﺘﺼﻔﺤﮫﺎ اﻹﺻﺪار اﻟﺮاﺑﻊ وﻟﻚ ﻓﻲ ﺑﺪاﻳﺎت XMLوﻣﻊ اﻹﺻﺪار
اﻟﺨﺎﻣﺲ ﻣﻦ اﻟﻤﺘﺼﻔﺢ زودت ﻟﻐﺔ xmlﺑﺄدوات ﺑﺤﯿﺚ ﺗﻢ ﺗﺤﺪﻳﺜﮫﺎ إﻟﻰ اﻹﺻﺪار اﻷول ﻣﻦ ھﺬه اﻟﻤﻮاﺻﻔﺎت وﻋﺮﻓﺖ
ﺑﺎﺳﻢ xml 1.0
ﻳﻤﻜﻨﻚ ﺗﺤﻤﯿﻞ اﻹﺻﺪار اﻷﺧﯿﺮ ﻣﻦ ﻣﻌﺮب xmlﻣﻦ ﻣﻮﻗﻊ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ ﻋﻠﻰ ھﺬه اﻟﻮﺻﻠﺔ .
http://msdn.microsoft.com/XML/XMLDownloads/default.aspx
ﻣﻌﺮب ﺟﺎﻳﻤﺰ ﻛﻼرك ﻳﻌﺪ 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
ﻓﮫﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻷﺧﻄﺎء وھﻰ اﻷﺧﻄﺎء Errorواﻷﺧﻄﺎء . fatal errors
ﻓﺎﻷﺧﻄﺎء ﺑﺒﺴﺎﻃﺔ ھﻲ اﻧﺘﮫﺎك ﻟﻤﻮﺻﻔﺎت وﻗﻮاﻧﯿﻦ XMLاﻟﺘﻲ ﺗﻜﻠﻤﻨﺎ ﻋﻨﮫﺎ ھﻨﺎ ﺣﯿﺚ ﻳﻜﻮن اﻟﻨﺎﺗﺞ ﻏﯿﺮ ﻣﻌﺮوف .
أﻣﺎ اﻷﺧﻄﺎء اﻟﻤﻤﯿﺘﺔ أو fatal Errorsﻓﮫﻲ اﻟﺘﻲ ﺗﺤﺘﻢ ﻋﻠﻰ اﻟﻤﻌﺮب ﻋﺪم اﻻﺳﺘﻤﺮار ﻓﻲ ﻣﻌﺎﻟﺠﺔ ﻣﺴﺘﻨﺪ xml
أي إن أي ﺧﻄﺄ ﻳﺠﻌﻞ ﻣﺴﺘﻨﺪ xmlﻏﯿﺮ ﻣﺤﻜﻢ اﻟﮫﯿﺌﺔ ﻳﺴﻤﻰ ﺧﻄﺄ ﻣﻤﯿﺖ .
ﻓﮫﺬه اﻟﺼﺮاﻣﺔ ﻓﻲ ﻛﺘﺎﺑﺔ ﻣﺴﺘﻨﺪات xmlھﻲ اﻟﺘﻲ ﺗﺰﻳﺪ ﻣﻦ ﻗﻮﺗﮫﺎ وﻟﯿﺲ ﻣﺠﺮد ﺗﻔﺎدى ﻻﺧﻄﺎء اﻟﻤﻌﺮﺑﺎت وﻟﻜﻨﮫﺎ
ﺗﻮﺣﯿﺪ ﻛﺘﺎﺑﻪ ﻣﺴﺘﻨﺪات ﻗﯿﺎﺳﯿﺔ ﻳﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻣﻦ اﻛﺜﺮ ﻣﻦ ﻣﺘﺼﻔﺢ واﻛﺜﺮ ﻣﻦ ﻣﻨﺼﺔ ﺗﺸﻐﯿﻞ .ﺑﻌﻜﺲ ﻟﻐﺔ
htmlﻻ ﺗﻮﺟﺪ ﺻﺮاﻣﺔ ﻓﻲ ﻛﺘﺎﺑﺔ اﻟﻨﺼﻮص ﻣﻤﺎ ﻗﺪ ﺗﺠﺪ ﻣﺘﺼﻔﺤﺎ ﻳﻘﻮم ﺑﻌﺮض اﻟﺼﻔﺤﺔ ﺑﺸﻜﻞ ﻏﯿﺮ ﻻﺋﻖ ﻓﻲ ﺣﯿﻦ
ﻣﺘﺼﻔﺢ أﺧﺮ ﻳﻌﺮﺿﮫﺎ ﻛﻤﺎ ﺗﺮﻳﺪ .وھﺬا اﻟﻌﯿﺐ ﻓﻲ htmlوھﻮ ﺳﺒﺐ ﻣﻦ أﺳﺒﺎب ﻇﮫﻮر ﻟﻐﺔ XHTMLاﻟﺘﻲ ﺗﻌﺘﺒﺮ
اﻟﻌﻮض ﻟﻘﺼﻮر html
30
اﻟﻨﻘﺎش و اﻻﺳﺌﻠﺔ
CDATAﺗﻘﻮم ﺑﺘﻀﻤﯿﻦ ﺷﻔﺮات ﺑﺮﻣﺠﯿﺔ داﺧﻞ xmlﻣﺜﻞ ﻣﺎھﻮ ﻣﻮﺟﻮد ﻓﻲ ﻣﺜﺎل اﻟﺠﺎﻓﺎ ﺳﻜﺮﻳﺒﺖ
ھﻞ اﻟﺒﺮﻧﺎﻣﺞ ﺳﯿﻨﻔﺬ داﺧﻞ ﻣﻠﻒ xmlاﻗﺼﺪ ھﺬا اﻟﻤﺜﺎل ﻟﻮ وﺿﻌﻨﺎه ﻓﻲ htmlﺳﯿﻨﻔﺬ رﺑﻤﺎ ﻣﺎ ﻳﺤﺘﻮﻳﻪ
ھﺬا اﻟﺴﻜﺮﻳﺒﺖ ھﻞ xmlﺳﺘﻨﻔﺬ ﻣﺎ ﺑﺪاﺧﻠﮫﺎ ﻣﻦ ﺷﻔﺮات ﺧﺎرﺟﯿﺔ ؟
اﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﺮﺑﻂ XMLﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻓﮫﺬه وﻣﻮﺿﻮع ﺧﺎص وﻳﻄﻮل ﺷﺮﺣﺔ واﺳﺎﺳﯿﺎت ﻋﻤﻠﻪ داﺧﻞ ﻟﻐﺔ ﻗﻮاﻋﺪ
اﻟﺒﯿﺎﻧﺎت ودﻋﻤﮫﺎ
ﻓﻲ ﻧﺴﺨﺔ اﻻوﻓﯿﺲ اﻟﺠﺪﻳﺪة ﺳﻤﻌﻨﺎ ﻋﻦ ﺗﻮاﺟﺪ ﺗﻘﻨﯿﺔ xmlداﺧﻞ اﻻوﻓﯿﺲ ھﻞ اﻟﻤﺴﺘﺨﺪم
اﻟﻌﺎدي ﻳﺴﺘﻔﯿﺪ ﻣﻦ وﺟﻮد ھﺬا اﻟﺸﻲ ام ان اﻛﺜﺮ اﻟﻤﺴﺘﻔﯿﺪﻳﻦ ھﻢ اﻟﻤﻄﻮرﻳﻦ واﻟﻤﺒﺮﻣﺠﯿﻦ
اﻟﻤﺘﻘﺪﻣﯿﻦ ؟
ﺣﻮل ﺳﺆاﻟﻚ ﻋﻦ اﺳﺘﺨﺪام XMLﻓﻲ اﻷوﻓﯿﺲ اﻟﺠﺪﻳﺪ ،ﻓﻤﺎ أﻋﻠﻤﻪ أن اﻟﻮﻳﻨﺪوز اﻟﺠﺪﻳﺪ أﻃﻠﻖ ﻣﺎ ﻳﺴﻤﻰ XAML
ﻳﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻋﻮﺿﺎً ﻋﻦ اﻟﻤﺒﺮﻣﺞ أو اﻟﺨﺒﯿﺮ ﺑﺎﻟﺘﺤﻜﻢ ﺑﻤﻈﮫﺮ اﻟﺤﺎﺳﻮب ، GUIﺗﺨﯿّﻞ أﻧﻚ ﺑﻮاﺳﻄﺘﻪ ﺗﺴﺘﻄﯿﻊ
ﺟﻌﻞ اﻟـ textBoxاﻟﺬي ﺗﻀﻊ ﻓﯿﻪ passwordاﻟﺪﺧﻮل ﻋﻠﻰ اﻟﻨﻈﺎم ﻣﺎﺋﻞ ،ﺑﻤﻌﻨﻰ ﺑﺪﻻً ﻣﻦ أن ﺗﻜﻮن ﺟﻤﯿﻊ زواﻳﺎه
ﻗﺎﺋﻤﺔ ﺗﺼﺒﺢ ﻟﻪ زاوﻳﺘﯿﻦ ﻣﺘﻘﺎﺑﻠﺘﯿﻦ ﻣﻨﻔﺮﺟﺘﺎن واﻷﺧﺮﻳﺘﺎن ﺣﺎدﺗﺎن وﻣﻊ ھﺬا اﻟﻤﯿﻼن ﺗﻜﺘﺐ داﺧﻠﻪ ﺑﻜﻞ أرﻳﺤﯿﺔ ،وﻟﻚ
أن ﺗﻘﯿﺲ ﻋﻠﻰ ھﺬا ،ﻛﻞ اﻟـ Menusﻓﻲ اﻟﻨﻈﺎم ﺑﺈﻣﻜﺎﻧﻚ اﻟﺘﺤﻜﻢ ﺑﺸﻜﻠﮫﺎ وإﺿﺎﻓﺔ اﻟﺰواﻳﺎ اﻟﺘﻲ ﺗﺮﻳﺪ ﻛﻞ ھﺬا
ﺑﻮاﺳﻄﺔ أﺳﻄﺮ ﺑﺴﯿﻄﺔ ﺗﻜﺘﺐ ﺑـ XAMLوھﻲ ﻣﺸﺘﻘﺔ ﻣﻦ XMLورأت اﻟﻨﻮر ﻣﻊ Windows Longhorn
31
اﻟﺪرس اﻟﺨﺎﻣﺲ
Htmlﻣﻘﺎﺑﻞ XML
اﻻﺧﺘﻼف اﻟﺮﺋﯿﺴﻲ ﺑﯿﻦ XMLو HTMLھﻮ أن اﻟـ XMLﻳﺄﺧﺬ وﺟﮫﺔ ﻧﻈﺮ ﻣﺨﺘﻠﻔﺔ ﻋﻦ ، HTMLﺑﺎﻟﺮﻏﻢ ﻣﻦ اﻧﻪ ﻣﺎ
ذال ﻳﺴﺘﻌﻤﻞ وﺳﻢ Tagsوھﻮ ﻟﯿﺲ ﺑﺪﻳﻞ ﻟـ . HTML
XMLو HTMLﺻﻤﻤﺎ ﻛﻞ ﻣﻨﮫﻢ ﻟﮫﺪف ﻣﺨﺘﻠﻒ .أن اﻻﺧﺘﻼف اﻟﺮﺋﯿﺴﻲ ﺑﺎن XMLﺻﻤﻢ ﻟﻮﺻﻒ ﺗﺮﻛﯿﺐ اﻟﻨﺺ
وﻟﯿﺲ ﻣﺎ ھﻮ ﻳﺠﺐ أن ﻳﻌﺮض ﻋﻠﻰ ﺻﻔﺤﺔ اﻟﻤﺘﺼﻔﺢ .ﺑﺎﺧﺘﺼﺎر XML .ﺻﻤﻢ ﻟﺤﻤﻞ اﻟﺒﯿﺎﻧﺎت ،ﻣﻦ اﻟﻨﺎﺣﯿﺔ اﻷﺧﺮى
HTMLﺻﻤﻢ ﻟﻌﺮض اﻟﺒﯿﺎﻧﺎت واﻟﺘﺮﻛﯿﺰ ﻋﻠﻰ ﺷﻜﻞ ﻋﺮض ھﺬه اﻟﺒﯿﺎﻧﺎت .ھﻜﺬا ﻳﻤﻜﻦ أن ﻧﻘﻮل إن HTMLﻳﻌﻤﻞ
ﻋﻠﻰ ﻋﺮض اﻟﻤﻌﻠﻮﻣﺎت ،ﺑﯿﻨﻤﺎ XMLﻳﻌﻤﻞ وﺻﻒ اﻟﻤﻌﻠﻮﻣﺎت .
وﻋﻨﺪ ﻋﺮض ھﺬه اﻟﺸﻔﺮة ﻋﻠﻰ اﻟﻤﺘﺼﻔﺢ ﺳﻮف ﻳﻈﮫﺮ ﻟﻚ ﺷﻲ ﻣﺜﻞ ھﺬا:
وﻳﺠﺐ أن ﻧﻼﺣﻆ إن ﺟﻤﻠﺔ 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ﻋﻠﻰ ھﯿﺌﻪ ﺟﺪول دورات ﺗﺪرﻳﺒﯿﺔ :
></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وﺳﺘﺠﺪ اﻟﻤﺰﻳﺪ أن ﺷﺎء اﷲ .....
34