XML Nedir?
XML, verilerin yapılandırılması ve aktarımı için çok yönlü bir işaretleme dilidir. Özelleştirilebilir etiketler, hiyerarşik yapı ve şema tanımları içerir. HTML'den farklı olarak XML, veri temsiline odaklanır, görüntülemeye değil. Logto'nun SAML uygulaması gibi SSO yapılandırmaları da dahil olmak üzere çeşitli uygulamalarda yaygın olarak kullanılır.
Genişletilebilir İşaretleme Dili (XML), veri dosyalarındaki metinlerin nasıl yapılandırılacağını, depolanacağını ve iletileceğini belirtmek için etiketler kullanır. XML, hem insanlar hem de makineler tarafından okunabilir olacak şekilde tasarlanmıştır ve bu da onu güçlü ve yüksek derecede özelleştirilebilir bir işaretleme aracı haline getirir.
XML, 1996 yılında Dünya Çapında Ağ Konsorsiyumu (W3C) tarafından oluşturulmuştur. W3C'nin amacı, belge türlerini tanımlayabilecek ve özel etiketler oluşturma yeteneği sağlayabilecek bir dil yaratmaktı. Ortaya çıkan işaretleme dili türü, bir sayfadaki verilerin başka bir sistemle bir XML dosyası olarak paylaşılmadan önce nasıl işlendiğini tanımlamaya olanak tanır. İki sistem aynı XML dilini (ikisi de yorumlayabilecekleri etiketlerle) kullandığı sürece, her iki sistem de XML dosya formatını "anlayabilir". XML doğru şekilde dağıtıldığında, herhangi bir veri dosyasının saklanabileceğini, iletilebileceğini ve ardından her erişildiğinde tam olarak aynı veri ve yapıyı yeniden üretebileceğini garanti eder.
XML içerik örneği
XML verileri, dijital bir dosyadaki metinlerden oluşur. HTML'e benzer şekilde, hangi metnin nasıl yorumlanacağını belirtmek için etiketler ekleyerek gerekli "kodu" XML dosyaları için oluşturursunuz. Örneğin:
Bu örnek üç kullanıcıyı gösteriyor. XML içeriğine ad, kullanıcı adı, e-posta ve kullanıcı seviyesi dahildir.
Bu, kimlik sağlayıcıları ve kaynak sağlayıcılar arasında paylaşılabilecek ve okunabilecek bir XML belgesi oluşturur.
Önemli olarak yukarıdaki örnek, XML belgelerinin hiyerarşik doğasını gösterir. Örneğin:
- İlk satırın içeriği
<?xml version="1.0" encoding="UTF-8"?>
, sürüm ve kodlamayı belirten XML bildirimi - Bir XML belgesinde bir kök eleman bulunmalıdır, bu örnekte
<users>
- Kök öğe içindeki tüm diğer unsurlar "çocuk unsurlar" olarak adlandırılır
- Yukarıdaki örnekte
<user>
etiketi ile belirtilen 3 çocuk unsur bulunmaktadır <user>
çocuk öğeleri içinde<name>
,<username>
,<email>
ve<level>
gibi birkaç başka çocuk öğe vardır<user>
etiketinde ayrıca bir XML özniteliği olanid
vardır. Bir unsur aynı ada sahip birden fazla öznitelik içeremez
Kullanılan etiketler, her türde verinin ne olduğunu gösterir ve düz metin, verilerin kendisi olarak hizmet eder. Ayrıca içeriğin nasıl girintilendiğine dikkat edin. Bu, sistemlerin XML dosyasını işlemesine yardımcı olmak için değil, insanların XML dosyasını ve hiyerarşik düzenini daha kolay gözden geçirmeleri ve herhangi bir hata veya eksikliği keşfetmeleri için yapılır.
XML şeması nedir?
Şema, bir XML belgesi için "tanım" görevi görür. Bu, XML dosya yapısının anahtar kurallarını ve kısıtlamalarını, içeriği ve veri türlerini kontrol eden kontrol mekanizmalarını tanımladığı anlamına gelir - belgedeki birbiriyle nasıl etkileştiklerini kontrol eden kurallar ve kısıtlamalar. Bu, farklı uygulamalar veya sistemler arasında bile işlendiğinde XML'in veri bütünlüğünün her zaman korunmasını sağlar.
İki ana şema dili, Döküman Türü Tanımı (DTD) ve XML Şema Tanımı (XSD)'dir. Zengin özellik seti, güçlü veri türü yetenekleri ve daha fazlası nedeniyle XSD, XML belgelerinde en yaygın kullanılan dildir.
XML söz dizimi nedir?
XSD gibi XML şemaları, XML belgelerinin geçerliliğini sağlamak için ayrıntılı özelliklerle ilgileniyorsa, XML söz dizimi, XML dosyalarının genel yapısını yöneten ve kontrol eden bir dizi kural sağlar. Örneğin, XML söz dizimi, metin içeriğini, kendiliğinden kapanan elemanlar (ek içeriğe gerek duymayan tek bilgi parçaları) veya XML bildirimi (belgenin karakter kodlaması gibi anahtar bilgileri tanımlamak için belgelerin başlangıcında kullanılan) gibi yapısal nitelikleri kapsayabilmektedir. Ayrıca belgenin kullandığı XML sürümünü de kapsar.
XML vs HTML
HTML'e aşina iseniz, XML dosyalarının işaretlemeyi kullanma şekli çok tanıdık gelecektir, ancak bu iki işaretleme dilinin arasında anahtar bir fark vardır - kullanım durumları ve amaçları farklıdır:
- HTML, tarayıcıların ekranda içeriği nasıl görüntüleyeceklerini anlamalarına yardımcı olmak için kullanılan bir İşaretleme Dilidir
- XML, verileri saklamak, görüntülemek ve aktarmak için kullanılan bir İşaretleme Dilidir
Bunun dışında aralarında başka farklar da vardır:
- HTML'in tarayıcılar için sayfa içeriklerini oluşturmaya yönelik olması nedeniyle, etiket türleri önceden tanımlıdır, oysa XML etiketleri gerçek duruma göre özelleştirilebilir
- HTML genellikle, içerik görüntülenmek için kullanıldığından, statiktir; XML ise veri aktarmakta kullanıldığı için dinamiktir
- HTML, ad alanlarını desteklemezken XML, aynı ada sahip ancak farklı bağlamlarda olan etiketleri ayırt etmek için ad alanlarını kullanabilir
Bu örnekte:
tech:title
<http://www.example.com/tech>
ad alanını kullanmaktadır ve bu<title>
elementinintech
ad alanına ait olduğunu belirtirbio:author
<http://www.example.com/bio>
ad alanını kullanmaktadır ve bu<author>
elementininbio
ad alanına ait olduğunu belirtir
XML, Logto'da nasıl kullanılır?
Logto, SAML protokolünü SSO için destekler. SSO yapılandırması yapılırken, kimlik sağlayıcısı, sertifikalar ve tek oturum açma URL'leri gibi önemli yapılandırmaları içeren XML formatında bir yapılandırma dosyası sağlar.
SAML SSO yapılandırması yapılırken, Logto, kimlik sağlayıcıdan elde edilen XML yapılandırma dosyasının doğrudan yüklenmesine olanak tanır, bu sayede her yapılandırma maddesini manuel olarak doldurma gereği ortadan kalkar.