XML referens

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)>
   ....
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Root SYSTEM "root.dtd">
<ROOT>
   ...
</ROOT>
<?xml version="1.0" encoding="utf-8"?>
<!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


<?xml version="1.0" encoding="utf-8"?>
<!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 ....>
Tillbaka