Ana Sayfa

Bilgisayar Eğitim CD

Bilgisayar Kitapları

 
 
Adım Adım Web Eğitim Seti Adobe Flash Eğitim Seti


Ajax Dersleri

Ajax Eğitim Seti

XML’e Giriş

Merhabalar Arkadaşlar. Yazının başlığından da anlayabileceğiniz gibi sizlere XML hakkında önemli bilgiler veren bir yazı dizisi sunacağım. Bu yazı da serinin ilk yazısı olacak. AJAX-TR‘ de XML’ in konu olarak yer almasının temel nedeni AJAX ile uygulama geliştirirken sizlere XML bilgisinin de lâzım olacak olmasıdır. Ayrıca sadece bu alanda değil uygulama geliştireceğiniz pek çok alanda XML’den faydalanabilirsiniz. Günden güne popülerliği artan XML’in neden bu kadar önemli olduğunu öğrenmek istiyorsanız öncelikle XML NEDİR (NEDEN BU KADAR ÖNEMLİ) başlıklı yazımı okumanızı tavsiye ederim. Bu yazıda ise XML’in önemini bir kaç örnekle tekrar açıklayıp daha sonra kullanım mantığını anlatmaya çalışcağım.

Öncelikle XML’e ihtiyaç duyabileceğiniz bir senaryo üzerinden gidelim. Diyelimki siz bir araba üreticisisiniz. Fakat araba üretmek için farklı firmalardan parça alıyorsunuz. Tekerleği A firmasından, camları B firmasından, müzik sistemini C firmasından, ısıtma sistemini de D firmasından aldığınızı düşünelim. Müşterilerinize sunacağınız üretim planınız dolayısıyla bu firmalara bağlı. Peki her defasında arayıp onlardan stok vs. hakkında bilgi almanız uygun olur mu? Elbette olmaz. O zaman onlardan verilerini paylaşmalarını isteyeceksiniz. Buraya kadar herşey güzel. Peki veri paylaşım işi ne şekilde yapılacak?

Hemen aklınıza “veritabanı yönetim sistemine erişsinler” gibi bir çözüm gelebilir. Bu yaklaşım belki bir yere kadar doğru. Ama düşününki tüm üreticiler farklı veritabanı yönetim sistemleri kullanıyor, bu veritabanı yönetim sistemleri de verileri farklı tipte tutuyorlar. Her biri için uygulamanızda farklı çözümler üretmeniz gerekecek. Ayrıca güvenlik, performans, ölçeklenebilirlik ve erişim yönetimi gibi konularda da düzenlemeler getirilmeli.

Demekki ortak bir standart oluşturulup veriler o şekilde paylaşılmalı. İşte XML burada devreye geriyor. Kendi standartınızı tanımlama imkanına sahipsiniz. Belki bir yerlerde okumuşsunuzdur ; XML için bir meta-dildir derler. Yani kendi tanımlamanızı yapmanıza , kendi standardınızı oluşturmanıza imkan verir. Bu örnek bir B2B (BUSINESS TO BUSINESS) uygulama örneğiydi.

Başka bir örnekle yolumuza devam edelim. Bu örnekte ise XML altında farklı bilgileri birbirlerine karıştırmadan tutabilme imkanımızdan bahsedeyim. Düşünün ki bir masaüstü uygulaması geliştirdiniz ve bu uygulamanıza 12 farklı dilde dil desteği eklemek istediniz. Genelde izlenen yol şudur: Uygulamanın olduğu dizinin içine Lang adında bir dizin yaratılır oraya da 12 adet metin dosyası koyulur ve içlerinde farklı dillerdeki çeviriler tutulur. Siz de uygulama menüsünden ilgili dili seçersiniz ve uygulama artık o dile ait dosyayı kullanır. Güzel bir çözüm gibi görünüyor. Peki daha iyisi olabilir mi? XML kullanırsanız olur Her dil için farklı etiketler tanımlayıp bu etiketlerin arasına çevirileri yerleştirirseniz tek bir XML belgesi ile işi halletmiş olursunuz. Ne gibi bir avantaj elde ettik diye soruyorsanız hemen söyleyeyim. Bu yapı daha hızlı çalışacaktır. Ayrıca tek bir dosya olduğu için yönetimi daha kolaydır. Ya da farklı kelimeler eklemek istediğinizde daha rahat güncelleme yapabilirsiniz. Hatta buradaki çevirleri farklı uygulamalar için de kullanılabilir kılmış olursunuz.

Özetleyecek olursak XML önemli bir teknoloji ve çoğu uygulamada kullanmak faydalı olacaktır. Yapılan testlerde de çoğu zaman bir veritabanından daha hızlı cevap verdiği görülmüştür. Eğer işlemleriniz uygunsa verilerinizi XML içinde tutarak hosting firmanıza bir de veritabanı yönetim sistemi için para ödemekten de kurtulmuş olursunuz. Fakat bir noktanın altını çizmek istiyorum. Asla XML bir veritabanı yönetim sistemi gibi yetenekli olamaz. XML veriyi sadece saklar ama veritabanı yönetim sistemleri bu verileri kullanarak çok daha detaylı işlemler yapabilirler. O nedenle XML mi yoksa Veritabanı Yönetim Sistem mi kullanayım gibi bir soru aklınıza gelirse, sizlere tavsiyem ihtiyaç analizlerinizi iyi yapmanız yönünde olacaktır. Ayrıca artık çoğu Veritabanı Yönetim Sistemi XML’i bir veri yapısı olarak desteklemektedir. Bunu da göz önünde bulundurmalısınız.

Sanırım yukarıda yazdıklarım XML’ in faydalarını ve getirilerini anlamanız için yeterli olmuştur. Şimdi de XML ve etiketleme işlemi hakkında birşeyler söylemek istiyorum. Etiketler burada bizlerin düzenli bir yapıya kavuşmasını sağlıyor. Mesela siz bir kıyafetinizi götürüp buzdolabına koyar mısınız? Ya da yiyeceklerinizi kıyafet dolabında saklar mısınız? Umarım yapmıyorsunuzdur İşte XML’de tanımlayacağımız etiketler neyin nereye ait olduğunu belirtmek için kullanılır. Bu durumu XML kullanarak anlatmak istersek şöyle birşey yapabiliriz: (Yazım kuralları ile ilgilenmeyip mantığa yoğunlaşın)

 

XML’de tanımlayacağımız etiketler



Bu yapı ile artık bize “gömlek” lazım olduğunda buzdolabına boşu boşuna bakmayacağız. Kıyafet dolabına gidip oradan da gömleklere ulaşabiliriz.

Konunun pekişmesi için başka bir örnek daha verelim. Düşünelim ki veritabanımızda tablolarımız var ve orada AJAX-TRyazarlarına ait bilgileri tutuyoruz. Biz bu yapıyı XML’e taşımak istersek şöyle bir hiyerarşi oluşturabiliriz.

 

XML Örnek 1

XML Örnek 2


Bu örneği yazınca ne kadar açıklayıcı bir örnek verdiğimi düşündüm. Nedenine gelince: Burada ben etiketleme kullanmamış olsaydım ve Erhan’ın doğum tarihini öğrenmek isteseydim bana 2 adet doğum tarihi bilgisi gelirdi. Çünkü 2 tane Erhan var. Fakat bunların hangisinin hangi Erhan’a ait olduğunu tespit etmem güçleşirdi. Bu yapıda ise doğum tarihi gelen kişinin, soyadını da öğrenebilme şansımız var. Bu sayede hangi doğum tarihi hangi yazara ait bilebiliriz.

XML ile ilgili örenkleri çoğaltmak mümkün. Sizler de ev adresinizi XML yapısı ile ifade etmek isteseniz nasıl bir hiyerarşi kuracağınızı düşünerek bu konuyu pekiştirebilirsiniz. Burada dikkat etmeniz gereken oluşturduğunuz yapının OKUNABİLİR (HUMAN READABLE) olmasıdır. Yani sizin XML ile ifade ettiğiniz adresinizi ben açıp baktığımda anlayabilmeliyim. Zaten amaç bilgiyi paylaşmaksa burada okunabilirlikten vazgeçemeyiz. Yine aynı şekilde mümkün olduğunca basit hiyerarşiler oluşturmalısınız. Yani ayrıştırmak ve bu XML’i kullanarak uygulama geliştirmek kolay olmalıdır. Son olarak da size tavsiyem etiket adlarınızı mümkün olduğunca açıklayıcı seçmeniz. Burada kendinize göre kurallar oluşturabilirsiniz. Ama etikelerinizi adlandırırken mutlaka daha sonra da açıp bakınca anlayabileceğiniz şekilde isimler seçin.

XML ile tanışmanızı ve mantığını anlamanızı hedeflediğim yazım şimdilik bu kadar. Bir sonraki yazıda ise sizlere XML’in dil kurallarından ve XML belgelerinizi hazırlamakta kullanabileceğiniz araçlardan bahsedeceğim.