For faster navigation, this Iframe is preloading the Wikiwand page for Document Type Definition.

Document Type Definition

Document Type Definition (DTD) er en deklarasjon i et SGML- eller XML-dokument som definerer strukturen til dokumentet. Det kan inkluderes i dokumentfilen, eller lagres i en separat referert fil. Syntaksen for SGML- og XML-type DTD-er ganske lik, men ikke identisk.

En DTD beskriver tillatte elementer og attributter i et dokument og eventuelt tillatte attributtverdier for hvert element. Videre beskriver det hierarki og antall av elementer. Det meste av en DTD pleier å være ELEMENT- og ATTLIST-definisjoner.

Eksempel

Denne enkle XML-type DTD-en beskriver en liste av personer:

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

Hvis vi tar dette linje for linje, uttrykker det:

  1. Et "personliste "-element inneholder et vilkårlig antall "person"-elementer. "*" betegner at det kan være 0, 1 eller mange "person"-elementer i "personliste "-elementet.
  2. Et "person"-element inneholder elementene "navn", "foedselsdato", "kjoenn" og "foedselsnummer". "?" indikerer at et element er frivillig. "navn"-elementet har ikke "?". Det betyr at et "person"-element inneholde et "navn"-element.
  3. Et "navn"-element inneholder data.
  4. Et "foedselsdato"-element inneholder data.
  5. Et "kjoenn"-element inneholder data.
  6. Et "foedselsnummer"-element inneholder data.

Her er et eksempel på en XML-fil som oppfyller denne DTD-en:

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE personliste SYSTEM "eksempel.dtd">
 <personliste>
  <person>
    <navn>Ola Nordmann</navn>
    <foedselsdato>27. november 1960</foedselsdato>
    <kjoenn>Mann</kjoenn>
  </person>
</personliste>

DTD-en ovenfor krever at alle person-elementer har et navn-element. personliste-elementet er også påkrevet, mens resten er frivillig.

Der er mulig å fremstille dette i en XML-tilpasset nettleser, som f.eks. IE5 eller Mozilla, ved å lime inn og lagre DTD-komponenten over til en tekstfil kalt eksempel.dtd og XML-filen til en tekstfil med et annet navn, og så åpne XML-filen med nettleseren. Filene bør lagres til samme katalog. Det er imidlertid mange nettlesere som ikke sjekker at et XML-dokument tilfredsstiller reglene i DTD-en. Det eneste de krever er at DTD-en syntaktisk korrekt.

DTD-kritikk og alternativer

DTD-støtte er svært utbredt ettersom den er en del av XML 1.0-standarden, men har sine begrensninger:

  • Ingen støtte for de nyere XML-egenskaper, først og fremst navnerom.
  • Mangler uttrykkskraft. Svært mange formelle sider ved et XML-dokument kan ikke beskrives i en DTD.
  • Det brukes en spesiell syntaks (opprinnelig fra SGML) som ikke er XML-basert.

Det finnes to nyere XML schema-språk som er mye kraftligere og har fått "anbefalt"-status i W3C og som nå i økende grad foretrekkes foran DTD-er:

  • XML Schema, også kalt XML Schema Definition (XSD)
  • RELAX NG, som også er en del av DSDL, og en ISO-standard.

Av disse to er XML Schema den desidert mest brukte.

Se også


Eksterne lenker

Autoritetsdata
{{bottomLinkPreText}} {{bottomLinkText}}
Document Type Definition
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?