Dokumenttypedefinisjon

Document Type Definition (DTD) er ein deklarasjon i eit SGML- eller XML-dokument som definerer strukturen til eit dokument. Det kan bli inkludert i dokumentfila, eller bli lagra i ei ekstern fil. Syntaksen for SGML- og XML-type DTD-er tilnærma like.

Ein DTD skildrar tillatne element og attributt i eit dokument og eventuelt tillatne attributtverdiar for kvart element samt kor mange av kvart element som er lovleg . 

 Døme 
Ein enkel DTD som skildrar ei liste av personar:

 <!ELEMENT personliste (person*)>
 <!ELEMENT person (namn, foedselsdato?, kjoenn?, foedselsnummer?)>
 <!ELEMENT namn (#PCDATA) >
 <!ELEMENT foedselsdato (#PCDATA) >
 <!ELEMENT kjoenn (#PCDATA) >
 <!ELEMENT foedselsnummer (#PCDATA) >

Linje for linje blir det:
 Eit «personliste »-element inneheld eit vilkårleg tal «person»-element.. «*» seier at det kan vere 0, 1 eller mange "person«-element i »personliste "-elementet.
 Eit «person»-element held på elementa «namn», «foedselsdato», «kjoenn» og «foedselsnummer». «?» viser at eit elementet er friviljug. «namn»-elementet har ikkje «?». Det tyder at eit «person»-elementet må innehalde Eit «namn»-element.
 Eit «namn»-element held på data.
 Eit «foedselsdato»-element held på data.
 Eit «kjoenn»-element held på data.
 Eit «foedselsnummer»-element held på data.

Her er eit døme på ei XML-fil som oppfyller denne DTD-en:

 <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE personliste SYSTEM "eksempel.dtd">
          Ola Nordmann
     27.11.1960
     Mann



DTD-en ovanfor krev at alle person-element har eitt namn-element. personliste-elementet er også obligatorisk, medan resten er friviljug.

 Alternativ 
DTD-støtte har svært utbreidd støtte ettersom den er ein del av XML 1.0-standarden. Men den har avgrensa bruksområde.

Det finst to nyare XML skjema-språk som er tilrådd av W3C.

 XML-skjema, òg kalla XML Schema Definition (XSD)
 RELAX NG, som òg er ein del av DSDL. Dette er ein ISO-standard.

 Bakgrunnsstoff 
 Ulike doctyper for HTML
 XMLPatterns.com - Designmønster for DTD-er
 <oXygen/> XML Editor

Kategori:XML