DTD
root.xml
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE Root
[
<!ELEMENT Root (El1, El2,...)>
<!ELEMENT El1 (#PCDATA)>
<!ELEMENT El2 (#PCDATA)>
....
]
>
<ROOT>
<El1>Text1</El1>
<El2>Text2</El2>
...
</ROOT>
root.dtd
<!ELEMENT Root (El1, El2,...)><!ELEMENT El1 (#PCDATA)>
<!ELEMENT El2 (#PCDATA)>
....
<!DOCTYPE Root SYSTEM "root.dtd">
<ROOT>
...
</ROOT>
<!DOCTYPE Root SYSTEM "root.dtd"
[
....
]
>
<ROOT>
...
<ROOT>
Varianter på rad fyra ovan
<!ELEMENT Root (El1, El2,...)> (Först Element El1, sedan El2 o.s.v.)
<!ELEMENT El (#PCDATA)> (0 eller flera tecken, Parsed Character Data)
<!ELEMENT El ANY> (Får innehålla vad som helst under)
<!ELEMENT El EMPTY> (Tomt element <el></el> eller <el/>)
<!ELEMENT Root (El)> (Element El ska finnas en gång)
<!ELEMENT Root (El1 | El2 | ...)>(Element El1 eller El2 eller ...)
<!ELEMENT Root (El1+, El2*, El3?)>
El1 1 eller flera ggr, sedan El2 0 eller flera ggr och sist El3 noll eller en gång
<!ELEMENT Root (El1, El2, El3)?> En eller noll gånger
<!ELEMENT Root (El1 | El2 | El3)+> Root får innehålla El1,El2 och El3 en eller flera gånger i vilken ordning som helst
<!ELEMENT Root (El1*)> (Element El1 noll eller flera ggr)
<!ELEMENT Root (El1)*> (Element El1 noll eller flera ggr)
<!ELEMENT Root (El1, (El2 | El3))> (Element El1 och sedan El2 eller El3)
? : Noll eller En gång
+ : En eller Flera gånger
* : Noll eller Flera gånger
Annars : Exakt en gång
<!DOCTYPE Root
[
<!ELEMENT ROOT (ELEMENT*)>
<!ELEMENT ELEMENT (TXT1, TXT2)>
<!ATTLIST ELEMENT
ATTR1 CDATA #REQUIRED
ATTR2 CDATA #IMPLIED>
ATTR3 CDATA "default">
....
<!ELEMENT TXT1 (#PCDATA)>
<!ELEMENT TXT2 (#PCDATA)>
....
]
>
<ROOT>
<ELEMENT ATTR1="val11" ATTR2="val12" ... >
<TXT1>Text11</TXT1>
<TXT2>Text12</TXT2>
...
<ELEMENT>
<ELEMENT ATTR1="val21" ATTR2="val22" ... >
<TXT1>Text21</TXT1>
<TXT2>Text22</TXT2>
...
<ELEMENT>
...
</ROOT>
!ATTLIST El Attr CDATA #REQUIRED> Attribut måste anges i XML dokument
!ATTLIST El Attr CDATA #IMPLIED> Valfritt att ange attribut
!ATTLIST El Attr CDATA "default" Om attribut ej anges i XML-dokument får det värdet "default"
!ATTLIST El Attr CDATA #FIXED "default"> Annat sätt att ange ovan
!ATTLIST El Attr (typ1|typ2|typ3) #REQUIRED> Begränsa vilka värden attributet kan ha
!ATTLIST El Attr (typ1|typ2|typ3) #IMPLIED>
!ATTLIST El Attr (typ1|typ2|typ3) "typ1">
!ATTLIST El Attr NOTATION(TXT|DOC|RTF) #REQUIRED> Pekar ut program för bearbetning av ett visst format
!ATTLIST El Attr ENTITY #REQUIRED> Se entiteter
!ATTLIST El Attr ENTITIES #REQUIRED> Flera värden separerade med mellanslag. attr="ent1 ent2 ent3.."
!ATTLIST El Attr NMTOKEN #REQUIRED> Namnregler som ID men kan inledas med siffra
!ATTLIST El Attr NMTOKENS #REQUIRED> Flera separerade med mellanslag
!ATTLIST El Attr ID #REQUIRED> Unikt värde i varje element, namnregler som attributnamn
!ATTLIST El Attr IDREF #IMPLIED> Hänvisning till ID
!ATTLIST El Attr IDREFS #IMPLIED> Hänvisning till flera ID separerade med mellanslag
namnområden
<!ELEMENT tag(typ1:post | typ2:post)*><!ATTLIST tag
xmlns:typ1 CDATA #REQUIRED
xmlns:typ2 CDATA #REQUIRED>
<!ELEMENT typ1:post ....>
<!ELEMENT typ2:post ....>