XML nedir? XML Dersi

XML, eXtensible Markup Language, ifadesinin yani “genişletilebilir işaretleme dili” ifadesinin kısaltması. XML veri aktarımı ve depolaması için geliştirilmiş bir dil. Temelde işlevi farklı programlama dilleri ve platformalar arasında veri aktarımını sağlayacak bir dil sunmak. Yani PHP, Python, Java ve C# gibi farklı dillerle XML dosyalarını işleyebilir ve bir programlama diliyle oluşturulan XML dosyasını bir başka programlama diliyle işleyebilirsiniz. XML dosyaları ayrıca veritabanındaki sql verilerini depolamak için de kullanılabilir. Özellikle farklı diller arası uyumu ve yazımının kolay olması sebebiyle XML internet üzerinden ticaret uygulamalarında da veri girişi ve aktarımında kullanılır.

Giriş düzeyinde XML öğrenmek kolaydır. XML dilinin güzelliği hem oldukça basit oluşu hem de çok kompleks işlemlere elvermesidir.  Yazımız giriş nitelğinde olduğundan en temel konulara değinip, ileri seviye detaylar için ilgili kaynaklara bağlantı vereceğiz.

XML Giriş

  • XML etiketleri (tag) önceden tanımlanmamıştır. Yani siz istediğiniz etiketleri oluşturabilirsiniz
  • XML dosyalarında kullanılan etiketler veri formatını gösterecek, içeriği açıklayacak biçimdedir
  • XML bir W3C tavsiyesidir

Mesela aşağıdaki örnekte kendimize bir kitap etiketi oluşturuyoruz. Sonrasında kitap etiketinin altında istediğimiz alt etiketleri oluşturup veri giriyoruz. Ben bu durumda kitap etiketinin altında ad, yazar ve tarih alt etiketlerini oluşturdum. İstediğiniz kadar alt etiket oluşturmak ve bunları dilediğinizce adlandırmak mümkün. Etiket oluşturmak oldukça kolay. Temel şablon şu şekilde: <etiketadı>Veri</etiketadı>

<?xml version="1.0" encoding="UTF-8"?>
<kitap>
    <ad>Şeker Portakalı</ad>
    <yazar>José Mauro De Vasconcelos</yazar>
    <tarih>1968</tarih>
</kitap>

Yukarıdaki örnekte ilk satır XML bildirimi. XML'in sürümünün 1.0 ve karakterter kodlamasının UTF-8 olduğunu belirtiyor.

Bir sonraki satır XML belgesinin kök öğesini (root element) belirtiyor. Bu örnekte kök öğe kitap

Sonraki 3 satır kök öğenin, alt öğelerini bir başka deyişle çocuk öğeleri belirtiyor. Bu örnekte kök öğemiz kitap, çocuk öğeler ise ad, yazar ve tarih.

</kitap> satırı kitap kök öğesinin sonuna geldiğimizi, bu öğeyi tamamlayıp kapattığımızı gösteriyor.

XML belgeleri bir kök öğe içermek zorundadır. Bu kök öğe diğer tüm öğelerin üstündedir, onları kapsar.

XML belgesindeki öğeler bir belge ağacı oluşturur. Bu belge ağacı kök öğeden başlar ve ağacın en alt seviye öğelerine doğru uzanır.

Tüm öğelerin alt öğeleri olabilir.

Şimdi ilk verdiğimiz örneği biraz genişletelim.

<?xml version="1.0" encoding="UTF-8"?>
<kitaplık>
<kitap>
    <ad>Şeker Portakalı</ad>
    <yazar>José Mauro De Vasconcelos</yazar>
    <tarih>1968</tarih>
</kitap>
<kitap>
    <ad>Büyük Umutlar</ad>
    <yazar>Charles Dickens</yazar>
    <tarih>1860</tarih>
</kitap>
</kitaplık>
Bu örnekte kök öğemiz kitaplık. XML belgesindeki tüm kitap öğeleri kitaplık öğesinin içinde saklanıyor. Kitap öğesinin ise 3 adet çocuk öğesi var: ad, yazar, tarih

Ebeveyn, çocuk ve kardeş terimleri öğeler arasındaki hiyerarşiyi açıklamak için kullanılır. Ebeveyn öğelerin çocuk öğeleri olabilir. Aynı seviyedeki çocuk öğelere kardeş öğe denir.

Tüm öğeler metinsel içerik barındırabilir ve HTML'de olduğu gibi niteleyicilere (attribute) sahip olabilirler.

XML Sözdizimi

XML'de tüm öğelerin bir kapanış etiketi olmalıdır. Mesela <kitap> şeklinde bir öğe başlattıysanız bu öğe bir </kitap> etiketiyle kapatılmalıdır.

XML etiketleri büyük-küçük harf duyarlıdır. Yani <kitap> etiketi ancak </kitap> etiketiyle kapatılabilir. </Kitap> ya </kiTap> gibi etiketlerle kapatılamaz.

XML belgesinde tüm öğeler uygun şekilde iç içe konulmalıdır. Mesela yazar öğesi kitap öğesinin alt öğesi (çocuğu) olduğu için kitap öğesinin içinde yazılmalıdır.

<kitap>
<yazar>...</yazar>
</kitap>

Her bir XML belgesi bir kök öğe barındırmalıdır. Örnek belgemizde kitaplık öğesi kök öğe konumunda

<kök>
<çocuk>
<altçocuk>.....</altçocuk>
</çocuk>
</kök>

XML öğelerinin ad/değer niteleyicileri (attribute) olabilir. Değer niteleyicileri tırnak işareti içinde yazılmalıdır.

<kitap date="07/12/2013">
<ad>Kırmızı</ad>
<yazar>Albert</yazar>
</kitap>
Varlık referansları
XML'de bazı karakterlerin özel anlamları vardır ve veri alanı içine doğrudan yazılamazlar.  Mesela XML dosyasında veri alanı içine yani <yazar>…</yazar> kısmında üç nokta ile işaretli alana < ” > & gibi işaretler koyarsanız XML belgeniz bozulur. Bu karakterleri veri alanına girmek için aşağıda tabloda verilen alternatifleri kullanın. Mesela:
<say>beş < on </say>
< < küçüktür
> > büyüktür
& & ampersan, ve işareti
' kesme işareti
" tırnak işareti

XML'de yorum yazmak

XML dosyanızda yapacağınız değişiklikler ya da notlarınız için yorum ekleyebilirsiniz. Yorum eklemek için bir öğe kapanıp diğer öğe başlarkanki boşluğu <!– … –> şablonu … olan yere yorumunuz gelecek şekilde yerleştirin. Mesela
<renk>Lacivert</renk>
<!-- Seneye renkleri değişelim -->
<stok>var</stok>

XML öğelerinin adlandırılması

Aşağıdaki koşulları sağlamak şartıyla XML öğelerine istediğiniz ismi verebilirsiniz.

  • İsimler harf, rakam ve diğer karakterleri içerebilir
  • İsimler bir rakam ya da noktalama işaretiyle başlayamaz
  • İsimler xml, XML ya da Xml ifadeleriyle başlayamaz
  • İsimler boşluk içeremez

XML Ad Boşluğu (Namespace)

İki farklı kaynaktan gelen XML verileri birleşince ya da farklı görevdeki öğe isimleri aynı olunca oluşabilecek isim karışıklığını önlemek için öğe isimlerinin önüne ön ek konulur.

Bunu gerçekleştirmek için mesela aşağıdaki örnekte fiil ve isim olan yüz kelimelerini ayırmak için fiil için f, isim içi ise i ön eklerini öğe adının önüne koydum. XML kuralları gereği bu ön eklerin kök öğe için xlmns niteleyicisi ile iki farklı adrese yönlendirilmesi gerekiyor ancak bu adreslerin ne olduğunun önemi yok.

<root xmlns:f="https://huseyindemirtas.net/xml/fiil/"
xmlns:i="https://huseyindemirtas.net/xml/isim/">

<f:yüz>
<f:örnek>Bugün 1 saat yüzdü</f:örnek>
</f:yüz>

<i:yüz>
<i:örnek>African Coffee Table</i:örnek>
</i:yüz>

</root>

XML doğrulayıcı

XML belgenizin doğru yazıldığından emin olmak için dosyanızı W3 kod doğrulayıcısına yükleyebilir ya da doğrudan kopyala yapıştır yaparak belgenizi kontrol ettirebilirsiniz.

XML editörleri

Pek çok programlama aracı XML düzenleme özelliği içeriyor. Örneğin Eclipse, Aptana Studio, Komodo IDE, Visual Studio gibi kapsamlı araçlarla XML işlemek mümkün. Ancak daha hafif alternatifler arıyorsanız ilk akla gelen çözüm Notepad++

XML öğrenmek için kaynaklar

Terimce

  • root element: kök öğe
  • child element: alt öğe/çocuk öğe
  • parent: üst, kapsayıcı, ebeveyn
  • sibling: aynı seviyedeki öğe/ kardeş öğe
  • attribute: niteleyici
  • namespace: ad boşluğu

Bitirirken

XML geliştiricilerin işini kolaylaştırıp farklı platform ve diller arasında veri işlemek için önemli bir araç. Giriş niteliğindeki bu XML yazısının XML hakkındaki temel sorularınızı çözmenizi sağlayacağını umuyorum. Gecenin bir vakti bana bunları yazdıran değerli insana ithaf olsun.

Kaynaklar

 

Konular: XML nedir, XML dersi, XML öğrenmek isteyenler için kaynaklar, XML giriş, XML ne işe yarar

1 thought on “XML nedir? XML Dersi”

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir