Che cos'è il formato di file DTD?
DTD sta per Document Type Definition. Un file .dtd è un file di testo semplice che definisce gli elementi, gli attributi e la struttura consentiti di un documento XML, XHTML, HTML o SGML.
I dati salvati in un file DTD descrivono la struttura del documento associato - inclusi l'annidamento e l'ordine degli elementi consentiti. I file DTD garantiscono la coerenza quando i documenti vengono scambiati tra sistemi; un parser XML di convalida può anche verificare la validità di uno specifico documento rispetto al suo DTD. Le dichiarazioni utilizzano tre tipi principali: <!ELEMENT> (elementi figli), <!ATTLIST> (attributi) e <!ENTITY> (macro di testo riutilizzabili).
I DTD hanno avuto origine con lo standard SGML (ISO 8879, 1986) e sono stati adottati dalla specifica W3C XML 1.0 nel 1998. DTD pubblici ben noti coprono XHTML, DocBook, SVG e MathML. Poiché i DTD mancano del supporto per i namespace XML e di tipi di dati avanzati, XSD (W3C XML Schema) e RELAX NG sono oggi le alternative preferite. HTML5 utilizza una dichiarazione <!DOCTYPE html> minima che non fa riferimento a un file DTD effettivo.
Sicurezza e incolumità
RISCHIO: LOWFile di testo semplice; nessun contenuto eseguibile. Le dichiarazioni di entità esterne DTD (<!ENTITY % nome SYSTEM 'url'>) possono causare attacchi XML External Entity (XXE) quando elaborate dai parser XML nel codice dell'applicazione - non è un rischio derivante dall'apertura del file DTD stesso, ma un rischio quando il DTD viene utilizzato in un'applicazione che analizza XML non attendibile con l'elaborazione DTD abilitata. Sicuro da aprire in un editor di testo.
Dettagli del formato
in sintesiProgrammi che aprono file DTD
Dettagli tecnici
specifiche approfondite| Tipo di file | File di schema/dichiarazione in testo semplice |
| Tipo MIME | application/xml-dtd; text/plain (alternativo) |
| Magic bytes | Nessuno - testo semplice (può iniziare con un commento XML o direttamente con una dichiarazione <!ELEMENT) |
| Codifica | UTF-8 o US-ASCII; codifica dichiarata nell'istruzione di elaborazione XML iniziale opzionale |
| Compressione | Nessuna - testo semplice non compresso |
| Dimensione tipica | 1 KB - 500 KB (i DTD semplici sono piccoli; gli standard complessi come i DTD DITA o DocBook possono superare i 100 KB con file .mod/.ent modulari) |
| Tipi di dichiarazione | <!ELEMENT> (elementi figli e modello di contenuto), <!ATTLIST> (attributi e valori predefiniti), <!ENTITY> (macro di testo), <!NOTATION> (tipi di notazione) |
| Origine standard | SGML ISO 8879 (ottobre 1986); adottato dalla raccomandazione W3C XML 1.0 (febbraio 1998) |
| Supporto namespace | Nessuno - la sintassi DTD precede i namespace XML, una limitazione chiave rispetto a XSD |
| Supporto tipi di dati | Limitato a ID, IDREF, CDATA, NMTOKEN e pochi altri - nessun tipo ricco come date o interi |
| Convalida | I parser XML possono convalidare un documento rispetto al suo DTD utilizzando i vincoli ELEMENT e ATTLIST |
| DOCTYPE HTML5 | <!DOCTYPE html> è uno stub minimo; non fa riferimento né richiede un file DTD effettivo |
| DTD pubblici noti | XHTML 1.0, DocBook, DITA, SVG 1.1, MathML 2.0 - referenziati da identificatori PUBLIC/SYSTEM nei documenti |
| Sostituito da | W3C XML Schema (.xsd, 2001) e RELAX NG (.rnc/.rng, 2003) per la convalida consapevole dei namespace e con tipi di dati ricchi |
| Rilasciato | 1986 (SGML, ISO 8879); 1998 for XML DTD (W3C XML 1.0 Recommendation, February 1998) |
| Ultima versione | 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 |
| Standard aperto | Sì · royalty-free |
| Specifica | www.w3.org |
Conversioni DTD
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file DTD.