xml

Document Sample
xml Powered By Docstoc
					                                 ‫اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ/ ﻗﺴﻢ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ‬
                                            ‫ﺳﻠﺴﻠﺔ ﻛﺘﺐ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ اﻹﻟﻜﺘﺮوﻧﯿﺔ‬

                                                                     ‫‪C4arab.com‬‬




  ‫ﻃﺮﯾﻘﻚ اﻟﻰ .....‬
‫اﻛﺲ ام ال ‪xml‬‬

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




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

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

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

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


                                             ‫ﻧﻨﺘﻈﺮ ﺳﻤﺎع أراءﻛﻢ ﻋﻠﻰ اﻟﺒﺮﯾﺪ اﻹﻟﻜﺘﺮوﻧﻲ اﻟﻤﺨﺼﺺ ﻟﺬﻟﻚ‬
                                                                       ‫‪ebooks@c4arab.com‬‬
                                         ‫ﻧﺮﺟﻮ ذﻛﺮ اﺳﻢ اﻟﻜﺘﺎب واﻟﻜﺎﺗﺐ واﻟﻄﺒﻌﺔ ﻣﻊ ذﻛﺮ ﻣﻼﺣﻈﺎﺗﻜﻢ ﻟﻨﺎ‬

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




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


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




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


              ‫ﻟﺬﻟﻚ ﺗﻌﺘﺒﺮ ﺳﻠﺴﻠﺔ ﻛﺘﺐ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ :‬
                                            ‫أول ﺳﻠﺴﻠﺔ ﻛﺘﺎب إﻟﻜﺘﺮوﻧﯿﺔ ﻋﺮﺑﯿﺔ ﺧﺎﺻﺔ ﺑﺎﻟﻤﺒﺘﺪأﯾﻦ.‬   ‫•‬

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

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

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




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

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




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

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

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

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




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

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

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

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


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

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




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

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




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

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




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

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

                                                                                           ‫1000011‬

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

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




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

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




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

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




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

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




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

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




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

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

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




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

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




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

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

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

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




                                                 ‫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‬‬
                           ‫ﻳﺠﺐ آن ﺗﻜﻮن ذات ﻣﻌﻨﻰ ﻃﺒﻌﺎ اﻟﻤﻌﻨﻰ ﻳﺪل ﻋﻠﻰ ﻣﺤﺘﻮى اﻟﻤﻌﻠﻮﻣﺔ ﺑﺪاﺧﻠﮫﺎ .‬




                                                ‫01‬
 ‫ﻟﻮ ﻗﻤﻨﺎ ﺑﺤﻔﻆ اﻟﻤﻠﻒ اﻟﺴﺎﺑﻖ ﺑﺎﺳﻢ ‪ 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‬وھﻰ ﻟﻐﺔ ﺗﺮﻣﯿﺰ اﻟﻼﺳﻠﻜﻲ واﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﺑﻨﺎء ﻣﻮاﻗﻊ ﻳﻤﻜﻦ ﺗﺼﻔﺤﮫﺎ ﺑﺎﺳﺘﺨﺪام اﻟﮫﻮاﺗﻒ‬
                                                                                    ‫اﻟﺨﻠﻮﻳﺔ‬




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




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



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

  ‫وﻟﻜﻞ ﻓﺮد ﻓﻲ ھﺬه اﻟﻌﺎﺋﻠﺔ ﻣﻮﺻﻔﺎﺗﻪ اﻟﺨﺎﺻﺔ . اﻟﻨﺴﺨﺔ 0.1 ‪ XML‬ھﻲ اﻟﻘﺎﻋﺪة اﻷﺳﺎﺳﯿﺔ اﻟﺘﻲ ﺗﺒﻨﻰ ﻋﻠﯿﮫﺎ‬
‫‪ 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‬ﺑﻮاﺳﻄﺔ ﻟﻐﺘﻚ اﻟﻤﻔﻀﻠﺔ .‬




                                               ‫31‬
                                   ‫اﻟﻨﻘﺎش و اﻷﺳﺌﻠﺔ‬
          ‫ﻟﺪي ﺗﺴﺎؤل ﺣﻮل اﻟﺘﻘﻨﯿﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ﻋﺎﺋﻠﺔ اﻟﺘﺮﻣﯿﺰ اﻟﻤﻮﺳﻊ، ﻓﻌﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل:‬
 ‫ﻟﻐﺔ ‪ 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‬ﻟﻮﺻﻒ وﻋﺮض ﻗﻮاﺋﻢ اﻟﻌﻨﺎوﻳﻦ اﻟﻀﺨﻤﺔ ﻟﻤﻮاﻗﻊ اﻻﺧﺒﺎر‬




                                                ‫41‬
                                          ‫اﻟﺪرس اﻟﺜﺎﻟﺚ‬

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

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




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




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




‫‪Emad Adly Faik‬‬




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

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




‫‪Emad Adly Faik Gabala‬‬




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




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




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




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

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




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

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

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

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




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

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

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




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

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

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




                                                ‫71‬
                                       ‫اﻟﺪرس اﻟﺮاﺑﻊ‬

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

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

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

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

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

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

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




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




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

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




                                              ‫81‬
                                                                                        ‫إذا ﻧﻘﻮل :‬

                                                                               ‫‪Element Content‬‬

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

                                                                                 ‫‪Simple Content‬‬

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




                                                                                  ‫‪Mixed Content‬‬

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




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

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

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

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

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




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




                                              ‫91‬
                                                                 ‫ﻣﻨﮫﺠﯿﺔ ﻋﻤﻞ ‪ 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‬‬




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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




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




                                                                                                   ‫ﻣﺜﻞ ..‬




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

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

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

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

                                                                                           ‫ﻣﺜﺎل ..‬




                                                                                          ‫أﻳﻀﺎ ،،،‬




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

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

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




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

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




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




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

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

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

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

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

                                                                                               ‫ﻣﺜﻼ ..‬




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

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

                                                                                             ‫ﻓﻤﺜﻼ ...‬




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

‫>/‪< last‬‬

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

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




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




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




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

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




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




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




                                                            ‫ﻓﺒﺪا ﺗﺼﺮﻳﺢ ‪ XML‬ﺑﺎﻟﺮﻣﺰ > ؟‪xml‬‬      ‫-‬
                                                                       ‫و ﻳﻨﺘﮫﻲ ﺑﺎﻟﺮﻣﺰ ؟ <‬

                                                                                                  ‫?<‬

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

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

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




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




                                              ‫42‬
  ‫ﺻﻔﺔ اﻟﺘﺸﻔﯿﺮ ‪ ، Encoding Attributes‬ﻟﻮ رﺟﻌﻨﺎ إﻟﻰ درﺳﻨﺎ اﻷول ﻓﻲ ھﺬه اﻟﺴﻠﺴﻠﺔ واﻟﺬي ﺗﺤﺪﺛﻨﺎ ﻓﯿﻪ ﻋﻦ‬
  ‫اﻟﺒﯿﺎﻧﺎت وأﻧﻮاﻋﮫﺎ ﻓﻼ ﺗﺴﺘﻐﺮب إذا ﻋﺮﻓﺖ أن اﻟﻨﺼﻮص ﺗﺨﺰن ﻓﻲ اﻟﺤﺎﺳﺐ ﻋﻠﻰ ﺷﻜﻞ أرﻗﺎم ﺑﺎﻋﺘﺒﺎر أن اﻷرﻗﺎم‬
    ‫ھﻲ اﻟﻠﻐﺔ أﻻم ﻟﻠﺤﺎﺳﺐ ﻓﻤﺜﻼ اﻟﺤﺮف ‪ a‬ﻳﻤﺜﻞ ﻓﻲ ﺟﺪول اﻟـ ‪ ASCII‬اﻟﺮﻗﻢ 79 واﻟﺤﺮف ‪ A‬ﻳﻤﺜﻞ اﻟﺮﻗﻢ 56 .‬

    ‫ھﻨﺎك ﻧﻮﻋﺎن ﻣﻦ ﺷﻔﺮة ‪ ASCII‬اﻟﺸﻔﺮة اﻟﻘﯿﺎﺳﯿﺔ واﻟﺘﻲ ﺗﺘﻜﻮن ﻣﻦ ﺳﺒﻌﺔ ﺑﺘﺎت واﻟﺸﻔﺮة اﻟﻤﻮﺳﻌﺔ واﻟﺘﻲ‬
  ‫ﺗﺘﻜﻮن ﻣﻦ ﺛﻤﺎﻧﯿﺔ ﺑﺘﺎت أي أن ﺷﻔﺮة ‪ ASCII‬اﻟﻤﻮﺳﻌﺔ ﺗﺴﺘﺨﺪم ﺑﺎﻳﺘﺎ واﺣﺪا ﻟﻜﻞ رﻣﺰ وﺑﺎﻟﺘﺎﻟﻲ ﻓﺎن اﻟﺸﻔﺮة ﻻ‬
 ‫ﻳﻤﻜﻦ اﺳﺘﯿﻌﺎﺑﺎ اﻛﺜﺮ ﻣﻦ 652 رﻣﺰ ﻣﺨﺘﻠﻒ ﻓﮫﻮ ﻛﺎﻓﻲ ﻟﺘﻤﺜﯿﻞ ﻛﻞ اﻟﺤﺮوف اﻷﺑﺠﺪﻳﺔ اﻹﻧﺠﻠﯿﺰﻳﺔ اﻟﻜﺒﯿﺮة واﻟﺼﻐﯿﺮة‬
           ‫ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ اﻟﻌﻼﻣﺎت واﻷرﻗﺎم وﻟﻜﻦ ﻏﯿﺮ ﻛﺎﻓﻲ ﻟﺘﻤﺜﯿﻞ ﻟﻐﺎت أﺧﺮى ﻣﺜﻞ اﻟﻌﺮﺑﯿﺔ أو اﻟﯿﺎﺑﺎﻧﯿﺔ ... اﻟﺦ‬

                                                         ‫ﻟﮫﺬا اﻟﺴﺒﺐ وﺟﺪت اﻟﺸﻔﺮة اﻟﻤﻮﺣﺪة ‪. Unicode‬‬




                                ‫ﺑﻌﺪ ھﺬه اﻟﻤﻘﺪﻣﺔ ﻧﺮﺟﻊ إﻟﻰ ﻣﺜﺎﻟﻨﺎ اﻟﺴﺎﺑﻖ ﺟﻤﻠﺔ ﺗﺼﺮﻳﺢ ‪ XML‬ﻋﻨﺪ اﻟﺼﻔﺔ‬




‫'61-‪encoding=’UTF‬‬




                             ‫ھﻨﺎ ﺗﻢ ﺿﺒﻂ اﻟﺘﺸﻔﯿﺮ ﻟﻤﺴﺘﻨﺪ ‪ XML‬ﻋﻠﻰ اﻧﻪ ‪ Unicode‬وذﻟﻚ ﺑﻮﺿﻊ 61-‪UTF‬‬

‫ﻟﺬا ﻓﻘﺪ ﻧﺼﺖ ﻣﻮاﺻﻔﺎت ‪ XML‬ﻋﻠﻰ اﺳﺘﺨﺪام ﺷﻔﺮه ﻣﻮﺣﺪة ﻋﺎﻟﻤﯿﺔ ﻟﺘﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت وﻟﻜﻦ ﻟﻸﺳﻒ ﻓﺎن اﻟﻘﻠﯿﻞ‬
           ‫ﻳﺴﺘﺨﺪم ھﺬه اﻟﺸﻔﺮة واﻟﻌﺪﻳﺪ ﻳﺴﺘﺨﺪم ﺷﻔﺮات أﺧﺮى ﻣﺜﻞ 19588-‪ ISO‬وﺷﻔﺮة 2521-‪windows‬‬




     ‫ﻣﻼﺣﻈﺔ إذ ﻟﻢ ﺗﻘﻢ ﺑﺘﺤﺪﻳﺪ ﺷﻔﺮة إي اﻧﻚ ﻟﻢ ﺗﻘﻢ ﺑﻮﺿﻊ ھﺬه اﻟﺼﻔﺔ أﺻﻼ أن ﻣﻌﺮب ‪ XML‬ﻳﻘﺮاء اﻟﻤﺴﺘﻨﺪ‬
                                                                     ‫ﺑﺸﻔﺮة 8-‪ UTF‬أو 61-‪UTF‬‬




                                                  ‫اﻟﺼﻔﺔ اﻷﺧﯿﺮة ﻓﻲ ﺗﺼﺮﻳﺢ ‪ XML‬ھﻲ ﺻﻔﺔ ‪Standalone‬‬




‫وھﻰ ﺗﻌﻨﻰ أن اﻟﻤﺴﺘﻨﺪ ﻗﺎﺋﻢ ﺑﺬاﺗﯿﺔ ﻓﺈذا ﻗﻤﺖ ﺑﺈﺿﺎﻓﺔ ھﺬه اﻟﺼﻔﺔ إﻟﻰ ﺗﺼﺮﻳﺢ ‪ XML‬ﻓﺈﻧﻪ ﻟﮫﺬه اﻟﺼﻔﺔ ﻗﯿﻤﺘﯿﻦ‬
                                                                                        ‫‪ yes‬و‪no‬‬

                             ‫ﺗﺸﯿﺮ اﻟﻘﯿﻤﺔ‪ yes‬إﻟﻰ أن اﻟﻤﺴﺘﻨﺪ ﻗﺎﺋﻢ ﺑﺬاﺗﻪ وﻻ ﻳﻌﺘﻤﺪ ﻋﻠﻰ أي ﻣﻠﻔﺎت أﺧﺮى‬

                        ‫ﺗﺸﯿﺮ اﻟﻘﯿﻤﺔ ‪ No‬إﻟﻰ أن اﻟﻤﺴﺘﻨﺪ ﻳﻤﻜﻦ إن ﻳﻜﻮن ﻣﻌﺘﻤﺪ أو ﻣﺮﺗﺒﻄﺎ ﺑﻤﻠﻔﺎت أﺧﺮى.‬




                                                               ‫6 ( رﻣﻮز ﻧﺼﻮص ‪ PCDATA‬ﻏﯿﺮ ﻣﺴﻤﻮح ﺑﻬﺎ .‬




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




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




                                                                                              ‫ﻓﻤﺜﻼ ..‬




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




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




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




                                                ‫62‬
                                     ‫اﻟﺪرس اﻟﺮاﺑﻊ‬

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



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




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




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




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




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




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




                                                  ‫اﻟﺮﻣﺰ اﻟﻤﺮادف‬                ‫اﻟﺮﻣﺰ اﻟﻤﺤﺠﻮز‬
                                                   ‫;‪& amp‬‬                          ‫&‬
                                                     ‫;‪& lt‬‬                         ‫>‬
                                                     ‫;‪& gt‬‬                         ‫<‬
                                                    ‫;‪&apos‬‬                          ‫‘‬
                                                     ‫;‪&qu‬‬                           ‫"‬




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

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

                                                                               ‫أﻗﺴﺎم ‪CDATA‬‬




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




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




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

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




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




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




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

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

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




‫: ‪Microsoft Internet Explorer Parser‬‬

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

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

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




‫: ‪James Clark’s Expat‬‬




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

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

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

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




‫‪DataChannel XJ Parser‬‬




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




                                               ‫92‬
‫‪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‬‬




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

                                           ‫اﺷﻌﺮ ھﻨﺎك ﺗﺸﺎﺑﻪ ﺑﯿﻦ ‪ 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‬ﻓﯿﺠﺐ ان ﺗﻜﻮن ﺑﺤﺮوف ﻛﺒﯿﺮة.‬




                                               ‫13‬
                                    ‫اﻟﺪرس اﻟﺨﺎﻣﺲ‬

                                ‫‪ 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‬‬




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




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

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




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




‫‪PHP Programming‬‬       ‫3002-40-51‬       ‫‪Emad Adly‬‬          ‫‪jimmy salh adel‬‬

‫‪Java Programming‬‬       ‫4002-30-8‬        ‫‪jimmy Adle‬‬        ‫‪Devman karim‬‬

‫‪ASP Programming‬‬        ‫4002-5-21‬        ‫‪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‬‬

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



                                               ‫43‬

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:2
posted:12/8/2012
language:
pages:35