OBS.
Microsoft Internet Explorer hanterar gärna xml filer, men validerar inte dessa mot en
DTD. Det finns ett tillägg till IE som gör detta möjligt. Nedan har jag satt en länk till en sida som kan installera dessa tillägg. Dessutom uppdateras XML tolken till version 3, sp1.
Klicka här för att installera
DTD - document type definition
En XML fil som inte har en DTD kan vara helt well-formed, men för att
skapa valid XML kod småste man använda någon form av
validering av filens noder. Det finns två metoder för att göra
detta:
Till att börja med så kommer jag att använda DTD, som visserligen
är en lite äldre metod, men som är väl inarbetad.
Användning av DTD
Man kan antingen sätta in DTD data direkt i filen (observera att ordet
efter DOCTYPE alltid måste vara samma som rotnodens namn:
xml5_1.xml
<?xml version="1.0"?>
<!DOCTYPE products [
<!ELEMENT products (product+)>
<!ELEMENT product (code,price,amount)>
<!ELEMENT code (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT amount (#PCDATA)>
]>
<products>
<product>
<code>ABC</code>
<price>122</price>
<amount>4</amount>
</product>
<product>
<code>XYZ</code>
<price>133</price>
<amount>1</amount>
</product>
</products>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Har du installerat iexmltls kan du prova öppna nedanstående xml fil och sedan högerklicka på den. Välj sedan menyalternativet Validate XML
xml5_2.xml
<?xml version="1.0"?>
<!DOCTYPE products [
<!ELEMENT products (product+)>
<!ELEMENT product (code,price,amount)>
<!ELEMENT code (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT amount (#PCDATA)>
]>
<products>
<product>
<code>ABC</code>
<price>122</price>
<amount>4</amount>
</product>
<product>
<code>XYZ</code>
<price>133</price>
</product>
</products>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Du kan även (hellre) sätta DTD:n i en separat fil. I nedanstående exempel heter
filen dtdfil.dtd och finns i samma katalog som xml filen. Det går
även att ange en URL som path till DTD:n
xml5_3.xml
<?xml version="1.0"?>
<!DOCTYPE products SYSTEM "dtdfil.dtd">
<products>
<product>
<code>ABC</code>
<price>122</price>
<amount>4</amount>
</product>
<product>
<code>XYZ</code>
<price>133</price>
<amount>1</amount>
</product>
</products>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
DTD filen innehåller följande
dtdfil.dtd
<!ELEMENT products (product+)>
<!ELEMENT product (code,price,amount)>
<!ELEMENT code (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT amount (#PCDATA)>