XML Şeması ve DTD Arasındaki Fark

Anonim

XML Şeması vs. DTD

DTD veya Belge Türü Tanımı ve XSD olarak da bilinen XML Şeması, bir XML belgesinin yapısını ve içeriğini tanımlamanın iki yoludur. DTD ikisinin en büyüğü ve dolayısıyla XML Şemasının iyileştirmeye çalıştığı kısıtlamaları vardır. DTD ve XML Şeması arasındaki ilk fark, ad alanı bilinci; XML Şeması, DTD değil. İsim-alanı farkındalığı, elemana veya özniteliğe bağlam koyan isim alanları vererek, birden fazla XML sözlüğünden belirli öğeler ve niteliklere sahip olabilecek belirsizliği ortadan kaldırır.

DTD'de değilken XML Şemasının ad alanını tanımasının nedenlerinden biri XML Şemasının XML'de yazılmış olması ve DTD'nin olmamasıdır. Bu nedenle, XML Şemaları programlı olarak herhangi bir XML belgesi gibi işlenebilir. XML Şeması, DTD'nin aksine XML'de yazıldığı gibi başka bir dil öğrenme ihtiyacını ortadan kaldırır.

XML Şemasının bir diğer önemli avantajı, güçlü yazım uygulama yeteneğidir. Bir XML Şeması, belirli öğelerin veri türünü tanımlayabilir ve hatta onu belirli uzunluklar veya değerler içinde sınırlayabilir. Bu yetenek, XML belgesinde saklanan verilerin doğru olmasını sağlar. DTD, güçlü yazım yeteneklerine sahip değildir ve içeriği veri türlerine göre doğrulamak için herhangi bir yolu yoktur. XML Şeması, içeriği doğrulamak için türetilmiş ve yerleşik veri türlerine sahiptir. Bu, yukarıda belirtilen avantaj sağlar. Aynı zamanda tekdüze veri türlerine sahiptir, ancak tüm işlemcilerin ve doğrulayıcıların bu veri türlerini desteklemesi gerektiği için, eski XML ayrıştırıcılarının başarısız olmasına neden olur.

İnsanlardan genellikle hem bir avantaj ve dezavantaj olarak gördüğü bir DTD karakteristiği, XML Şemasının eksik olduğu DTD'leri satır içi tanımlama yeteneğidir. Küçük dosyalarla çalışırken bu, içeriği ve şemayı aynı belgede içermenizi sağlar, ancak büyük belgeler söz konusu olduğunda bu, bir dezavantaj olabilir, çünkü şemayı her aldığınızda içeriği çekersiniz.. Bu, performansı düşürebilecek ciddi yüklere neden olabilir.

Özet:

1. DTD değil XML Şeması, ad alanı farkındadır.

2. XML Şemaları XML ile yazılırken, DTD'ler değildir.

3. DTD değil XML Şeması güçlü yazılmış.

4. XML Şeması, DTD'de bulunmayan türetilmiş ve yerleşik veri türlerine sahiptir.

5. DTD'nin yaptığı gibi XML Şeması satır içi tanımlamalara izin vermez.