Dokumenttypedefinisjon

Frå Wikipedia – det frie oppslagsverket

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.

En 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 .

[endre] 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:

  1. Eit "personliste "-element inneheld eit vilkårlig tal "person"-element.. "*" seier at det kan være 0, 1 eller mange "person"-element i "personliste "-elementet.
  2. 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 innehalde Eit "namn"-element.
  3. Eit "namn"-element held på data.
  4. Eit "foedselsdato"-element held på data.
  5. Eit "kjoenn"-element held på data.
  6. 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">
 <personliste>
  <person>
    <namn>Ola Nordmann</namn>
    <foedselsdato>27.11.1960</foedselsdato>
    <kjoenn>Mann</kjoenn>
  </person>
</personliste>

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

[endre] 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.


[endre] På verdsveven