XML Şeması vs DTD
XML, Genişletilebilir İşaretleme Dili anlamına gelir. W3C (World Wide Web Consortium) tarafından geliştirilen XML 1.0 spesifikasyonunda tanımlanmıştır. XML, içeriğin sürücü donanımı, işletim sistemleri ve uygulamalar arasında çok az insan müdahalesi ile değiş tokuş edilebilmesi için veri ve metni kodlamak için de basit olan standart bir yol sağlar. XML Şeması, bir XML belgesinin yapısını tanımlar. XML şeması, XML'de izlenmesi gereken sözdizimsel kurallara ek olarak, bir XML belgesinin yapısı ve içeriği üzerinde kısıtlamalar getirir. XML şeması, World Wide Web Consortium (W3C) tarafından sağlanan bir öneridir ve Mayıs 2001'de bir öneri haline gelmiştir. DTD (Document Type Definition), belge öğelerinin nasıl sıralandığını ve iç içe geçtiğini, belgede hangi öğelerin bulunduğunu ve dahil edilen öğelerin niteliklerini de tanımlar. DTD, belgelerin yapısını SGML ailesi biçimlendirme dillerinde tanımlar.
XML Şeması Nedir?
XML şeması, bir XML belgesinin yapısını açıklar. Bir XML belgesinde görünebilecek öğeleri ve bir öğenin boş olup olmadığı veya metin içerip içeremeyeceği gibi niteliklerini tanımlar. Ayrıca hangi öğelerin alt öğeler olacağını ve alt öğelerin sırasını tanımlar. Ayrıca, XML şeması, öğelerde kullanılan veri türlerini ve bunların niteliklerini tanımlar. XML şemaları, genişletilebilir olduğu ve veri türleri ve ad alanları için destek sağladığı için web uygulamalarında yaygın olarak kullanılmaktadır. XML şemasının en büyük gücü veri türleri için destek sağlamasıdır. Bir belgede izin verilen içeriği tanımlamak için kolay yöntemler ve verilerin doğruluğunu sağlamak için yöntemler sağlar. Ayrıca, XML şeması, veritabanlarındaki verilerle çalışmak için hükümlere sahiptir ve veri türleri arasında dönüşüme izin verir.
DTD nedir?
DTD, SGML, XML ve HTML gibi SGML ailesi biçimlendirme dillerindeki belgelerin yapısını tanımlar. Belge öğelerinin nasıl sıralandığını ve iç içe geçtiğini, belgelere hangi öğelerin dahil edildiğini ve dahil edilen öğelerin niteliklerini tanımlar. Bir XML belgesinde DTD, XML bildiriminin altında bulunan bir DOCTYPE bildiriminde bildirilir. DTD'nin gövdesi, belgedeki öğelerin tanımlarını ve niteliklerini içerir ve bir satır içi tanım veya harici bir tanım olarak tanımlanabilir. Harici bir DTD'ye sahip olmak, ayrı sistemler arasında iletişim kurmak için XML protokolü kullandığınızda, satır içi tanımlamada olduğu gibi her seferinde DTD'yi yeniden gönderme ek yükünü az alttığından çok kullanışlıdır. Harici DTD, her iki sistem tarafından da erişilebilen bir web sunucusu gibi bir yere yerleştirilebilir.
XML Şeması ve DTD arasındaki fark nedir?
DTD, XML şemasının öncüsüdür. DTD, bir XML belgesini tanımlamak için temel yapıyı/dilbilgisini sağlarken, bu XML şemasına ek olarak, belgede bulunan veriler üzerindeki kısıtlamaları tanımlamaya yönelik yöntemler de sağlar. Bu nedenle XML şemasının DTD'den daha zengin ve güçlü olduğu düşünülmektedir. Ayrıca, XML şeması, bir XML belgesinin yapısını tanımlamak için nesne yönelimli bir yaklaşım sağlar. Ancak XML şeması yeni bir teknoloji olduğu için bazı XML ayrıştırıcıları henüz onu desteklememektedir. Ayrıca, eski sistemlerin zengin ve karmaşık tanımlarının çoğu DTD ile tanımlanmıştır. Bu yüzden onları yeniden yazmak kolay bir iş olmayacak.