XML Şeması ve DTD
DTD veya XSD olarak da bilinen Belge Türü Tanımı ve XML Şeması, bir XML belgesinin yapısını ve içeriğini tanımlamanın iki yoludur. DTD bu ikisinden daha eskidir ve bu nedenle XML Şeması'nın geliştirmeye çalıştığı sınırlamaları vardır. DTD ve XML Şeması arasındaki ilk fark, ad alanı farkındalığıdır; XML Şeması, DTD değil. Ad alanı farkındalığı, öğeyi veya özniteliği bağlama sokan ad alanları vererek, belirli XML öğelerinden belirli öğelerin ve niteliklerin bulunmasına neden olabilecek belirsizliği ortadan kaldırır.
DTD olmadığında XML Şemasının ad alanının farkında olmasının nedenlerinden biri, XML Şemasının XML'de yazılması ve DTD'nin yazılmamasıdır. Bu nedenle, XML Şemaları herhangi bir XML belgesi gibi programlı olarak işlenebilir. XML Şeması, DTD'nin aksine XML'de yazıldığı gibi başka bir dil öğrenme ihtiyacını da ortadan kaldırır.
XML Şemasının bir diğer önemli avantajı, güçlü yazım uygulama yeteneğidir. XML Şeması, belirli öğelerin veri türünü tanımlayabilir ve hatta belirli uzunluklarda veya değerlerde kısıtlayabilir. Bu özellik, XML belgesinde saklanan verilerin doğru olmasını sağlar. DTD, güçlü yazma özelliklerinden yoksundur ve içeriği veri türlerine doğrulamanın bir yolu yoktur. XML Şeması, içeriği doğrulamak için çok sayıda türetilmiş ve yerleşik veri türüne sahiptir. Bu, yukarıda belirtilen avantajı sağlar. Aynı zamanda tek tip veri türlerine sahiptir, ancak tüm işlemcilerin ve doğrulayıcıların bu veri türlerini desteklemesi gerektiğinden, genellikle eski XML ayrıştırıcılarının başarısız olmasına neden olur.
İnsanların hem avantaj hem de dezavantaj olarak gördükleri DTD'nin bir özelliği, XML Şeması'nın eksik olduğu DTD'leri satır içinde tanımlama yeteneğidir. Küçük dosyalarla çalışırken, aynı belgede hem içeriği hem de şemayı içermenize izin verdiği için bu iyidir, ancak daha büyük belgeler söz konusu olduğunda, şemayı her aldığınızda içerik çektiğinizde bu bir dezavantaj olabilir . Bu, performansı düşürebilecek ciddi ek yüke yol açabilir.
Özet:
1. DTD değil XML Şeması isim alanı farkında.
2. XML Şemaları XML'de yazılırken DTD'ler yazılmaz.
3. DTD değil XML Şeması güçlü yazılmıştır.
4. XML Şeması, DTD'de bulunmayan zenginleştirilmiş ve yerleşik veri türleri zenginliğine sahiptir.
5. DTD, XML Şeması satır içi tanımlara izin vermez.