Ana içeriğe geç

XML Rehberi: Genişletilebilir İşaretleme Dili

**XML (eXtensible Markup Language)**, verileri hem insanların hem de bilgi işlem sistemlerinin kolayca okuyabileceği bir biçimde tanımlamak için tasarlanmış bir işaretleme dilidir. HTML'e benzer ancak XML'de hazır etiketler bulunmaz, kendi etiketlerinizi tanımlayabilirsiniz.

XML Hiyerarşik Yapısı

XML verileri, hiyerarşik bir ağaç yapısında sunulur. Her XML belgesinin tek bir kök (root) elemanı olmalıdır.

\\`xml

<?xml version="1.0" encoding="UTF-8"?>

<app>

<name>JSONFlow</name>

<version>2.0</version>

<status active="true" />

</app>

\\`

XML'in Özellikleri

  • **Nitelikler (Attributes):** Etiketlerin içerisine ek öznitelikler tanımlanabilir (\\\`<status active="true" />\\\` gibi).
  • **Şema Desteği (DTD, XSD):** XML belgelerinin doğruluğu, belirli kurallara göre önceden tanımlanmış şemalarla sıkı bir şekilde denetlenebilir.
  • **Ad Alanları (Namespaces):** Farklı kaynaklardan gelen etiket isimlerinin çakışmasını engellemek için XML Namespace yapısı (\\\`xmlns\\\`) kullanılır.
  • XML vs JSON

  • XML daha ayrıntılıdır, bu yüzden dosya boyutları JSON'a kıyasla daha büyüktür.
  • JSON doğrudan JavaScript nesnesine dönüştürülebilir, XML için ise bir parser (çözümleyici) hiyerarşisi gerekir.
  • Ancak XML, veri bütünlüğü kontrolü ve şema doğrulamasında hala son derece güçlüdür.
  • İyi Biçimlendirilmiş XML Kontrol Listesi

    Her belgenin tek kök elemanı bulunmalı, açılan bütün etiketler doğru sırada kapanmalı ve nitelik değerleri tırnak içine alınmalıdır. Büyük-küçük harf duyarlıdır: <Item> ile </item> aynı etiket değildir. &, < ve > karakterleri metin içinde gerektiğinde entity olarak kaçırılmalıdır.

    Namespace ve XPath Birlikte Kullanımı

    Namespace içeren bir XML belgesinde görünen etiket adı tek başına XPath eşleşmesi için yeterli olmayabilir. Sorgu motoruna prefix eşlemesi vermek veya local-name() yaklaşımını dikkatli kullanmak gerekir. Namespace'i yok saymak kısa vadede kolay görünse de farklı şemalardan gelen aynı adlı düğümleri karıştırabilir.

    JSON'a Dönüştürürken Veri Kaybı Riski

    XML nitelikleri, metin düğümleri, eleman sırası ve tekrar eden etiketler JSON'da tek bir standart temsile sahip değildir. Bu nedenle dönüşüm sonucunda nitelik anahtarlarını, boş elemanları ve tek elemanlı dizileri özellikle kontrol edin. Dönüştürülen veriyi kaynak XML ile yan yana karşılaştırmak sessiz veri kayıplarını yakalamanın en güvenilir yoludur.