Hva er DTD-filformatet?
DTD står for Document Type Definition. En .dtd-fil er en fil i ren tekst som definerer de tillatte elementene, attributtene og strukturen til et XML, XHTML, HTML eller SGML-dokument.
Dataene som lagres i en DTD-fil beskriver strukturen til det tilhørende dokumentet - inkludert tillatt nøsting og rekkefølge på elementer. DTD-filer sikrer konsistens når dokumenter utveksles mellom systemer; en validerende XML-parser kan også sjekke gyldigheten til et spesifikt dokument mot dets DTD. Deklarasjoner bruker tre hovedtyper: <!ELEMENT> (underelementer), <!ATTLIST> (attributter) og <!ENTITY> (gjenbrukbare tekstmakroer).
DTD-er oppsto med SGML-standarden (ISO 8879, 1986) og ble tatt i bruk av W3C XML 1.0-spesifikasjonen i 1998. Kjente offentlige DTD-er dekker XHTML, DocBook, SVG og MathML. Fordi DTD-er mangler støtte for XML-navnerom og rike datatyper, er XSD (W3C XML Schema) og RELAX NG nå de foretrukne alternativene. HTML5 bruker en minimal <!DOCTYPE html>-deklarasjon som ikke refererer til en faktisk DTD-fil.
Sikkerhet og trygghet
RISIKO: LOWFil i ren tekst; ingen eksekverbart innhold. DTD-eksterne entitetsdeklarasjoner (<!ENTITY % name SYSTEM 'url'>) kan forårsake XML External Entity (XXE)-angrep når de behandles av XML-parsere i applikasjonskode - ikke en risiko ved å åpne selve DTD-filen, men en risiko når DTD-en brukes i en applikasjon som parser upålitelig XML med DTD-behandling aktivert. Trygg å åpne i et tekstredigeringsprogram.
Formatdetaljer
i et nøtteskallProgrammer som åpner DTD-filer
Tekniske detaljer
dyp spesifikasjon| Filtype | Skjema-/deklarasjonsfil i ren tekst |
| MIME-type | application/xml-dtd; text/plain (alternativ) |
| Magic bytes | Ingen - ren tekst (kan starte med en XML-kommentar eller direkte med en <!ELEMENT-deklarasjon) |
| Koding | UTF-8 eller US-ASCII; koding deklarert i valgfri innledende XML-prosesseringsinstruksjon |
| Komprimering | Ingen - ukomprimert ren tekst |
| Typisk størrelse | 1 KB - 500 KB (enkle DTD-er er små; komplekse standarder som DITA eller DocBook DTD-er kan være over 100 KB med modulære .mod/.ent-filer) |
| Deklarasjonstyper | <!ELEMENT> (underelementer og innholdsmodell), <!ATTLIST> (attributter og standardverdier), <!ENTITY> (tekstmakroer), <!NOTATION> (notasjonstyper) |
| Standard opprinnelse | SGML ISO 8879 (oktober 1986); adoptert av W3C XML 1.0 Recommendation (februar 1998) |
| Støtte for navnerom | Ingen - DTD-syntaks er eldre enn XML-navnerom, en viktig begrensning sammenlignet med XSD |
| Støtte for datatyper | Begrenset til ID, IDREF, CDATA, NMTOKEN og noen få andre - ingen rike typer som dato eller heltall |
| Validering | XML-parsere kan validere et dokument mot dets DTD ved hjelp av ELEMENT- og ATTLIST-begrensninger |
| HTML5 DOCTYPE | «<!DOCTYPE html>» er en minimal stubb; refererer ikke til eller krever en faktisk DTD-fil |
| Kjente offentlige DTD-er | XHTML 1.0, DocBook, DITA, SVG 1.1, MathML 2.0 - referert av PUBLIC/SYSTEM-identifikatorer i dokumenter |
| Erstattet av | W3C XML Schema (.xsd, 2001) og RELAX NG (.rnc/.rng, 2003) for navnerom-bevisst og rik-typet validering |
| Utgitt | 1986 (SGML, ISO 8879); 1998 for XML DTD (W3C XML 1.0 Recommendation, February 1998) |
| Siste versjon | XML 1.0 Fifth Edition (November 2008); XML 1.1 Second Edition (August 2006) - DTD syntax unchanged since 1998; W3C XML Schema (XSD) and RELAX NG are modern replacements |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.w3.org |
DTD-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om DTD-filer.