XML
Bölümde;
XML'nin ne Olduğunu
XML sayfaları tasarlamak için hangi programları kullanabileceğinizi
XML dilinin özelliklerini
XML sayfaları ile birlikte kullanılan diğer formatları
XSL ve DTD'nin ne olduğu ve XML dünyasında nasıl bir yere sahip olduğunu öğreneceksiniz.
Markup Dilleri (Bu da Ne mi? Buyurun Devam Edelim):
Markup dilleri deyince aklımıza ilk gelen şey HTML'dir. HTML kendi içerisinde bir markup dilidir. Birazdan XML'i sizlere aktardığım zaman XML'nin de bir markup dilini olduğunu göreceksiniz. Peki markup dili nedir (Devam Edelim Ve Öğrenelim).
Markup dili denince herhangi bir platformda kullanılan, veriyi işleyebilecek özelliklere sahip genişleyebilen veya genişleyemeyen bir dil akla gelmelidir. Birliyorum ki çok anlaşılır ve net bir tanım olmadı. Markup dilleri kendi aralarında birçok gruba ayrılabilecek özelliktedir ve bu özelliklerin hepsini içeren bir tanım yapmak da oldukça zor olur.
HTML'in açılış halinin HyperText Markup Language olduğunu sanırım daha önce okumuşsunuzdur. Yani HTML de kendi içerisinde bir işaretleme dilidir. Kendi içerisindeki bir takım kurallara göre kendisine verilen bilgiyi platform içerisinde sunabilmektedir. Ancak HTML stabildir. Yani genişleyemez HTML'i esas alarak başka bir diller türetmek imkansızdır. Peki diğer diller de HTML gibi genişleyemezler mi? Cevap hayır olacak. Diğer diller içerisinde bazıları genişleyebilme özelliğine sahiptirler. Bu dillere verebileceğim eskilerden bir örnek SGML'dir. SGML geliştirilen uygulamaların platform bağımsız olarak çalışabilme ihtiyacından doğmuştur. Örneğin Windows ortamında çalışan bir program başka bir platformda çalışmaz. Daha özel ve anlaşılır bir örnek Microsoft Office programı Linux işletim sisteminde çalışmaz. Buraya kadar işaretleme dillerinin genişleyebilme ve genişleyememe gibi özellikleri olduğunu öğrendik. Artık XML'e başlangıç yapma zamanı geldi. (Restart GO)
XML'e Giriş:
eXtensible Markup Language kelimelerinin kısaltılmış halidir. Sgml dilinden türetilmiştir. Sgml bir meta dildir. Buna bağlı olarak XML de bir meta dildir. Yani XML'den başka diller yapılabilir. HTML'de HTML'İn kurallarına göre oynarsınız. Eğer bilgi body tagının arasına yazılmalı ise başka bir alternatifiniz yoktur. Body tagının arasına bilgiyi yazmak zorundasınız. Ancak ilerde öğreneceğimiz gibi XML'de kendimiz bazı taglar oluşturabiliyoruz. (AaaAaaAaa Ne Kadar Güzelmiş!!!!!!)
XML'deki belirgin özelliklerden biri bilginin yapısının belirlenmesinde kullanılmasıdır. HTML'deki özellik ise bilginin sayfada nasıl gösterileceğidir. Yani HTML bilginin sayfa içerisindeki yerleşimi ve sunulması işi ile ilgilenir.
Peki XML sadece bilgilerin tutulma formatları ile mi ilgileniyor? Eğer ben bir XML dökümanı oluştursam bilgilerin sayfada yer alacığına nasıl karar vereceğim?
XML kendi içerisinde değişik alt başlıklar taşımaktadır. Bu yapılar yukarıdaki soruların da cevaplarını içermektedir. Örneğin DTD ve XSL ile yukarıdaki istekler yerine getirilebilir.
XML'in tam olarak anlaşılması bundan sonraki sayfalarda rahat etmenizi sağlar. XML platformlardan bağımsız olarak bilginin transferinde kullanılır. XML kendi içerisinde 3 farklı kavramı barındırmaktadır.
XML, DTD ve XSL:
İşte XML'in sahip olduğu kavramlar. Şimdi bunları tek tek inceleyelim. Kavram kelimesi ile doküman tipinden bahsetmeye çalışıyorum.
XML: Veriyi barındıran dosyalardır. Bu dosyalarda verinin ne olduğuna ve bu verinin etiketinin ne olacağına karar vereceksiniz. Veri ve etiket hakkında aşağıdaki örneği inceleyelim.
<?xml version="1.0"?>
<kitapci>
<bilgisayar>
<kitap>
<adi>TURKWEBMASTERS.NET</adi>
<yazari>YUNUS</yazari>
<fiyati>PaYLaŞMaK AdInA BeDaVa</fiyati>
</kitap>
<kitap>
<adi>YuNuS PaYLaŞıM KiTaBı</adi>
<yazari>YuNuS TaPa</yazari>
<fiyati>PaYLaŞMaK AdInA BeDaVa</fiyati>
</kitap>
</bilgisayar>
<roman>
<hikaye>
<ad>YuNuS PaYLaŞıM KiTaBı </ad>
<yazar>YuNuS TaPa</yazar>
<fiyati>PaYLaŞMaK AdInA BeDaVa</fiyati>
</hikaye>
</roman>
</kitapci>
Yukarıda yazmış olduğum kodlar XML standartlarına göre hazırlanmış olan bir dokümandır. Dikkatle incelerseniz, içeriğin ne olduğu ve hangi bilginin ne ile gruplandığını belirtilmektedir. Benzer örnekler Internet ortamında gayet bolca bulunabilir. Dikkat ederseniz XML taglarını kendimiz belirleyebiliyoruz. Fakat HTML'de bizim tag belirlemek gibi bir şansımız yoktur. Var olan taglar ile işimizi görmeye çalışıyorduk. İşte bu da XML ve HTML'in ayrıldığı bir noktadır. Bu kodları incelerseniz ve uygulama yaparsanız daha iyi anlarsınız.
Peki bilginin sayfadaki sunumu hakkında hiç mi hakimiyetimiz olmuyor? Sunumda kriterleri değiştirebiliyoruz.
XSL: XSL sayesinde XML dokümanındaki elementlerin (element mi? Oda ne?) çıktısı, görüntülenme yeri gibi bilgiler belirlenebilmektedir.
DTD: Şema dosyalarıdır. XML veri dosyalarının yapısı hakkında bilgileri içermektedirler. Bazı XML dosyalarının belirli bir standartta olması gerekir. İşte bu standardı sağlayan da DTD, standardın tanımı ve XML dosyalarının bu standartlara uyup uymadığını kontrol eder.
Schema: DTD'leri kullanırken birtakım kısaltmalar ortaya çıkmıştır. Bu kısıtlamaları aşmak için geliştirilen bir yöntemdir. XML uygulamalarında, DTD'ye göre daha güçlü bir teknolojiye sahip olmasından dolayı şemalar kullanılmaktadır. Bu dosyalar xsd uzantılı olarak kaydedilirler.
Bu şekilde XSL ve DTD hakkında genel bir giriş yapmış olduk.
XML Dökümanlarının Yapısı ve Dikkat Edilmesi Gerekenler:
XML dokümanlarını biraz daha yakından inceleyip bir XML dokümanın içinde nelerin olması gerektiğine beraber bakalım.
Her XML dokümanın başında;
<?xml version="1.0"?>
ifadesi yer almalıdır. Hatırlarsanız böyle bir tanımlamayı ASP gibi bir dilde de yapmanız gerekir. Dosyaların başında şöyle bir ifadede yer alabilir.
<?xml version='1.0'?>
Eğer XML belgesi içinde Türkçe karakter kullandıysanız;
<?xml version="1.0" encoding="ISO-8859-9"?>
yazmalısınız. Yukarıdaki örnekte satırın altında bir tag tanımladık. Bu tag kodlar arasındaki diğer tüm tagları kapsar. Dolayısıyla bu taga yani <kitapci> tagına "root element" denir. Tüm elementleri kapsayan tag root element ise başka elementlerde var mıdır?
Sayfa içerisinde bulunan her tag aslına bir elementtir. Yani bizim bilgisayar olarak belirttiğimizde bir tagdır kitapci diye yazdığımız tag da bir elementtir. Ancak bu element root element içindeki alt elemtlerden biridir.
Element ismi verirken dikkat etmeniz gereken bazı noktalar vardır. Örneğin element isminin içerisinde "/" işareti olamaz. Çünkü bu işaretin farklı bir anlamı vardır. Ayrıca elementler bir sayı ile de başlayamaz. Biz kendi dokümanımızda <1.kitap> ve <2.kitap> gibi tanımlamalar yapamayız. Ancak element adının başında "_" işareti konulabilir.
XML Dokümanlarının Görüntülenmesi:
XML dokümanlarını görüntülemek için IE 5.0 veya üzeri bir browser'a ihtiyacınız olacaktır. IE ile birlikte gelen "msxml.dll" isimli dosya browser'da XML dokümanlarını gösterebilmektedir.
Şimdi az önceki kodları NotePad'de yazalım ve örnek1. xml adıyla kaydedelim. Dosyayı kaydettikten sonra da browser'ı kullanarak sayfayı görüntüleyelim.
İlk örneğimizi browser'da görüntüledik. Ve sonuç süper. (KeNDiNiZi KuTLaYıN)
XML Geliştirme Programları:
XML dokümanlarını tasarlarken kullandığımız program NotePad'di. Ancak notepad'de alternatif olarak kullanabileceğiniz bir program daha tavsiye edebilirim. Bu program XML geliştirmek isteyenler için süper yardımcı olmaktadır. Program özellikle element oluşturmada size çok yardımcı oluyor. Programın birde bedava olması programı daha çekici yapıyor.
XML Hakkında Son Söz:
XML ile ilgili söylenebilecek en önemli şey platform bağımsız olmasıdır. Bilginin değişik platformlar arasında transfer edilmesi sırasında köprü olabilecek XML geleceğin dilidir denebilir.
Java'nın çıkış sebebi platformdan hatta uygulamalardan bile bağımsız çalışmasıdır. Benzer olarak SGML'de uygulama ve platform bağımsız olarak çalışabilmektedir. Buna ek olarak XML'i de işin içine katsak iyi olur. Çünkü şu an günümüzde var olan işletim sistemlerini göz önüne alırsak, bilgiye başka bir platformda ihtiyaç duyulması, bu görevi yerine getirebilecek bir dil ihtiyacı doğmuştur. Bu işi de en iyi XML yapabilir.
Örnek Unix işletim sistemini kullanan PHP script dilinde yazılmış bir Xml dokümanı Windows işletim sisteminde de sorunsuz şekilde çalışacaktır. Bunun anlamı ise, bilginin nerede olduğunun önemli olmamasıdır. Platform bağımsızlığı da budur işte. XML gelişimini sürdürdükçe bilginin paylaşılması ve transferi her zamankinden daha kolay ve güzel olacaktır.
Size elimden geldiği kadarıyla XML'i anlatmaya çalıştım tabiki XML bu kadar basite alınacak bir dil değil ben size nasıl olduğunu, nasıl başlanılacağını, ne işe yaradığını, püf noktalarını göstermeye çalıştım. Kendinizi geliştirmek sizin elinizde.
Yazı oğuza'a Aittir Bu Kısmı Silinerek Döküman Kopyalanamaz.