XML nedir?
Genişletilebilir İşaretleme Dili (XML; eXtensible Markup Language), hem insanlar hem bilgi işlem sistemleri tarafından kolayca okunabilecek dokümanlar oluşturmaya yarayan, [kastooltip msg=”W3C” tooltip=”Dünya Çapında Ağ Birliği (World Wide Web Consortium ya da kısaca W3C) Ekim 1994’te Ağ’ın mucidi Tim Berners-Lee tarafınan MIT ve CERN bünyesinde kurulmuş uluslararası Dünya Çapında Ağ (WWW) standartlarını belirleyen örgüttür.”] tarafından tanımlanmış bir standarttır.
XML kullanıyor olmak için ezberlemeniz veya bilmeniz gereken keyword hemen hemen yok gibidir. Kurallar da azdır. Tamamen metin (text) tabanlı bir dosya biçimi ; yani çalışabilmek için notepad yeterlidir.
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>Mehmet</kime>
<kimden>Erdem</kimden>
<heading>Hatırlatma</heading>
<body>Kitapları 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>Mehmet</kime>
<kimden>Erdem</kimden>
<heading>Hatırlatma</heading>
<body>Kitapları 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>Mehmet</kime>
<kimden>Erdem</kimden>
<heading>Hatırlatma</heading>
<body>Kitapları 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 Erdem” cümleciği sunum sırasında “Merhaba,benim adım Erdem” şeklinde görüntülenir.
Elementler
XML dökümanları daha fazla bilgiyi taşıyabilmek için genişletilebilirler.Aşağıdaki kod satırını incelyelim:
<not>
<kime>Mehmet</kime>
<kimden>Erdem</kimden>
<body>Kitapları Unutma!</body>
</not>
Şimdi yazmış olduğumuz bu kod satırının nasıl bir çıktı vereceğini inceleyelim:
Mesaj
kime:Mehmet
kimden:Erdem
Kitapları Unutma!
Şimdi dökümanımız içerisinde daha fazla bilgiyi sunmak istediğimizi varsayalım:
<not>
<tarih>199-03-01</tarih>
<kime>Mehmet</kime>
<kimden>Erdem</kimden>
<heading>Hatırlatma</heading>
<body>Kitapları Unutma</body>
</not>
Kaynak : Software AG / Türkiye