DTD - Genel Bakış
Yaygın olarak DTD olarak bilinen XML Belge Türü Bildirimi, XML dilini tam olarak tanımlamanın bir yoludur. DTD'ler, bir XML belgesinin yapısının ve sözlüğünün geçerliliğini, uygun XML dilinin gramer kurallarına göre kontrol eder.
Bir XML belgesi şu şekilde tanımlanabilir -
Well-formed- XML belgesi, etiketler gibi tüm genel XML kurallarına uyuyorsa, düzgün şekilde iç içe geçmeli, açılış ve kapanış etiketlerinin dengeli olması ve boş etiketlerin '/>' ile bitmesi gerekir, o zaman iyi biçimlendirilmiş olarak adlandırılır .
VEYA
Valid- Bir XML belgesinin yalnızca iyi biçimlendirilmiş değil , aynı zamanda hangi etiketleri kullandığını, bu etiketlerin hangi nitelikleri içerebileceğini ve diğer özelliklerin yanı sıra diğer etiketlerin içinde hangi etiketlerin bulunabileceğini belirten mevcut DTD'ye de uygun olduğu söylenir. .
Aşağıdaki diyagram, XML belgesini yapılandırmak için bir DTD'nin kullanıldığını göstermektedir -
Türler
DTD, XML belgesinde bildirim temelinde sınıflandırılabilir, örneğin -
Dahili DTD
Harici DTD
Dosya içinde bir DTD bildirildiğinde çağrılır Internal DTD ve ayrı bir dosyada bildirilmişse, External DTD.
DTD Sözdizimi bölümünde bunlar hakkında daha fazla bilgi edineceğiz
Özellikleri
Bir DTD'nin tanımladığı bazı önemli noktalar aşağıdadır -
XML belgesinde görünebilecek öğeler.
görünebilecekleri sıra.
isteğe bağlı ve zorunlu unsurlar.
öğe öznitelikleri ve bunların isteğe bağlı veya zorunlu olup olmadığı.
özniteliklerin varsayılan değerlere sahip olup olamayacağı.
DTD kullanmanın avantajları
Documentation- XML dosyaları için kendi formatınızı tanımlayabilirsiniz. Bu belgeye bakıldığında bir kullanıcı / geliştirici verilerin yapısını anlayabilir.
Validation - Öğelerin doğru sırada görünüp görünmediğini, zorunlu öğelerin ve özniteliklerin yerinde olup olmadığını, öğelerin ve özniteliklerin yanlış bir şekilde eklenmediğini vb. Kontrol ederek XML dosyalarının geçerliliğini kontrol etmenin bir yolunu sunar.
DTD kullanmanın dezavantajları
Ad alanlarını desteklemez. Ad alanı, öğe ve nitelik adlarının gruplara atanabildiği bir mekanizmadır. Bununla birlikte, bir DTD'de ad alanlarının, ad alanlarının kullanım amacını ihlal eden DTD içinde tanımlanması gerekir.
Yalnızca metin dizesi veri türünü destekler .
Nesne yönelimli değildir. Bu nedenle, miras kavramı DTD'lere uygulanamaz.
Öğelerin önemini ifade etmek için sınırlı olasılıklar.