A Document Type Definition (DTD) vagy a definíciós dokumentum típusa vagy fájl, vagy a dokumentum SGML vagy XML része , amely leírja a dokumentumot vagy a dokumentumcsoportot.
A DTD leírja a dokumentum nyelvtanát - az elemek (vagy címkék ) felsorolását, az attribútumokat, azok tartalmát és elrendezését -, valamint a további szókincset Karakter-entitások listája formájában .
Az XML séma kifinomultabb alternatíva a DTD-k használatához.
A DTD két szinten írja le a dokumentumokat: a logikai struktúrát, amely összehasonlítható az absztrakt szintaxissal , és a fizikai struktúrát, amely összehasonlítható a konkrét szintaxissal .
A logikai struktúra szintjén egy DTD jelzi a megjelenő elemek nevét és tartalmát, vagyis az alelemeket és az attribútumokat. Az attribútumokon kívül a tartalmat az alelemek nevének, sorrendjének és megengedett előfordulásainak számával kell megadni. A készlet az elemek és a szöveg érvényes hierarchiájának meghatározását jelenti. Másrészt a DTD-k nem teszik lehetővé a szöveg értékének korlátozását, mint például "az X elem tartalma tizedesjegyű egész szám", vagy "az Y elemben , az összes üres sorrend ekvivalens csak egy szóköz ”.
Az érvényes meghatározása egyúttal a „sémák” (például XML séma , Relax NG , Schematron ) szerepe is , de ezeket előnyösen XML szintaxisban fejezik ki, míg a DTD-k sajátos szintaxissal rendelkeznek. Csak a DTD szerves része a W3C XML-ajánlásnak, és csak ez tudja érvényesíteni az XML-dokumentumot ezen ajánlás szempontjából.
A dokumentum DTD-je írható a dokumentumon belül és kívül. A végső DTD a kettő kombinációja.
A fizikai szerkezet szintjén a DTD általános entitásokat is meghatározhat . Ezeknek az alábbi szerepek egyike van:
Néhány különbség van az SGML és az XML DTD-i között. Kifejezési kapacitás szempontjából a legjelentősebb, hogy az XML-hez tartozó DTD-k nem engedélyezik az elemek fészkelésének korlátozását, és érvényes fákat határoznak meg. Például a HTML SGML változatában az "A" elem (linkek és horgonyok esetében) semmilyen szinten nem tartalmazhat más "A" elemet, még akkor sem, ha a tartalom általános leírása közvetett módon "A" -t említ a "lehetséges" tartalomként. A ". Ez a korlátozás nem fejezhető ki a DTD-k XML-verziójában.
Az DML-ek XML-nek SGML-en keresztüli kifejezésének további korlátozása a rendezetlen csoportosítások eltávolítása: az SGML-ben az "A & B & C" X elem tartalmának írása azt jelenti, hogy X- nek tartalmaznia kell a három A, B és C elemet a megrendelésre nincs követelmény. Az XML-hez tartozó DTD-kben, amelyek nem rendelkeznek „&” csatlakozóval, ez csak az összes lehetséges sorrend kifejezett felsorolásával fejezhető ki: az X tartalmi meghatározása az alábbiakra van írva: „A, B, VS”. Az ebből fakadó kombinatorikus robbanás általában ahhoz vezet, hogy az XML-re vonatkozó DTD-kben olyan sorrendet kell bevezetni, amely logikailag nem szükséges a dokumentum információinak feldolgozásához.
A DTD-t a dokumentum belsejében a címke határolja . !DOCTYPE