XML Nedir? Tanımı, Nasıl Çalışır ve Kullanım Alanları
XML (eXtensible Markup Language), kullanıcı tarafından tanımlanabilir etiketler aracılığıyla verileri yapılandırıp depolayan bir işaretleme dilidir. Veri taşıma, depolama ve uygulamalar arası iletişim için kullanılır. Yazı stili ve yapısıyla HTML'ye benzer, ancak veri tanımlamaya odaklanır.
XML (eXtensible Markup Language), verileri açıklayıcı etiketlerle işaretleyerek yapılandıran, metin tabanlı bir dosya biçimi ve veri taşıma standardıdır. İnsan tarafından okunabilir olması ve farklı sistemler arasında veri alışverişini sağlaması nedeniyle web teknolojisinin temel taşlarından biridir. HTML'den farkı, HTML görünüm için tasarlanmışken XML verilerin anlamını (semantiğini) tanımlamaya odaklanır.
XML Nasıl Çalışır?
XML, bilgiyi ayrıntılı etiketler içinde paketleyen bir sistem olarak çalışır. Her veri parçası, o verinin ne olduğunu açıklayan açılış ve kapanış etiketleri arasına yerleştirilir.
Örneğin, bir kitap bilgisini XML'de şöyle gösterilebilir:
<kitap> <baslik>Türk Yazarlar</baslik> <yazar>Orhan Pamuk</yazar> <yil>2023</yil> <sayfa>350</sayfa> </kitap>
Bu yapı sayesinde XML dosyasını okuyan bir bilgisayar, her veri parçasının ne anlama geldiğini hemen anlar. Etiketler tamamen özelleştirilebilir — istediğiniz adı verebilirsiniz.
XML'in Avantajları
- Platform Bağımsız: Windows, Mac, Linux gibi herhangi bir işletim sisteminde çalışır.
- İnsan Tarafından Okunabilir: Kodunu okuyup anlamak kolaydır; karmaşık şifreler kullanmaz.
- Sistem Uyumluluğu: Farklı yazılım ve diller arasında veri alışverişini sağlar.
- Özelleştirilebilir Etiketler: Kendi kurallarınıza göre etiketler oluşturabilirsiniz.
- Hiyerarşik Yapı: Karmaşık veri ilişkilerini düzenli bir şekilde gösterir.
- Doğrulama Mümkün: DTD (Document Type Definition) veya Schema ile veri bütünlüğü kontrol edilebilir.
XML'in Dezavantajları
- Dosya Boyutu: Tekrarlayan etiketler nedeniyle JSON'a göre daha ağır olabilir.
- Öğrenme Eğrisi: Yeni başlayanlar için sözdizimi karmaşık görünebilir.
- Parsing Yavaşlığı: Çok büyük dosyaların işlenmesi zaman alabilir.
- Boşluk Duyarlılığı: Hatalı biçimlendirme dosyayı geçersiz kılar.
XML Nerede Kullanılır?
Web Servisleri ve API'ler: SOAP protokolü XML kullanarak sunucular arası haberleşmeyi sağlar.
Veri Taşıma: Veritabanlarından web uygulamalarına veri aktarımında yaygındır.
Belge Formatları: Microsoft Office (docx, xlsx), LibreOffice, PDF dosyaları XML tabanında çalışır.
RSS ve Podcast: Haber akışları ve podcast beslemeleri XML formatında dağıtılır.
Sitemap: Google'a sitenizin yapısını açıklamak için sitemap.xml kullanılır.
Yapılandırma Dosyaları: Yazılım ayarları sıklıkla XML dosyalarıyla depolanır.
Finans ve Sağlık Sektörü: Banka hareketleri, tıbbi kayıtlar güvenli şekilde XML'de taşınır.
XML Türleri ve Varyasyonları
| XML Türü | Açıklama | Kullanım Alanı |
|---|---|---|
| RSS | Really Simple Syndication — haber ve içerik beslemesi | Blog, haber siteleri, podcast |
| SOAP | Simple Object Access Protocol — web servisleri için | Kurumsal uygulamalar, API |
| SVG | Scalable Vector Graphics — vektör grafikleri | Web tasarım, animasyonlar |
| XHTML | HTML'nin XML tabanlı versiyonu | Web sayfaları (eski standart) |
| MathML | Matematiksel denklemler için | Bilimsel yayınlar, e-öğrenme |
XML Dosyası Nasıl Oluşturulur?
XML dosyası oluşturmak basittir — herhangi bir metin editörü (Notepad, VS Code vb.) kullanabilirsiniz. Dosyayı .xml uzantısıyla kaydedin. Her XML dosyası şu şekilde başlamalıdır:
<?xml version="1.0" encoding="UTF-8"?>
Bu satır, dosyanın XML olduğunu ve UTF-8 karakterleriyle yazıldığını belirtir.
Örnek bir müşteri listesi:
<?xml version="1.0" encoding="UTF-8"?>
<musteriler>
<musteri>
<id>1</id>
<ad>Ahmet Yılmaz</ad>
<email>ahmet@email.com</email>
<telefon>0551234567</telefon>
</musteri>
<musteri>
<id>2</id>
<ad>Fatma Kaya</ad>
<email>fatma@email.com</email>
<telefon>0552345678</telefon>
</musteri>
</musteriler>
XML ve JSON Arasındaki Fark
JSON (JavaScript Object Notation) modern uygulamalarda XML'in yerini almaya başlamıştır. Nedenini karşılaştırmalı olarak görelim:
| Özellik | XML | JSON |
|---|---|---|
| Dosya Boyutu | Daha ağır | Daha hafif |
| Okunabilirlik | İyi | Çok iyi |
| Parsing Hızı | Yavaş | Hızlı |
| Nativ JavaScript Desteği | Zayıf | Mükemmel |
| Standart Yaşlılığı | 1998 (eski) | 2006 (modern) |
| Web API'lerinde Kullanım | Azalıyor | Artan |
"XML, veri taşımanın evrensel dili olarak tasarlanmıştır ve bugün milyonlarca sistemde güvenli bir şekilde veri alışverişini sağlamaktadır."
XML Doğrulama (Validation)
Bir XML dosyasının doğru biçimlendirilmiş olduğundan emin olmak önemlidir. İki yöntemi vardır:
- DTD (Document Type Definition): XML dosyasının içinde veya dışarıda tanımlanan kurallar seti.
- Schema (XSD): DTD'den daha güçlü, veri türleri ve kısıtlamalar tanımlayabilir.
Yanlış biçimlendirme örneği (geçersiz):
<musteri> <ad>Ahmet </ad>
Doğru biçimlendirme (geçerli):
<musteri> <ad>Ahmet</ad> </musteri>
Tarihçesi
XML, 1998 yılında W3C (World Wide Web Consortium) tarafından SGML'in (Standard Generalized Markup Language) sadeleştirilmiş hali olarak geliştirilmiştir. SGML çok karmaşıktı; XML bu karmaşıklığı ortadan kaldırarak web için uygun hale getirdi.
2000'li yılların başında web servisleri ve SOAP protokolü ile hızla yayıldı. 2010'lardan itibaren JSON'ın yükselişi nedeniyle yeni projeklerde daha az tercih ediliyor, ancak kurumsal sistemlerde ve belirli endüstrilerde (finans, sağlık) halen yaygın olarak kullanılmaktadır.