What is MIME type "chemical/x-cml"?

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

chemical/x-cml is the MIME type for files using the Chemical Markup Language. It is an XML-based standard that holds chemical structure data. Data like atom positions, bonds, and reactions are stored in a structured text format.

This MIME type helps programs exchange and store rich chemical information. It is used for practical tasks such as:

Files using this format carry the extension CML. The open, text-based design allows both machines and people to read and manage the chemical data easily.

For more technical details on Chemical Markup Language, visit this external reference.

Associated file extensions

Usage Examples

HTTP Header

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


    Content-Type: chemical/x-cml    
  

HTML

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


    <a href="file.dat" type="chemical/x-cml">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', 'chemical/x-cml');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What is chemical/x-cml used for?

The MIME type chemical/x-cml is used to identify files containing Chemical Markup Language (CML). This is an XML-based format designed to store and exchange detailed chemical data, such as molecular structures, spectra, and reactions, in a way that is readable by both humans and machines.

How do I open a file with the .cml extension?

You can open .cml files using specialized scientific software like Avogadro, Jmol, or Open Babel to visualize the 3D molecular structure. Since the format is XML-based text, you can also view the raw data using any standard text editor like Notepad++ or Visual Studio Code.

How do I configure Apache to serve CML files?

To ensure browsers and applications interpret the file correctly, add the MIME type to your Apache configuration or .htaccess file. Use the directive: AddType chemical/x-cml .cml.

Do web browsers support chemical/x-cml natively?

No, standard web browsers (Chrome, Firefox, Edge) do not render chemical structures from CML files natively. To display these files on a website, developers typically use JavaScript libraries like JSmol or 3Dmol.js to parse the XML and render the molecule in a generic HTML canvas.

Why does this MIME type start with 'x-'?

The x- prefix indicates that chemical/x-cml is a non-standard or experimental type that has not been formally registered with IANA as a primary standard. Despite this, it is widely accepted as the de facto standard for CML files within the scientific community and on mime-type.com.

Is chemical/x-cml the same as chemical/x-mdl-molfile?

No, although both store molecular data. CML uses an extensible XML structure, whereas files like .mol (often associated with chemical/x-mdl-molfile) use a rigid, line-based connection table format. CML is generally preferred when you need to include rich metadata alongside the structure.

Are there security risks associated with CML files?

Since CML is based on XML, it can theoretically be vulnerable to XML External Entity (XXE) attacks if processed by a poorly configured parser. However, the files themselves are just text; the risk lies in the software reading them, so always keep your chemical visualization tools updated.

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.