Vad är filformatet DTD?
DTD står för Document Type Definition. En .dtd-fil är en textfil som definierar de tillåtna elementen, attributen och strukturen för ett XML, XHTML, HTML eller SGML-dokument.
Data som sparas i en DTD-fil beskriver strukturen för dess tillhörande dokument - inklusive tillåten nästling och ordningsföljd för element. DTD-filer säkerställer konsekvens när dokument utbyts mellan system; en validerande XML-parser kan också kontrollera giltigheten hos ett specifikt dokument mot dess DTD. Deklarationer använder tre huvudtyper: <!ELEMENT> (barnelement), <!ATTLIST> (attribut) och <!ENTITY> (återanvändbara textmakron).
DTD:er har sitt ursprung i SGML-standarden (ISO 8879, 1986) och antogs av W3C XML 1.0-specifikationen 1998. Välkända publika DTD:er omfattar XHTML, DocBook, SVG och MathML. Eftersom DTD:er saknar stöd för XML-namnrymder och rika datatyper är XSD (W3C XML Schema) och RELAX NG numera de föredragna alternativen. HTML5 använder en minimal <!DOCTYPE html>-deklaration som inte refererar till en faktisk DTD-fil.
Säkerhet & trygghet
RISK: LOWKlartextfil; inget körbart innehåll. DTD-deklarationer för externa entiteter (<!ENTITY % name SYSTEM 'url'>) kan orsaka XML External Entity (XXE)-attacker när de bearbetas av XML-parsers i programkod - detta är inte en risk vid öppning av själva DTD-filen, utan en risk när DTD:n används i en applikation som tolkar osäker XML med DTD-bearbetning aktiverad. Säker att öppna i en textredigerare.
Formatdetaljer
i ett nötskalProgram som öppnar DTD-filer
Tekniska detaljer
djup specifikation| Filtyp | Schema/deklarationsfil i klartext |
| MIME-typ | application/xml-dtd; text/plain (alternativ) |
| Magic bytes | Inga - klartext (kan börja med en XML-kommentar eller direkt med en <!ELEMENT-deklaration) |
| Kodning | UTF-8 eller US-ASCII; kodning deklareras i valfri inledande XML-processinstruktion |
| Komprimering | Ingen - okomprimerad klartext |
| Typisk storlek | 1 KB - 500 KB (enkla DTD:er är små; komplexa standarder som DITA eller DocBook DTD:er kan vara 100+ KB med modulära .mod/.ent-filer) |
| Deklarationstyper | <!ELEMENT> (barnelement och innehållsmodell), <!ATTLIST> (attribut och standardvärden), <!ENTITY> (textmakron), <!NOTATION> (notationstyper) |
| Standardursprung | SGML ISO 8879 (oktober 1986); antogs av W3C XML 1.0 Recommendation (februari 1998) |
| Stöd för namnrymder | Inget - DTD-syntaxen föregår XML-namnrymder, en betydande begränsning jämfört med XSD |
| Stöd för datatyper | Begränsat till ID, IDREF, CDATA, NMTOKEN och några andra - inga rika typer som datum eller heltal |
| Validering | XML-parsers kan validera ett dokument mot dess DTD med hjälp av ELEMENT- och ATTLIST-begränsningar |
| HTML5 DOCTYPE | <!DOCTYPE html> är en minimal platshållare; refererar inte till eller kräver en faktisk DTD-fil |
| Välkända publika DTD:er | XHTML 1.0, DocBook, DITA, SVG 1.1, MathML 2.0 - refereras via PUBLIC/SYSTEM-identifierare i dokument |
| Ersatt av | W3C XML Schema (.xsd, 2001) och RELAX NG (.rnc/.rng, 2003) för namnrymdsmedveten och riktypad validering |
| Släppt | 1986 (SGML, ISO 8879); 1998 for XML DTD (W3C XML 1.0 Recommendation, February 1998) |
| Senaste version | 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 |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.w3.org |
DTD-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om DTD-filer.