What is MIME type "application/xml-dtd"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

The application/xml-dtd MIME type marks files that hold an XML Document Type Definition. These files, such as DTD, define the structure and legal elements of an XML document.

They offer a blueprint for validating XML content. A DTD file outlines which tags can appear, their order, and the attributes they may have. XML parsers use this information to check that XML documents follow the predefined rules.


For further details on XML DTDs, see the documentation on MDN Web Docs.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/xml-dtd    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/xml-dtd">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/xml-dtd');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

How do I configure Apache to serve .dtd files with the correct MIME type?

To ensure Apache serves these files correctly, add the line AddType application/xml-dtd .dtd to your .htaccess file or main server configuration. This instructs the server to send the application/xml-dtd header whenever a user requests a DTD file.

What is the correct Nginx configuration for application/xml-dtd?

For Nginx, you should update your mime.types file or add a types block in your server config. Insert the line application/xml-dtd dtd; to associate the extension with the MIME type, then reload Nginx.

Can I use text/xml or text/plain instead of application/xml-dtd?

While parsers often tolerate text/plain or text/xml, application/xml-dtd is the specific standard registered with IANA. Using the correct type ensures that strict XML processors distinguish the definition file from the actual data content.

Why does my browser download the DTD file instead of displaying it?

Browsers are designed to render HTML or XML data, not the structural rules defined in a DTD. Because application/xml-dtd is not a visual format, most browsers default to downloading the file or displaying it as raw text source.

Are there security risks associated with DTD files?

Yes, improperly configured XML parsers that process external DTDs can be vulnerable to XML External Entity (XXE) attacks. To secure your application, ensure your XML parser is configured to disable external entity resolution unless absolutely necessary.

What is the difference between an XSD and a DTD?

A DTD (served as application/xml-dtd) is an older, simpler format for defining XML structure, whereas XSD (XML Schema) is more complex and written in XML itself. XSDs typically use the application/xml or text/xml MIME type, distinct from DTDs.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.