XML ne demek?
XML, Extensible Markup Language (Genişletilebilir İşaretleme Dili) ifadesinin kısaltmasıdır. 1998 yılında bir W3C Önerisi hâline gelmiştir ve verileri sizin adlandırdığınız etiketlerle tanımlar – “genişletilebilir” ifadesi de bunu anlatır. HTML'den farklı olarak XML'de önceden tanımlanmış etiketler yoktur: bir katalog <product> ve <price>, bir fatura ise <item> ve <total> kullanabilir.
Küçük bir XML belgesi şöyle görünür: <book id="1"><title>XML Basics</title><year>2026</year></book>. XML düz metindir; bu nedenle insanlar okuyabilir ve her programlama dili işleyebilir. XML yalnızca verileri saklar ve yapılandırır – kendi başına hiçbir şey yapmaz. Verilerin ne anlama geldiğine ve nasıl gösterileceğine programlar karar verir.
XML söz dizimi kuralları
Her XML belgesi birkaç katı kurala uymak zorundadır. Bu kurallara uyan belgeye iyi biçimlendirilmiş (well-formed) belge denir:
- Diğer tüm öğeleri içeren tam olarak bir kök öğe vardır.
- Her öğe kapatılır:
<name>…</name>ya da<br/>gibi kendiliğinden kapanan biçimde. - Öğeler doğru şekilde iç içe geçer:
<b><i>…</i></b>, asla<b><i>…</b></i>değil. - Adlar büyük/küçük harfe duyarlıdır:
<Item>ve<item>farklı öğelerdir. - Öznitelik değerleri her zaman tek veya çift tırnak içinde yazılır.
- Metindeki
&ve<karakterleri, kaçış uygulanarak&ve<olarak yazılır. - İsteğe bağlı
<?xml version="1.0" encoding="UTF-8"?>bildirimi belgenin en başında yer almalıdır.
Yorumlar <!-- … --> şeklinde yazılır. Bir XML doğrulayıcı bu kuralların tümünü bir saniyede kontrol eder ve her hatanın bulunduğu satırı gösterir.
Öğeler (element) ve öznitelikler (attribute)
Öğe (element); bir başlangıç etiketi, içeriği ve bir bitiş etiketinden oluşur: <price>19.90</price>. Öğeler metin, başka öğeler ya da her ikisini birden içerebilir. Öznitelik (attribute) ise başlangıç etiketinin içindeki bir ad–değer çiftidir: <price currency="EUR">.
| Öğe | Öznitelik | |
|---|---|---|
| Örnek | <color>red</color> | color="red" |
| Tekrarlanabilir | Evet | Hayır, öğe başına bir kez |
| Alt öğe içerebilir | Evet | Hayır, yalnızca metin |
| Sıra önemlidir | Evet | Hayır |
Yaygın bir kural: verinin kendisi ve tekrarlanabilen ya da yapısı olan her şey için öğeleri; kimlik, birim veya tür gibi meta veriler için öznitelikleri kullanın.
İyi biçimlendirilmiş ve geçerli XML farkı
İyi biçimlendirilmiş (well-formed) XML söz dizimi kurallarına uyar; ayrıştırıcılar bunun dışındaki her şeyi reddeder. Geçerli (valid) XML ise iyi biçimlendirilmiş olmanın yanı sıra hangi öğelere ve özniteliklere, hangi sırayla ve hangi veri türleriyle izin verildiğini tanımlayan bir şemaya da uyar.
- DTD (Document Type Definition), XML 1.0 sürümüne yerleşik olan ilk şema dilidir.
gibi varlıkları da tanımlayabilir. - XSD (XML Schema Definition) kendisi de XML ile yazılır ve tarih, ondalık sayı gibi veri türlerini destekler. CFDI, NF-e ve UBL gibi e-fatura formatları XSD şemaları yayımlar.
XML ad alanları (namespace)
Herkes etiket adı uydurabildiği için iki farklı sözlük aynı adı kullanabilir – bir kitabın <title> öğesi ile bir kişinin <title> öğesi gibi. Ad alanları, adları bir URI ile ilişkilendirerek bunları birbirinden ayırır. xmlns:cfdi="http://www.sat.gob.mx/cfd/4", cfdi önekini tanımlar; böylece <cfdi:Comprobante> Meksika'nın CFDI 4.0 sözlüğüne ait olur. Öneksiz xmlns="…" biçimindeki varsayılan ad alanı, içindeki öneksiz tüm öğelere uygulanır. URI yalnızca bir tanımlayıcıdır; bu adresten hiçbir şey indirilmez.
XML, JSON ve HTML farkları
| XML | JSON | HTML | |
|---|---|---|---|
| Amaç | Yapılandırılmış verileri ve belgeleri saklamak ve paylaşmak | Özellikle web API'lerinde veri alışverişi | Web sayfalarını görüntülemek |
| Etiket veya anahtar adları | Sizin tanımladığınız | Sizin tanımladığınız | HTML standardıyla sabit |
| Veri türleri | Bir şema tür tanımlamadıkça metin | Dize (string), sayı, boolean, null, dizi, nesne | Metin |
| Öznitelikler | Evet | Hayır | Evet |
| Yorumlar | Evet | Hayır | Evet |
| Şemalar | DTD, XSD | JSON Schema | – |
| Söz dizimi hataları | Ayrıştırıcılar tarafından reddedilir | Ayrıştırıcılar tarafından reddedilir | Tarayıcılar tarafından düzeltilir |
JSON daha kısadır ve doğrudan JavaScript nesnelerine karşılık gelir; bu yüzden web API'lerinin çoğu JSON'a geçti. XML ise metin ve işaretlemenin bir arada bulunduğu, ad alanlarına ihtiyaç duyulan veya şemalara göre sıkı doğrulama gereken alanlarda gücünü koruyor – vergi idarelerinin, yayıncıların ve ofis formatlarının hâlâ XML'e dayanmasının nedeni de bu.
XML dosyası nedir ve nasıl açılır?
.xml dosyası, genellikle UTF-8 ile kodlanmış bir XML belgesi içeren düz metin dosyasıdır. Metin olduğu için her metin düzenleyiciyle açılabilir – Windows'ta Not Defteri, Mac'te TextEdit veya VS Code gibi bir kod düzenleyici. Chrome ve Firefox, XML dosyalarını bir tarayıcı penceresine sürüklediğinizde ağaç yapısında gösterir; Excel de XML verilerini bir elektronik tabloya aktarabilir.
Birçok dosya .xml uzantısı olmadan XML kullanır: .svg görselleri, .rss akışları, .xsd şemaları, .xsl stil sayfaları, .NET'teki .config dosyaları ve macOS'ta XML olarak saklanabilen .plist dosyaları. Word, Excel ve PowerPoint dosyaları (.docx, .xlsx, .pptx) XML dosyalarıyla dolu ZIP arşivleridir.
XML nerelerde kullanılır?
- Site haritaları:
sitemap.xml, arama motorlarına bir web sitesinde hangi sayfaların bulunduğunu bildirir. - RSS ve Atom akışları: haber siteleri, bloglar ve podcast'ler güncellemelerini XML olarak yayımlar.
- SVG: web'deki vektör grafikler birer XML belgesidir.
- Ofis dosyaları: Office Open XML (DOCX, XLSX, PPTX) ve OpenDocument (ODT, ODS), XML'den oluşan ZIP paketleridir.
- E-faturalar: Meksika'daki CFDI ve Brezilya'daki NF-e, yasal olarak geçerli olmadan önce dijital olarak imzalanması ve onaylanması gereken XML dosyalarıdır; UBL ise Avrupa'da ve ötesinde Peppol e-faturalandırmasının temelindeki XML formatıdır.
- SOAP web servisleri: bankalar, ödeme sağlayıcıları ve kamu sistemleri, WSDL dosyalarıyla tanımlanan XML mesajları alışverişi yapar.
- Android uygulamaları: düzenler (layout), metin kaynakları ve
AndroidManifest.xmlXML ile yazılır. - Yapılandırma: Maven projelerindeki
pom.xml, .NETweb.configve diğer birçok derleme ve sunucu ayarı.
Sıkça sorulan sorular
XML'in açılımı nedir?
Extensible Markup Language (Genişletilebilir İşaretleme Dili). “Genişletilebilir”, etiketlerinizi kendiniz tanımladığınız; “işaretleme” ise yapının verilerin etrafına yerleştirilen etiketlerle yazıldığı anlamına gelir.
XML bir programlama dili midir?
Hayır. XML bir veri formatıdır: bilgiyi tanımlar ve yapılandırır, ancak hesaplama yapamaz. XPath ve XSLT gibi ilgili teknolojiler XML'i sorgular ve dönüştürür.
XML günümüzde hâlâ kullanılıyor mu?
Evet. Birçok web API'sinde JSON, XML'in yerini aldı; ancak XML site haritaları, RSS akışları, SVG, ofis belgeleri, Android düzenleri, SOAP servisleri ve birçok ülkede e-faturalandırma için standart olmaya devam ediyor.
Son güncelleme: