DTD-tutorial

Dokumenttypdefinition (DTD) kan definiera giltiga XML-dokumentbyggelement. Den använder en uppsättning giltiga element för att definiera dokumentets struktur.

DTD kan deklareras rad för rad i XML-dokumentet eller som en extern referens.

Intern DOCTYPE-deklaration

Om DTD inkluderas i din XML-källfil, bör det packas in i en DOCTYPE-deklaration med följande syntax:

!DOCTYPE root-element [element-deklaration]

Ett exempel på XML-dokument med DTD (öppna i IE5 och högre versioner, och välj Visa källkod):

<?xml version="1.0"?>
!DOCTYPE note [
  !ELEMENT note (to,from,heading,body)
  !ELEMENT to      (#PCDATA)
  !ELEMENT from    (#PCDATA)
  !ELEMENT heading (#PCDATA)
  !ELEMENT body    (#PCDATA)
>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Påminnelse</heading>
  <body>Glöm inte mötet!</body>
</note>

Öppna denna XML-fil i din webbläsare och välj kommandot "Visa källkod".

Följande DTD-förklaringar:

!DOCTYPE note (rad 2) definierar detta dokument som note dokument.

!ELEMENT note (rad 3) definieras note Elementen har fyra element: "to,from,heading,body"

!ELEMENT to (rad 4) definieras to Element är av typen "#PCDATA"

!ELEMENT from (rad 5) definieras from Element är av typen "#PCDATA"

!ELEMENT heading (rad 6) definieras heading Element är av typen "#PCDATA"

!ELEMENT body (rad 7) definieras body Element är av typen "#PCDATA"

External document declaration

Om DTD ligger utanför XML-källfilen, bör den inkluderas i en DOCTYPE-definition enligt följande syntax:

!DOCTYPE root-element SYSTEM "filnamn"

Denna XML-dokument är lika som det tidigare XML-dokumentet, men har en extern DTD: (Öppna i IE5och välj kommandot "Visa källkod".)

<?xml version="1.0"?>
!DOCTYPE note SYSTEM "note.dtd"
<note>
<to>George</to>
<from>John</from>
<heading>Påminnelse</heading>
<body>Glöm inte mötet!</body>
</note>

Detta är en fil "note.dtd" som innehåller DTD:

!ELEMENT note (to,from,heading,body)
!ELEMENT to (#PCDATA)
!ELEMENT from (#PCDATA)
!ELEMENT heading (#PCDATA)
!ELEMENT body (#PCDATA)

Varför använda DTD?

Genom DTD kan varje en av dina XML-filer bära en beskrivning av dess egen format.

Genom DTD kan oberoende grupper använda en standard DTD för att utbyta data på ett enhetligt sätt.

Och din applikation kan använda en standard DTD för att validera data som mottas från externa källor.

Du kan också använda DTD för att validera dina egna data.