Root > Documents > Programlama > Definition Of XML
Cyber-Warrior.Org \ Doküman \ Programlama > Definition Of XML
Madde
  Yazar : Cyber-gangsta
  Date : 04.06.2006 11:55:35
 
# Definition Of XML
 

XmL’in Tanitimi

( XML’i okugum sekil ; IGZEMEL buna göre okuyun)


Xml’in neden kullanildigina dair tatmin edici bir açiklama ,istiyorsaniz,Dan Wellman size söyleyebilir.O size biraz arkaplandan bahseder,kolay kullanimi ile ilgili birkaç detay ve Xml in kalitesini göstermek için temel örnekler verir.

XmL’i belki duymus,beklide duymamissinizdir.Ama bu yaziyi okuyuncaya kadar muhtemelen siz en az bir amatör/hirsli bir web yaraticisinizdir ve Xml muhtemelen en yeni ve büyüleyici bir araçtir.Yani eger adini hiç duymadiysaniz bu utanç verici
Extensible Markup Language anlamina gelen XmL ilkte 1996 kadar erken düsünülmesine ragmen subat 1998’de W3C’nin mütevazi bir teklifi olarak hayata basladi.Sirket gazetelerine göre zamanin “ Web Teknolojisinde Anahtar Teknik Dehalari” olarak adlandirilanSun,Microsoft,Hp ve Netscape gibi isimler digerlerini içinde barindiran W3C çalisan grubu tarafindan icat edildi.

XmL,büyüyen HTML sinirlamasina cevap olarak ve genel standartlarda veri paylasimini ve internet tasarimciligini tanitmak için bir bakima zorla var edildi.Ayrica XmL,veri tabanini,Htm nin netteki bilgileri(Söylenen bilgilerin yapi ve sekli hariç)sunmasi için tasarlanan formatindan ayirmak için yaratilmistir çünkü XmL sadece tabaqn için uydurulmustur ve veri sunmasi için düzenlenmistir.HTML ve XmL, web yaratiminin ying yangi olarak kolayca tanimlanabilir.

XmL in yaraticilarini bir araya getiren 10 orijinal amaç

1.XmL in net üzerinden kullanimi kolay olmali
2.Genis çapli uygulamalari destekleyebilmeli.
3.SGML ile uyum saglayabilmeli(standart genel yapi dili)
4.XmL dökümanlari yoluyla uygulama yazmak kolay olmali
5.Istenilen özelliklerin sayisi kesin bir miktarda tutulmali
6.Xml bilgileri adam gibi okunur olmali
7.resmi ve kisa olmali
8.XmL bilgileri kolayca yaratilabilmeli
9.Kodlu kisayollar varsa aziltilmali
10.Güncellestirme çabucak hazirlanmali

XmL kullanmis biri,bu hedeflerin büyük çapta gerçeklestigini bunlarla bilecek ; Net üzerinden kolay kullanimi var olan internet protokolünü kullanarak garanti altina alinmistir.Büyük çapli uygulamalari destekleyebilecek, örnegin ; net üzerinden bagimsiz olarak kullanilan veri tabani olusturma ve yazilim islemleri artik XmL ile yapilabilecek.SGML’ye uyumlu olmasina ek olarak,basitletilmis bir verisyonu yaratilmistir.Yaraticilarin dediklerine göre,tipik bir kolej ögrencesi iki hafta içerisinde XmL programi yazabilecek ve bu da kesin olarak XmL in yaziliminin kolay olmasinin amaciyla uyusmaktadir.

Kisisel özellikler,bilgiler ve uygulamalar arasindaki uyumu korumak için en aza indirilmistir.HTML,eger birazcik sil bilginiz varsa,okumasi ve anlamasi yeterince kolaydir.XML inde okunup yorumlanmasi bu 10 faktörle kolaylastirilmistir.Hiç tecrübesi olmayan biri bile rahatça açip neler olup bittigini ögrenebilir.Bu demektirki,yazi editörleri netten yada ilgili araçlardan faydalanarak yerine XmL i kullanilabilecek.

Xml’in resmiligni korumak için ayrintilar,program dilini isaretler yoluyla anlatan Extended Backusnaur Format ile uyumlu yazilmistir.Xml belgelerini yaratmak kolaydir : NotePad gibi kolay yazi programini kullanabilirsiniz ve XmL isaret dizini düz bir ASC2 text gerektirir.SGML deki gibi kodlu kisayollar yoktur.Xml aslinda çok hizli üretilmistir : kisisel sirketleri ve organizasyonlari(kendi özel dil standartini yaratan) korumak için gerekliydi.Eger bu amaç olmasaydi,biz simdi süphesiz Java Virtual Machine/Microsoft MAchine ile sun ve Microsoft arasindaki Savas’a benzeyen olaylara masum seyirci olarak kalirdik.

Simdiye kadar Xml in arka planiyla ilgili biraz bilginiz olmustur.Geriye kalan tek gerçek soru,neden onu kullanmaliyim?Baslangiç olarak ögrenmesi son derece kolay özelleme yaparsak son derece küçük bu da tasinabilir ve çok hizli anlamina gelir.HTML nin yeni veri sunmasiyla beraber bir çesit bilgi saklama yeri olarakta kullanilabilir.Buda sizin sitenizin gelisimini kolaylastirir ; depo edilmis bilgileri gelistirebiliriz ve bu degisikler web sayfaniza hizli biçimde yansir.

XmL,html nin ayrintilarini destekler,ayrica kendisinin daha güçlü ayrintilarini da içerir,XLINK ve XPointer adlariyla bilinir.Benzer olarak CSS stilins kullanarak elde edilebilir,yada kendi stiliyle kendiliginden gelir(XSL-extensible style language ve XSLT-extensible style language tasarimciligi)

Muhtemelen kullaniminin en iyi sebebi,temel olarak yeni kullanim dili yaratmak için kullanmak anlamina gelen Meta-Markup dili olmasi.Bu özelligin gücü tahmin edilemez ve neredeyse sinirsiz dil uygulamalari saglar.Ikna oldunuzmu?güzel

XmL belgelerinin 2 çesidi

Kendi XmL belgelerimiz yaratmadan önce,bir noktaya daha deginmek gerekir.Iki çesit XmL belgesi vardir ; dogru belgeler ve iyi düzenlenmis belgeler.Her Xml belgesi iyi düzenlenmek ister ama her belge dogru olmak zorunda degildir.Bu konuyu genisletirsek ; iyi düzenlenmis bir belge belli bir rakam düzeni ve Xml kurallari içermesi gerekir,aksi taktirde çalismaz.Ama geçerli ve dogru olmasi için ya Document Type Definition(DTD)yada ikili bir karisim içermek zorundadir.Gelecek tavsiye için dahili bir DTD nin örnegi harici bir DTD üzerinde kurulmalidir.Eger DTD nin ne demek oldugunu bilmiyorsaniz endiselenmeyin kisaca açiklayacam.

Bir noktayla deginirsek,XML, HTML den daha dikkatlidir ve tasarim amacina uymak ister.Birsey daha her sarkik ucun basariyla beraber bir sonu olmasi gerekir.Dilerseniz XmL ile biçimlemeden ayirma yöntemine temel örneklerle devam edelim.Bu örnekte basliklari ve ilgili haberleri saklamasi için XmL i ve bunlari bize sunmasi için HTML sayfasini kullanicagiz. Zaman geçtikçe Xml araçlari artarak marketlerde görülmeye basliyor.Eger oturup ögrenmek için ve XmL in kendisinin nasil kullanildigini anlamak için zamaniniz varsa,bu olay çok iyi ve güzel.Bu yazimin amaci ben her seyi sade notepad kullanarak yarattim, sizinde bu yazi sayesinde daha yakin olacaginiz düsünerekten aynisini yapmanizi tavsiye ederim.

Notepad’i açin bos sayfaya altta belirtilen kodu yazin.

<?xml version="1.0" standalone="yes"?>

Bu XmL in bilinen bildirisi ve tüm XmL belgelerinin iyi düzenlenmis yada dogru olup olmadigini anlatan satirdir.Küçük harflerle yazili olmasi gerekir.Bu bölüm niteliginde 1.0daki belgeler kadar dikkat gerek degildir.Ama yinede iyi bir pratik yapma imkani içerir.

Buna ek olarak,bazi diger kisisel yöntemlerde kullanilabilir mesela UTF-8 ve stand-alone dagilimi gibi karakter kodlama yolu.Bu örnekte DTD yaratacagiz(kullanmamiza ragmen).Ek olarak,eger özellikleri sifrelemeye karar verdiyseniz,önce seri özelliklerini çözmeniz gerekir.

Haber dizini yaratmak için,haber basliklarini depolamak için bir yere ve asil haberleri saklamak için bir yere ihtiyacimiz var.Xml belgeleri , elementleri sikistirmak için 3 asama içerir.Ilk yada belge elementi diger bütün elementleri içinde bulundurur ve ana element olarak bilinir.Bölgelerdeki elementlerin mantikli emir talimatlari DTD nin içinde tanimlanir ve baglanmasi gerekir.DTD harici yada DTD dosyasini tanitan yada dahili olanin yoluna …(çeviri yok).Eger harici DTD yi tanitmak istiyorsak,belgelerin bir sonraki düzene uymasi gerekir.

<!DOCTYPE News SYSTEM "my.dtd">


Bu yol kullaniciya DTD nin adini ve yerini bildirir.Ama bizim DTD(belge tipi niteligi)miz dahili oldugu için bir sonraki yolu kullanacagiz.

<!DOCTYPE News [

Bu yazi DTD ye haber adini verecek.”Sistem” niteligi yerine açik bir köseli ayraç kullanin.(DTD nin sonunda kapatacagiz).Simdi ise elementleri görünmeleri için (belgelerimizde çikan) adlandircaz.

<!ELEMENT News (article)>


Bu yazi haberleri , haberleri ana element olarak tanimlar ; bu element diger bütün elementlere tasimacilik görevi yapacak.Ana elementi adlandirdiktan sonra ayraçtaki diger çocuk elementlerini adlandiricaksiniz.Bu durumda haber elementini adlandiracagiz.

<!ELEMENT  Article (Headline+, story+)>

Tekrar bu elementimizin 2 tane çocuk element içerdigini anlatiyor.Baslik ve hikaye her biri yada daha fazla gözükmesi gerekir.Elementlerimizn adlandirildiginda belgelerimizde ayni anda gözükmesi gerekir.Virgül,onlarin muhakkak gözükmesi gerektigini anlatir.Eger virgülü düz çizgiyle çektirseydik,buda ikisinden birinin gözükebilecegini anlatirdi ama ikisinin birden degil.Simdi basligi ve hikayeyi tanimlamaliyiz.

<!ELEMENT Headline (#PCDATA)>

<!ELEMENT Story (#PCDATA)>


#PCDATA elementlerin isimlendirilmis karakter verisi içermesi demektir,buda bu elementlerin içinde bulundurdugu tüm paragrafi isimlendirir ve bu yüzden diger sekilli karakterleri içermez.(açik parantez ] falan gibi).Eger isaretlendirmek istiyorsaniz elementlerinizi,elementleri #CDATA dige tanimlamaniz gerekir.
DTD lerde bazen çikabilen diger durumlari göstermek için sifatlari tanimlayacagiz.Sifatlar elementler hakkindaki bilgileri elementlerin birer parçasi yapmadan saklamaya yarar.Yazi elementimize tek bir numara verecegiz bu numara sifatlari kullanicak.Bu örnekte kullanmicaz ama genel olarak onlar çok yararli olabiliyor ve çogunlukta kullaniliyor.

<!ATTLIST Article ArticleNumber ID #REQUIRED>

Bu article number’i article elementinin bir sifati olarak ID tipiyle beraber ayarlayacak.#REQUIRED onun zorunlu oldugunu gösterir.Eger sifatinizin sabit olmasini istiyorsaniz,yazinin sonuna #IMPLIED eklemeniz gerekir.
Bu bizim DTD mizin içerdigi tüm ihitiyacimiz olan sey.Daha sonrali birçok anahtar sözcük kullanacaksiniz ve DTD lerde kullanabileceksiniz.DTD nin sonuna kapali bir parantez ve kapali açi üçgeni koyun]>
Simdi,XML dosyaniza bir çift haber yaratmaya hazirsiniz.Siradaki kodlari ekleyin.

</article>

 </article ArticleNumber="002">

  <headline>Microsoft Announce New Super-Stable OS</headline>

  <story>Bill Gates yesterday announced the next realease of the popular Windows operating system will be the "most stable yet".  Extensive User Testing has been successful so far, with only 765489652554, hang-ups, freezes or crashes on the prototype OS since testing began yesterday.</story> </article>

</news>


XML dosyaniza istediginiz kadar yazi ekleyebilirsiniz,herhangi bir sinirlama yada yasaklama yoktur.Bütün dosyalar simdi böyle gözükmeli.

<?xml version="1.0" standalone="yes"?>

<!DOCTYPE News [

<!ELEMENT News (article)>

<!ELEMENT  Article (Headline+, story+)>

<!ELEMENT Headline (#PCDATA)>

<!ELEMENT Story (#PCDATA)>

<!ATTLIST Article ArticleNumber ID #REQUIRED>

]>

<news>

 <article ArticleNumber="001">

  <headline></headline>

  <story></story>

 </article>

 <article ArticleNumber="002">

  <headline></headline>

  <story></story>

 </article>

</news>


Test Asamasi

Dosyayi “news.xml” olarak kaydedin bu islemleri yaptiktan sonra dosyanizin sitede nasil göründügün görebilirsiniz.Ben internet Explorer 5.5 kullandim(XmL parseri olan) eger siz baska bir sey kullaniyorsaniz,onun XmL i desteklediginden emin olmaniz gerekir.Belgeler browser’a yüklendikten sonra,en tepede XmL yazitiniz göreceksiniz.Bu da DTD nin ilk satirini takip edip,orda hbaer yazilariniza dönüyor bu da çalistigi anlamina gelir.

Simdi bu bilgiyi kullanmamiza yardimci olan ve bize daha iyi bir yol sunan bir HTML yaratmamiz gerek.XmL veri kaynaklarini okuyabilmenin birçok yolu var bir çoguda Java Script içeriyor.En kolay yol sadece Html kullanilarak elde edilebilir.Ama bu çalismada,çalistirmak için zaman harcadiginiz DTD’yi silmeniz gerekir.DTD ler XmL in harici parçasidir bu yüzden size nasil bir tane yaratmayi göstermek için seçtim.News.xml’yi notepad yardimiyla tekrar açin ve DTD yi silin <!DOCTYPE to ]> daki her seyi ve news2.xml olarak kaydedin.Bu dosyayi hala browser da görebilirsiniz ve o dosya hala iyi düzenlenmis olarak nitelenmistir.

Simdi notepad’e geri dönün yeni bir dosya açin ve HTML isaretleri ile içini doldurun.

<HTML>

<HEAD>

</HEAD>

<BODY>

</BODY>

</HTML>


Bu bölümde 2 asama var.Önce html sayfasini XmL dosyasindaki bilgilere okutmak,sonrada XmL den alinan dosyalari formatlayarak ele almak.Bilgi <xml> yazisini belgenin ortasina yazarak okunabilir.
<xml id="news" src= "news2">Bu XmL dosyasini okuyacak.Ele almak için asagida belirteni yapmak gerekir.Bu yaziyi <xml> in hemen altina yazin.

<table border="0" datasrc= "">

<tr>

<td><span datafld="headline"></span></td>

</tr>

<tr>

<td><span datafld="story"></span></td>

</tr>

</table>


Simdi bu dosyayi news.htm diye kaydederek browser’dan açin.Sihirmis gibi,iki basliginiz ve ilgili haberleriniz,hikayeleriniz sayfada görünecek.Bu baslik ve hikayeden istediginiz kadar HTML’yi modifiye etmeden yazabilirsiniz.Onlar table’da belli sirayla çikcaklar.Buna XmL islands denir(xml adalari),ayri dosyalarda kullanilabilir.Bence ayri dosyalar kullanmak daha iyi çünkü dosyayi kullandiginizda ve formatladiginizda zorluk çekebilirsiniz.

Sonuç

Html’nin üzerinde,CSS eklerken yada sekillerle adlandirilirken <b>, <I> yada <font> yaziyi kontrol etmek için,kontrol sahibi oldunuz.Bunu Javascript ile dahadaq ilerletebilirsiniz.Ama sinirsiz kontrol için,XSL yada Extensible StyleSheet Language kullanmaniz lazim onunda kendi içinde konulari var.Umarim bu örnekler XMLNin gücünü ve kullanisliginiz ispatlamistir.Bu anlatilan dil,Internetin gelecegi olcaktir.

 

 

Bu doküman Dan Wellman tarafindan yazilmis olup Haberci grubu adina Cyber-Gangsta tarafindan Türkçe’ye çevirilmistir.

   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©