Ana içeriğe geç

XML

Genişletilebilir İşaretleme Dili

Okunuşu
eks em el
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/xml

Kısaca

XML (Extensible Markup Language), kendi tanımladığınız iç içe etiketlerle yapılandırılmış veriyi tutan, insanın ve makinenin okuyabildiği metin biçimidir.

XML nedir?

XML, 1998'de bir W3C Önerisi (Recommendation) oldu. HTML gibi köşeli parantezli etiketler kullanır, ama etiketler sabit değildir: bir kitap listesi <book>, <title> ve <author> kullanabilir, bir fatura da kendi sözlüğünü. Öğelerin nitelikleri ve iç içe çocukları olabilir ve her belgenin tam olarak bir kök öğesi vardır; bu da XML'i karmaşık, hiyerarşik belgeler için çok uygun yapar.

Etrafında bir standartlar ailesi oluştu. XML Schema (XSD), bir belgenin hangi öğeleri ve türleri içerebileceğini tarif eder, böylece belge doğrulanabilir; XPath bir belgenin parçalarını seçer; XSLT bir XML belgesini başka birine dönüştürür; isim alanları (namespace) da farklı kaynaklardan gelen sözlüklerin ad çakışması olmadan karıştırılmasını sağlar.

XML fark edilmediğinde bile her yerdedir: SOAP web servisleri, RSS ve Atom beslemeleri, SVG görselleri, Android arayüz dosyaları, Maven'ın pom.xml'i, arama motorları için site haritaları ve aslında içi XML dolu ZIP arşivleri olan .docx ve .xlsx gibi Office dosyaları. Birçok bankacılık, kamu ve sağlık entegrasyonu hâlâ XML mesajları alıp veriyor.

Sık yapılan bir yanlış, JSON'un XML'i tamamen gereksiz kıldığını düşünmektir. JSON daha hafiftir ve doğrudan nesnelere karşılık gelir, bu yüzden web API'lerinde kazandı; ama XML'in JSON'da olmayan güçlü yanları vardır: karışık metin ve işaretleme, yorumlar, nitelikler, isim alanları ve olgun doğrulama. XML ayrıştırıcıları da güvenli şekilde yapılandırılmalıdır, çünkü dış varlıklar (external entities) gibi özellikler XXE saldırılarına kapı açar.

Önemli noktalar

  • XML, kendi tanımladığınız etiketlerle yapılandırılmış veri için bir metin biçimidir.
  • 1998'de bir W3C standardı oldu.
  • XSD belgeleri doğrular, XPath sorgular, XSLT dönüştürür.
  • SOAP, RSS, SVG, site haritaları ve Office dosyaları XML kullanır.
  • Web API'lerinde JSON hâkim, ama XML belgelere ve sıkı doğrulamaya uyar.

Örnek

Bir XML belgesi ve onu XPath ile okumak (Python)python
import xml.etree.ElementTree as ET

xml = """
<library>
  <book id="1" lang="en">
    <title>Dune</title>
    <author>Frank Herbert</author>
  </book>
  <book id="2" lang="en">
    <title>The Left Hand of Darkness</title>
    <author>Ursula K. Le Guin</author>
  </book>
</library>
"""

root = ET.fromstring(xml)
for book in root.findall("./book"):          # an XPath-style path
    print(book.get("id"), book.findtext("title"))

Sık sorulan sorular

XML ile JSON arasındaki fark nedir?

İkisi de yapılandırılmış veriyi metin olarak saklar. JSON daha kısadır ve doğrudan nesnelere ve dizilere karşılık gelir; bu yüzden çoğu web API'si onu kullanır. XML daha uzundur ama nitelikleri, isim alanlarını, yorumları, karışık içeriği ve resmî şemaları destekler.

XML ile HTML arasındaki fark nedir?

HTML'in web sayfalarını göstermek için sabit bir etiket kümesi vardır ve hatalara karşı hoşgörülüdür. XML'in önceden tanımlanmış etiketi yoktur, veriyi tarif etmek için kullanılır ve iyi biçimli (well-formed) olmalıdır, yoksa ayrıştırıcılar onu reddeder.

XXE saldırısı nedir?

XML External Entity injection: kötü niyetli bir belge, ayrıştırıcıya yerel dosyaları okutmak ya da iç URL'leri çağırtmak için bir dış varlık kullanır. Ayrıştırıcıda dış varlıkları kapatmak bunu önler.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar