XML Nedir?
eXtensibe Markup Language kelimelerinin baş harflerinden oluşan HTML gibi Markup Language (yani <> tagları kullananılarak hazırlanan ) bir Web programlama ve bilgi transformasyonuna yarayan bir dildir.
XML verileri(data) tanımlamak için dizayn edilmiştir.
XML tagları HTML deki gibi önceden tanımlanmamıştır,bu tagları programcı yapar.(Örneğin HTML’de
(paragraf),
|
etiketler o uygulama icin geliştirilmiş olan özel işaretleme dili ile tanımlanır.
Bu
işaretleme dilinin yapısı ise ML DTD ya da SML schema olarak
adlandırılan belge tanımlama dosyalarında belirtilir Aşağıda
vereceğimiz örneğimizde adres defteri örneği için tanımlanmış bir adres
listesinde hangi etiketlerin bulunabileceği ve bu etiketlerin hangi
etiketleri içerebileceği gibi bilgiler verilebilir. İlk satır
HTML DTD Örneği
Farklı Bir Kaynakla XML
HTML gibi XML’de tag”lerden oluşur. Fakat, ikisi arasında tag kullanımı anlamında çok büyük bir mantık farklılığı vardır. HTML tagleri yalnızca sayfaya biçim vermek için kullanılır. (Misal bold, italik, resim, bgcolor vs..) XML’de ise tagler bilgi saklamak, ve saklanan bilgi türü hakkında bilgi vermek için kullanılır. Örn:
Lugatsoft
FORUM
2000
HAERLER
500
gibi. Tabi bu en basitinden bir XML dosyasi, ama yine de XML’in 2 ozelliği dikkat cekiyor hemen
1- bilgilerin “tree” yani agac yapisi seklinde bir hiyerarsiye sahip olmasi
2- tag isimlerini bizim vermemiz.
XML’in özü bu olsa da, hemen akla gelecek soru “iyi de kardeşim, ne işe yarar bu?”
Bir kere sakladığınız bilgiyi inanılmaz derecede anlaşılır bir standartta saklıyorsunuz. Hiç XML kullanmamış biri dahi yukarıdaki XML kodunun ne oldugunu anlayabilir. Mesela, eminim CM 03-04 oynayanlar vardır. Acın CM folderlarını, configuration dosyalarına girin. Göreceksiniz ki tüm konfigürasyonlar XML olarak tutuluyor. Hatta bu dosyaları kolayca anlayıp, CM 03-04 ayarlarını kendinize göre değistirebilirsiniz.
XML deyince, mutlaka bilinmesi gereken bir diğer kavram DTD. DTD hakkında yüzlerce resmi tanım okuyabilirsiniz, ben şimdi kısaca bir örnekle ne olduğunu anlatacağım, sanırım mantığı anlaşılacaktır:
Farzedelim ben dünyanın en büyük Kütüphanesinin yöneticisi Romario’yum. Kütüphanemde binlerce kitap var. Bunları ayrıntılarıyla kaydedip kataloglayacagim. Kitapları sınıflara ayırıyorum.. (Ansiklopedi, Atlas, Roman) diyelim. Listeyi uzatmıyorum ki işimiz uzamasın. Daha sonra bu kategorilerden Roman’ı da alt kategorilere ayırıyorum. (Politik, Korku, Aşk) şeklinde. Ve en son olarak da her roman için yazar adı, dili, ve roman adını saklıyorum.. Ansiklopedi ve Atlas için ise sadece yayınevini saklıyorum.. Ve tüm bunları XML olarak saklıyorum. (Örnek bir dosya yazacaktım ama çok uzun olacak, nasıl olacağını anladığınızı varsayarak devam ediyorum)
Bu XML dosyasını yaratıp web siteme koyuyorum. Tabi girenler bu dosyaya bakmıyorlar. Bir de stylesheet ekliyorum ki (stylesheet te XML konusunun 3üncü önemli öğesidir) insanlar HTML olarak bir sayfa görüyorlar.
ARA NOT - STYLESHEET nedir? Bu benim XML dosyama göre hazırlanmış özel bir konfigürasyon dosyası. Mesela bu dosyada diyorum ki, table oluştur, kitap ismini bold yaz, yanına yazar adını, dilini ve türünü italik yaz. Ayrıca tüm kitapları da baştan (Ansiklopedi, Atlas, Roman) kategorilerine göre ayır. Server XML dosyasını ve bu stylesheeti birleştirip bir HTML sayfası oluşturuyor. Ve sayfaya girenler kütüphanedeki kitapları HTML sayfasında görüyor.
Şimdi.. Farzedelim Rusyanın en büyük kütüphanesinin yöneticisi Karpin’de elindeki kitapları XML’e döküyor. Ve aynı yöntemle internete koyuyor. AMA ONUN TAG TANIMLARI VE XML YAPISI BENIMKInDEN COK FARKLI. Fakat büyük bir sans kacıyor, ikimizin XML yapısı aynı olsaydı, ben onun sitesindeki XML’i kendi siteme alıp kendi stylesheetimle birleştirip kendi sayfamda yayınlayabilirdim. Yani, eer tüm dünyada Kütüphane XML yapısı aynı olsa, hepsine ulasılan bir site yapılır burada search vs.. yapılabilirdi. (Bu is icin özel diller var - XQuery falan, ama bunlar genelde firmadan firmaya değişiyor). İste DTD bu. XML kuralları koyan bir dosya. Ve eger benim XML’in bu Data Definiton’a uymuyorsa hata veriyor. Ve bu sayede standarta oturtabiliyorum.
XML, DTD, Stylesheet bu. Zaten ilk etapta ögrenilmesi gerekenler bunlar. Artık hemen hemen tüm programlama dilerinin XML’e has fonksiyonları var. (Benim bildiklerim Java******, Java, ActionScript vs..)
Hatta artık geleneksel database’ler yerine XML şeklinde databaseler yayılıyor. Ama tahmin edeceginiz gibi bunların en önemli handikapı - tüm dataların text formatında kaydedilmesi. Bu yüzden de çok yer kaplıyor. Bu DB’lere Native XML DBler deniyor. Bir de, XML olarak saklamayan, ama size XMLmiş gibi yapanlar var ki bunlar herhalde yakında cok cok popüler olurlar. Bunlar ise, kendi teknikleriyle saklıyorlar datayı, fakat sizden SQL querysi yerine XML queryisi alıyorlar, ve sonucları da XML olarak veriyorlar. Ama yeni ögrenenlerin kafası karışmasın, bu son paragraf ayrı bir başlık. Bu konu biraz XML’in DB’e uygulanışı kapsamında.
Nasıl ki web sayfası yapması ve HTML cok zor degildir ama ustalasmaya calıstıkca secenekler artar (PHP, ASP, JSP, ColFusion vs.., Java******, J******, VBScript, DHTML, SHTML) ve insanların gözü korkar, bu XMLde öyle. Temelleri cok zor degil. Ama biraz derinleşince, her firmanın kendine has XML dilleri, XML spesifikasyonları vs.. oldugunu görürsünüz. Ama nasıl digerinde bir ucundan baslayınca yavas yavas hersey ögreniliyor, XMLde de öyle. Korkmayın, deneyin..
Uygulamalarla XML Eğitimini 39 sayfalık Doc Dosyası
0 yorum yazılmıştır

Son Yazılarım
- Macera Devam Ediyor
- Dünyanın En Küçük Bilgisayarı
- Google Chrome Eklentileri Yolda
- Google'a Şekil Verin
- MSN, 11 Eylül'de Neden Açılmadı?
- Unutkan Londralılar!
- İnternetin En Tehlikeli İsmi
- Facebook Her Yerde
- Yeni Bilgisayarınızı Temizleyin
- Daha Hızlı Live Hotmail
- Nokia Müzikle Geliyor
- Windows Temaları
- Grand Theft Auto Çin Mahallesi'nde
- 1 TB Ücretsiz Alan İster misiniz?
- Google Gaudi ile Sesleri Arayın
- Google Chrome'da Son Durum
- MSN 9 Final Sürüm indir
- Facebook Fotoğrafları PC'nizde
- Google Valve'i Satın Alıyor
- Nintendo Çalışanları Altın Değerinde
- Samsung'un SanDisk Mücadelesi
- CrossFire Ne Kadar Etkili?
- Hafıza Kartından Dosya Kurtarma
- Yahoo İşten Çıkartıyor
- PSP Sonunda Skype'a Kavuştu