XML Başlangıç ve Kullanım Alanı

01 Haziran 2009 | 17:23 | Decrease font size for Post - XML Başlangıç ve Kullanım Alanı - Advisories - KnbykL Official Web Site | Web Security, Web Application Security | Reset to normal font size for Post - Advisories - KnbykL Official Web Site | Web Security, Web Application Security - XML Başlangıç ve Kullanım Alanı | Increase font size for Post - XML Başlangıç ve Kullanım Alanı |

Teknolojik gelişmelerin sürekli ve hızla devam ettiği bilişim dünyasında Internet,hiç kuşkusuz en önemli araç haline gelmiştir.Bu önemli aracın kullanmış olduğu dil olan HTML ise yapısındaki önemli bazı eksikliklerden dolayı yerini yeni bir dile bırakmaktadır:XML…
xml-dokumani

XML (Extensible Markup Language) artık çoğumuzun kulağına yabancı gelmeyen bir terim.W3C(World Wide Web Concortium) gibi bağımsız bir organizasyon tarafından geliştirilmiş olan XML, isminden de anlaşılacağı üzere son derece esnek bir yapıya sahiptir.İşte bu esneklik sayesinde XML, elektronik iş sistemleri, bankacılık, finans, sağlık, eğitim, ulaşım, otomotiv sektörleri gibi bir çok alanda,kısacası bilişim dünyasıyla ilgili olan her sektörde varlığını gün geçtikçe daha da hissettirmektedir.

Okumakta olduğunuz bu döküman sizlere XML ve ilişkili teknolojiler hakkında bilgiler vermek amacıyla hazırlanmıştır. Döküman temel olarak iki bölümden oluşmaktadır. Birinci bölümde XML ile yeni tanışan okuyucular düşünülerek temel sözdizimi(syntax) yapıları, terimler ve XML dilinin başlıca yapı birimlerinden bahsedilmiştir.İkinci bölümde ise daha da teknik detaya inilerek XML dilinin yapısındaki detaylar, programlama dilleriyle olan ilişkileri,veritabanı yönetim sistemlerindeki davranışları, gibi konular anlatılmaya çalışılmıştır.Bu bölümden programcılar,veritabanı yöneticileri,sistem uzmanları,web sayfası tasarımcıları öğrenciler gibi okuyucu gruplarının yararlanması düşünülmüştür.

Hazırlamış olduğum bu dökümanın sizlere faydalı olmasını temenni etmekteyim.Dökümanla ilgili eksik gördüğünüz yönleri, önerilerinizi, sorularınızı ve her türlü yorumlarınızı öğrenmekten memnunluk duyacağımı bilmenizi isterim.

——————————————————————————–

XML Nedir?

XML(Extensible Markup Language) HTML ile pek çok açıdan benzerlik gösteren bir markup dilidir.Verinin tanımlanması ve tarif edilmesi için kulanılır.HTML’deki yapının aksine XML’de kullanılacak olan tag’ler önceden tanımlı değildir.Yani bir XML dökümanının yapısı tamamıyle kullanıcı tarafından oluşturulur.Verinin tarif edilmesi için DTD adı verilen yapılar kullanılmaktadır.XML ve DTD’nin birlikte kullanılması ile dökümanlar kendini tarif eden bir yapı halini alırlar.
XML ve HTML arasındaki en belirgin fark XML’in verinin kendisiyle ilgilenmesi HTML’in ise verinin sunumuyla ilgilenmesidir.Buna bağlı olarak HTML dökümanları veriye ilişkin şekillendirme bilgilerini içerirken XML dökümanları ise verinin tanım bilgilerini içermektedir. XML’in tasarım amaçlarından biri de verinin taşınmasıdır.
Bahsedilen bu özellikleri incelendiğinde XML’in pek çok önemli işlevi yerine getirdiği görülmektedir.
Şimdi çok basit bir XML dökümanını birlikte inceleyelim:

<not>
<kime>Alparslan</kime>
<kimden>Samet</kimden>
<heading>Hatırlatma</heading>
<body>Sınav Tarihini Unutma!</body>
</not>

HTML dökümanlarına çok benzeyen bu yapıda ilk etapta göze çarpan nokta tag yapılarının bizim tarafımızdan tasarlanmış oluşudur.HTML’de kullanılan <p> ve <h1> gibi standart tag yapıları yukarıdaki XML dökümanında kullanılmamıştır.Bahsedilen bu özelliği nedeniyle XML dökümanları genişletilebilir(extensible) bir yapıya sahiptir.Dökümanın bu hali gerçek anlamda herhangi bir şey ifade etmez.Dökümanın iletimi(gönderim veya alım) ya da sunumu için başka şeylerin de yapılması gerekmektedir.
Burada önemli bir nokta olarak XML’i HTML’in yerine geçecek bir dil olarak düşünmek yerine HTML’in tamamlayıcısı olacak olan bir dil şeklinde düşünmek uygundur.
Günümüz bilişim dünyasına bakacak olduğumuzda XML’in her alanda karşımıza çıktığını görmekteyiz.Bu nedenle XML’i bir anlamda geleceğin web dili olarak tanımlamak mümkündür.

——————————————————————————–

XML Nasıl Kullanılabilir?

XML hakkında bilinmesi gereken en önemli nokta bu dilin veriyi taşımak amacıyla tasarlanmış oluşudur.
XML ile veriler yapı bakımından modülerlik kazanmaktadır.Yukarıda bahsettiğim gibi XML dökümanları verinin içeriğiyle ilgilenmektedir.Bu sayede verilerin içerik,yapı ve sunum kısımları ayrı modüller halinde farklı XML dökümanlarında tutulmaktadır.
XML dökümanları Veri Adaları(Data Islands) adı verilen teknik sayesinde HTML sayfaları içerisinde de depolanabilmektedir.Bu teknik sayesinde verinizin sadece sunumuyla ilgilenilmektedir

XML ile verinin alışveriş işlemi gerçekleştirilir.XML,yapısının esnekliği sayesinde birbirine uyumlu olmayan sistemler arasında veri alış verişini rahatlıkla gerçekleştirmektedir.Günümüz bilişim dünyasında bilgisayar sistemleri ve veritabanlarının genellikle birbirine uyumsuz sistemler içerebildiklerini görmekteyiz.Bundan dolayı uygulama geliştiriciler Internet üzerinden bu tip uyumsuz verilerin alış veriş işlemini gerçekleştirmek zorundadırlar.
Verinin XML formatına çevrilmesi ile farklı sistemler ve uygulamalardaki verilerin karmaşıklık derecesi indirgenerek alış veriş işleminin kolaylaştırılması sağlanır.
XML ile finansal bilgilerin Internet üzerinden alış verişi sağlanmaktadır.Günümüzde artık hepimizin sıklıkla duyduğu elektronik iş kavramı açısından incelenecek olduğunda XML’in önemli fonksiyonları yerine getirdiği görülmektedir.Bahsedilen bu fonksiyonları ile XML geleceğin Elektronik İş dili olarak da yeni bir misyonu üstlenmektedir.
XML ile verinin paylaşımı kolaylaştırılır.
XML,veriyi düz metin (plain text) formatında saklamasından dolayı veriyi paylaştırma konusunda da hem yazılım hem de donanımdan bağımsız hareket edebilme imkanını sunmuştur.
Bu sayede farklı uygulamalarda hareket eden farklı veri tipleriyle çalışmak daha da kolaylaşır.Ayrıca işletim sistemlerinin yükseltgenmesi,sunucu,uygulama vb. dışsal faktörlerin yenilenmesi gibi dışsal faktörlerden de asgari ölçüde etkilenilmiş olunur.
XML ile verinin depolanması sağlanır.
XML, verinin dosyalarda veya veritabanlarında saklanması için de kullanılabilir.
XML,yazılım,donanım ve uygulamalardan bağımsız olduğu için verinin daha elverişli olarak kullanımını sağlamaktadır.Yani başka istemci(client) veya uygulamalar tıpkı veri kaynaklarına erişiyormuş gibi XML dosyalarına rahatlıkla erişebilirler.
XML,esnek yapısı nedeniyle başka dillerin de oluşturulabilmesine olanak tanır.Wireless Markup Language(WML) mobil cihazları için kullanılan WAP ortamlarının dilidir ve XML’in türevidir.

——————————————————————————–

XML Sözdizimi (XML Syntax)

XML Syntax basit bir kaç kuraldan ibarettir.Bundan dolayı kullanımı ve öğrenimi oldukça kolaydır.

Bir XML döküman örneğini inceleyelim:

 

<?xml version="1.0"?>
<not>
<kime>Alparslan</kime>
<kimden>Samet</kimden>
<heading>Hatırlatma</heading>
<body>Sınav Tarihini Unutma!</body>
</not>

XML dökümanları kendini tarif eden bir syntax’a sahiptir.
Dökümanın ilk satırı XML deklerasyonu(XML declaration) olarak isimlendirilir.Bu kısımda XML dökümanının versiyon bilgisi tanımlanır.Yukarıdaki örnekte XML dökümanımızın versiyonu 1.0 olarak belirtilmiştir.
Bir sonraki satırda dökümanın “root element” adı verilen kök elementi belirtilmiştir.Örneğimizde root element “not” tur.

<not>



Daha sonraki satırda 4 adet child element belirtilmiştir.(kimden,kime,heading ve body):

<kime>Alparslan</kime>
<kimden>Samet</kimden>
<heading>Hatırlatma</heading>
<body>Sınav Tarihini Unutma!</body>

Son olarak root elementin bitişini gösteren tag bulunmaktadır:

</not>

Tüm XML elementleri bir kapanış tag'ine sahip olmalıdırlar.
HTML'de ise bazı elementler bitiş tag'lerine sahip olmayabilir.
Örneğin aşağıdaki kod parçası HTML için geçerli bir kod olmasına rağmen XML için geçerli değildir:

<p>Bu bir paragraftır

<p>Bu başka bir paragraftır


Yukarıdaki kod parçasını XML formatına uyarlayacak olduğumuzda

<p>Bu bir paragragftır</p>

<p>Bu başka bir paragraftır</p>

şeklinde bir düzenleme yapmamız gerekecektir.
XML tag'ler için case-sensitive özellik gösterirler.HTML'de ise case-sensitive özellik yoktur.

<mektup>Bu syntax yanlıştır</MEKTUP>


<mektup>Doğru bir syntax örneği</mektup>


XML dökümanları içerisinde tüm elementler hiyerarşiye uymalıdırlar.
HTML dökümanlarında bazı elementler düzgün bir içiçe olma yapısında olmayabilirler.
Aşağıdaki örneği inceleyelim:

<b><i>Burada kullanılacak olan dökümanın formatı bold  ve italic olacaktır</b></i>


XML syntax kurallarına gore yukarıdaki örneği düzenleyecek olursak:

<b><i>Burada kullanılacak olan dökümanın formatı bold  ve italic olacaktır</i></b>


Görüleceği üzere elementler belirli bir düzen çerçevesinde içiçe geçmiş durumdadırlar.
XML syntax'ında tüm XML dökümanlarının bir root elementi olması gerekmektedir.
XML dökümanları içerisinde ilk tag "root tag" olarak isimlendirilir:
Bahsedilen bu root elementin altındaki tüm elementler "child element" olarak adlandırılır.
Bu child elementler ise daha önceden belirtilmiş olan synax'a uymak zorundadır.
Yani elementlerin içiçe geçme durumları belirli bir hiyerarşiye gore olmaktadır.

<root>

     <child>

   <subchild>….</subchild>

     </child>

…………

</root>


Attribute değerleri daima tırnak içine alınmalıdır.
XML elementleri attribute'lara sahip olabilirler ve bu attribute'lar ise tıpkı HTML'de olduğu gibi isim/değer(name/value) çiftlerini içerebilirler.
Attibute değerlerinin nasıl kullanıldığını bir örnekle açıklayalım:

<?xml version="1.0"?>
<not date="12/10/99">
<kime>Alparslan</kime>
<kimden>Samet</kimden>
<heading>Hatırlatma</heading>
<body>Sınav Tarihini Unutma</body>
</not>


Dikkat edilecek olursa "not" elementinin sahip olduğu "date" attribute değeri tırnak işareti içerisinde belirtilmiştir.
HTML'de white space adı verilen boşluk karakteri gözönüne alınmaz.
Oysa XML dökümanlarında white space karakterler de değerlendirmeye alınır.
Yani bir HTML sayfasında "Merhaba,benim adım Samet" cümleciği sunum sırasında "Merhaba,benim adım Samet" şeklinde görüntülenir.

 

 

--------------------------------------------------------------------------------

 

Element

 

XML dökümanları daha fazla bilgiyi taşıyabilmek için genişletilebilirler.Aşağıdaki kod satırını incelyelim:

<not>
   <kime>Alparslan</kime>
   <kimden>Samet</kimden>
   <body>Sınav Tarihini Unutma!</body>
</not>

Şimdi yazmış olduğumuz bu kod satırının nasıl bir çıktı vereceğini inceleyelim:

Mesaj

kime:Alparslan
kimden:Samet
Sınav Tarihini Unutma!

Şimdi dökümanımız içerisinde daha fazla bilgiyi sunmak istediğimizi varsayalım:

<not>
<tarih>01-06-2009</tarih>
<kime>Alparslan</kime>
<kimden>Samet</kimden>
<heading>Hatırlatma</heading>
<body>Sınav Tarihini Unutma</body>
</not>


Görüleceği gibi XML dökümanının yapısında herhangi bir değişiklik yapmaksızın daha fazla bikgiyi görüntüleme olanağını bulduk.
Bu da bize XML dökümanlarının esnek yapısı hakkında bazı fikirler vermektedir.
XML elementleri birbirleriyle ilişki içindedir.Bu ilişki biçimi elementlerin parent ya da child oluşlarıyla belirlenmektedir.
XML elementlerinin parent/child ilişkilerini bir örnek üzerinde açıklayalım:

Kitap Başlığı: knbykl ve XML

Bölüm 1: XML'e giriş
·                   HTML ve XML'in karşılaştırılması
·                 
·                 
·                   XML ve E-Ekonomi
·                 
·                 
Bölüm 2: XML Syntax
·                   Elementler
·                 
·                 
·                Attribute'lar
·                 
·                 
 


Çıktı düzeni verilmiş olan bu kitabı tanımlayacak XML dökümanını tasarlayalım:

<kitap>
<baslik>knbykl ve XML</baslik>
<urun id="12-112" media="paper"></urun>
<bolum>XML'e giris
<para> HTML ve XML'in karşılaştırılması</para>
<para> XML ve E-Ekonomi</para>
</bolum>
<bolum>XML'e giris
<para> Elementler</para>
<para>Attribute'lar</para>
</bolum>
</kitap>


 

Dökümanımızın root elementi "kitap" tır."kitap" elementi "baslik" ve "bolum" elementlerinin parent'i durumundadır.
"baslik" ve "bolum" elementleri ise aynı seviyede bulunan elementlerdir ve bunlar arasındaki ilişkiye sibling denir.
Elementler farklı içerik tiplerine sahip olabilirler.
Bir element diğer bir elementi içerebileceği gibi basit,sabit ya da boş(empty) içerkte de olabilir.
Yukarıdaki örneği incelediğimizde "para" elementinin sadece metin(text) içerğinde olduğunu,
"bolum" elementinin diğer elementleri içerebildiğini ve "urun" elementinin ise boş bir içerikte(empty)oldugunu görmekteyiz.

 

Elementlerin İsimlendirilmesi
Elementlerin isimlendirilmelerinde bazı kurallar geçerlidir:

 

  • İsimler harf,sayı ya da diğer karakterleri içerebilir.
  • İsimler bir sayı veya _ (underscore) karakteri ile başlamamalıdır.
  • İsimler "xml"(ya da XML veya Xml) şeklinde başlamamalıdır
  • İsimler boşluk içermemelidir.

 --------------------------------------------------------------------------------

 

Attribute’lar

Elementler attribute değerlerine sahip olabilirler.Attribute’lar elementler için ek bilgilerin tanımlanmasına olanak veren yapı birimleridir:
Bir HTML sayfasında tanımlanmış olan
<IMG SRC=”anlatim1.gif”>
kod parçasında SRC attribute değeri IMG elementi için ek bilgiler tanımlamamıza olanak sağlamaktadır.XML dökümanları için de durum aynıdır.
Veri bir XML dökümanında element veya attribute’lar içerisinde saklanır.Aşağıdaki örnekleri inceleyelim:

 

 

 xml-dokuman-img-1

Programlama veya web tasarımı gibi konulara yakınlığı olan okuyucularımız yukarıdaki üç örnekten sonuncusunun syntax bakımından daha avantajlı olduğunu fark edeceklerdir.

——————————————————————————–

XML Dökümanlarının Geçerliliği

Well-Formed XML Dökümanları Bir well-formed XML dökümanı doğru XML syntax’ında olan döküman demektir.

Valid XML Dökümanları
Valid bir XML dökümanı doğru XML syntax’ında olan(yani aynı zamanda well-formed yapıda olan) ve yapı bilgilerini aldığı DTD’ye uyumluluk gösteren döküman demektir.

Aşağıdaki örnekleri inceleyelim:

xml-dokuman-img-2

DTD Nedir?
DTD’leri, XML dökümanlarının yapı bilgilerini tutan modüller olarak tanımlamak mümkündür.Döküman içinde kullanılacak olan tüm varlıklar daha önceden DTD içerisinde tanımlanmalıdır.

XML Schema XML Schema’lar da DTD’ler gibi XML dökümanlarının yapı bilgilerini tutarlar.Ancak DTD’lere gore daha kullanışlıdır ve en önemli özelliği XML syntax’ında olmalarıdır.

Not: DTD ve Schema kavramları daha sonraki bölümlerde detaylı olarak incelenecektir.Bu aşamada sadece tanımların öğrenilmesi yeterlidir.

Hata(Error) ve Hata Kontrolü XML dökümanları içerisinde yapacağımız bir syntax error veya geçerlilik kontrolü hatası(validation error) durumunda program XML dökümanını işleme işine devam etmez ve durur.HTML’de ise yapılabilecek bir hata da(örneğin bitiş tag’i yazmayı unuttuğumuzda) program çalışmaya devam eder.

——————————————————————————–

XML Dökümanlarının Görüntülenmesi Stylesheet Kavramı

xml-dokuman-img-3

Bir XML dökümanının sunumu sırasında izlenen yollar yukarıdaki şekilde belirtildiği şekilde gerçekleşir.XML dökümanları,yapı bilgilerinin geçerlilik kontrolleri (DTD’ye bakılarak) yapıldıktan sonra XML Parser adı verilen yazılıma giderler.XML parser bu yapı bilgilerinden yararlanarak dökümanın parçalanma ağç yapısını yani Parse Tree’sini oluşturur.Parse Tree’si oluşturulmuş olan döküman “Stylesheet” adı verilen işlem kullanılarak sunuma hazır hale getirilir. Daha sonra stylesheet işleminin uygulandığı sunum kısmından(rendering agent) alınan XML dökümanı görüntüleme cihazına aktarılır.
Temel olarak kullanılan iki stylesheet tekniği bulunmaktadır:CSS ve XSL
CSS(Cascaded StyleSheets) ve XSL(Extensible StyleSheets) tekniklerinin her ikisi de XML dökümanlarının şekillendirilmesi amacıyla kullanılır.Amacı aynı olmasına rağmen XSL’in CSS’e gore daha esnek ve daha avantajlı olduğunu görmekteyiz.
Aşağıdaki XSL örneğini inceleyelim:

 

Makale Adresi: http://www.knbykl.org/xml-baslangic-ve-kullanim-alani/

Print This Post Print This Post     Mail Bu Makaleyi Yolla     Bu Makaleyi Ekle
  1. 2 Yorum Mevcut “XML Başlangıç ve Kullanım Alanı”

  2. gayet basarılı anlatım, kaynagınıda vermen guzel
    sitede bir kac makaleden faydalandım tesekkur etmek istedim.
    birde okurken cok qoz yoran bir dizanynın war, tabi sen bilirsin…
    iyi çalısmalar

    Bu yorum Hale tarafından 01 Haziran 2009 | 20:12 tarihinde yapılmıştır.

  3. xml and flash love.

    Bu yorum 3m1r tarafından 01 Haziran 2009 | 22:32 tarihinde yapılmıştır.

İlgili Makaleler

11.06.09: XML'i Kavramak (3)