XML Nedir? Uygulamalı Örneklerle XML

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 <p>(paragraf),<table>(tablo) gibi taglar vardır ;bunlar Brovser’ların(örneğin ie6) otomatik olarak tanıyabildiği taglardır.fakat XML de bu tagları kendimiz oluşturuyoruz ve Brovser’a tanıtmak için XSL(eXtensible Stylesheet Language–bundan ilerde bahsedeceğim) dilini kullanıyoruz.)

XML verileri tanımlamak için DTD(Document Type Definition) veya XML Schema kullanır.

XML ve HTML arasında ne fark vardır?

—> XML veri transferi yapmak için dizayn edilmiştir.HTML ise Web sayfasında Web master tarafından tasarlanan bilgi ve resimlerin client tarafından görüntülenmesini sağlayan bir dildir.

—> XML in ortaya çıkış amacı HTML in yerini alması değildir,bu iki dilde farklı amaçlar için oluşturulmuştur.XML sonradan piyasaya çıkmıştır.
—> HTML bilginin kullanıcıya gösterilmesini(sunulması) sağlarken XML bu bilginin irdelenmesi,hesaplanması,tanımlanması gibi işlemlerle ilgilenir.
—> XML normalde hiçbişey yapmaz(saçma gelebilir ama böle),sadece bilginin depolanması,bilgi yapısının oluşturulması ve bilginin gönderilmesini sağlar.

—> Son olarak XML ilerde bütün web sitlerine girecek ve hayatımızda HTML kadar önemli bir yer edinecektir.

Örnekle XML

Basit bir örnekle pekiştirelim.Mesela bir adres listesi hazırlayalım.

<?xml version=’1.0′?>
<!DOCTYPE addressbook SYSTEM ‘AddressBook.dtd’ [
<!ENTITY amp ‘&#38;’>
<!ENTITY amp ”’>
]>
<addressbook>
<!– This is my good friend Ahmet –>
<contact>
<name>Ahmet ERGUN</name>
<address>6001 Sk No:24</address>
<city>izmir</city>
<zip>35500</zip>
<phone>
<voice>232-000-1234</voice>
<fax>232-000-1234</fax>
</phone>
<email> [email protected]Bu mail adresi spam botlara karşı korumalıdır, görebilmek için Javascript açık olmalıdır </email>
<web>http://www.ceturk.com</web>
<company>ERGUN Services</company>
</contact>
<!– This is my old collage roomate Ayhan. –>
<contact>
<name>Ayhan ERGUN</name>
<address>6001 Sk. No:23</address>
<city>izmir</city>
<zip>35500</zip>
<phone>
<voice>212-111-1234</voice>
<fax>232-111-1234</fax>
</phone>
<email> [email protected]Bu mail adresi spam botlara karşı korumalıdır, görebilmek için Javascript açık olmalıdır </email>
<web>http://www.ceturk.com</web>
<company>ERGUN Services</company>
</contact>
</addressbook>

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 <adressbook> etiketinin bir ya da daha fazla <contact> etiketi içereceği belirtilmektedir. ikinci satır ise bir contact etiketinin içinde geçecek elemanları belirtmektedir.

HTML DTD Örneği

<!ELEMENT adresdefteri (contact)+>
<!ELEMENT irtibat (ad,adres+,il,postakodu,telefon,email,web)>
<!ELEMENT ad (#PCDATA)>
<!ELEMENT adres (#PCDATA)>
<!ELEMENT il (#PCDATA)>
<!ELEMENT postakodu (#PCDATA)>
<!ELEMENT telefon (#PCDATA)>
<!ELEMENT fax (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT web (#PCDATA)>

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:

<site>
  <isim> Lugatsoft </isim>
 
 
 <bölüm>
    <bolumadi> FORUM </bolumadi>
   <kullanci sayisi> 2000 </kullanici sayisi>
  </bölüm>
 
 <bölüm>
    <bolumadi> HAERLER </bolumadi>
   <kullanci sayisi> 500 </kullanici sayisi>
  </bölüm>
 
</site>

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 Javascript, 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.., Javascript, Jscript, 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ı

DOWNLOAD | ALTERNATİF

(Toplam: 67, Bugün: 1 )

Leave a reply:

Site Footer