$v:media-type-map

$v:media-type-map — Mapping from extensions to media types.

Variable:
{http://docbook.org/ns/docbook/variables}media-type-map
Defined in:
modules/variable.xsl
Used in:
main.xsl

Synopsis

<xsl:variable name="v:media-type-map"
              as="map(xs:string, xs:string)">
   <xsl:map>
      <xsl:map-entry key="'.aac'" select="'audio/aac'"/>
      <xsl:map-entry key="'.abw'" select="'application/x-abiword'"/>
      <xsl:map-entry key="'.arc'" select="'application/x-freearc'"/>
      <xsl:map-entry key="'.avif'" select="'image/avif'"/>
      <xsl:map-entry key="'.avi'" select="'video/x-msvideo'"/>
      <xsl:map-entry key="'.azw'" select="'application/vnd.amazon.ebook'"/>
      <xsl:map-entry key="'.bin'" select="'application/octet-stream'"/>
      <xsl:map-entry key="'.bmp'" select="'image/bmp'"/>
      <xsl:map-entry key="'.bz'" select="'application/x-bzip'"/>
      <xsl:map-entry key="'.bz2'" select="'application/x-bzip2'"/>
      <xsl:map-entry key="'.cda'" select="'application/x-cdf'"/>
      <xsl:map-entry key="'.csh'" select="'application/x-csh'"/>
      <xsl:map-entry key="'.css'" select="'text/css'"/>
      <xsl:map-entry key="'.csv'" select="'text/csv'"/>
      <xsl:map-entry key="'.doc'" select="'application/msword'"/>
      <xsl:map-entry key="'.docx'"
                     select="'application/vnd.openxmlformats-officedocument.wordprocessingml.document'"/>
      <xsl:map-entry key="'.eot'" select="'application/vnd.ms-fontobject'"/>
      <xsl:map-entry key="'.epub'" select="'application/epub+zip'"/>
      <xsl:map-entry key="'.gz'" select="'application/gzip'"/>
      <xsl:map-entry key="'.gif'" select="'image/gif'"/>
      <xsl:map-entry key="'.htm'" select="'text/html'"/>
      <xsl:map-entry key="'.html'" select="'text/html'"/>
      <xsl:map-entry key="'.ico'" select="'image/vnd.microsoft.icon'"/>
      <xsl:map-entry key="'.ics'" select="'text/calendar'"/>
      <xsl:map-entry key="'.jar'" select="'application/java-archive'"/>
      <xsl:map-entry key="'.jpeg'" select="'image/jpeg'"/>
      <xsl:map-entry key="'.jpg'" select="'image/jpeg'"/>
      <xsl:map-entry key="'.js'" select="'text/javascript'"/>
      <xsl:map-entry key="'.json'" select="'application/json'"/>
      <xsl:map-entry key="'.jsonld'" select="'application/ld+json'"/>
      <xsl:map-entry key="'.mid'" select="'audio/midi'"/>
      <xsl:map-entry key="'.midi'" select="'audio/midi'"/>
      <xsl:map-entry key="'.mjs'" select="'text/javascript'"/>
      <xsl:map-entry key="'.m3u8'" select="'application/x-mpegURL'"/>
      <xsl:map-entry key="'.mp3'" select="'audio/mpeg'"/>
      <xsl:map-entry key="'.mp4'" select="'video/mp4'"/>
      <xsl:map-entry key="'.mpeg'" select="'video/mpeg'"/>
      <xsl:map-entry key="'.mpkg'" select="'application/vnd.apple.installer+xml'"/>
      <xsl:map-entry key="'.mov'" select="'video/quicktime'"/>
      <xsl:map-entry key="'.odp'" select="'application/vnd.oasis.opendocument.presentation'"/>
      <xsl:map-entry key="'.ods'" select="'application/vnd.oasis.opendocument.spreadsheet'"/>
      <xsl:map-entry key="'.odt'" select="'application/vnd.oasis.opendocument.text'"/>
      <xsl:map-entry key="'.oga'" select="'audio/ogg'"/>
      <xsl:map-entry key="'.ogv'" select="'video/ogg'"/>
      <xsl:map-entry key="'.ogx'" select="'application/ogg'"/>
      <xsl:map-entry key="'.opus'" select="'audio/opus'"/>
      <xsl:map-entry key="'.otf'" select="'font/otf'"/>
      <xsl:map-entry key="'.png'" select="'image/png'"/>
      <xsl:map-entry key="'.pdf'" select="'application/pdf'"/>
      <xsl:map-entry key="'.php'" select="'application/x-httpd-php'"/>
      <xsl:map-entry key="'.ppt'" select="'application/vnd.ms-powerpoint'"/>
      <xsl:map-entry key="'.pptx'"
                     select="'application/vnd.openxmlformats-officedocument.presentationml.presentation'"/>
      <xsl:map-entry key="'.rar'" select="'application/vnd.rar'"/>
      <xsl:map-entry key="'.rtf'" select="'application/rtf'"/>
      <xsl:map-entry key="'.sh'" select="'application/x-sh'"/>
      <xsl:map-entry key="'.svg'" select="'image/svg'"/>
      <!-- not image/svg+xml for epub -->
      <xsl:map-entry key="'.tar'" select="'application/x-tar'"/>
      <xsl:map-entry key="'.tif'" select="'image/tiff'"/>
      <xsl:map-entry key="'.tiff'" select="'image/tiff'"/>
      <xsl:map-entry key="'.ts'" select="'video/mp2t'"/>
      <xsl:map-entry key="'.ttf'" select="'font/ttf'"/>
      <xsl:map-entry key="'.txt'" select="'text/plain'"/>
      <xsl:map-entry key="'.text'" select="'text/plain'"/>
      <xsl:map-entry key="'.vsd'" select="'application/vnd.visio'"/>
      <xsl:map-entry key="'.wav'" select="'audio/wav'"/>
      <xsl:map-entry key="'.weba'" select="'audio/webm'"/>
      <xsl:map-entry key="'.webm'" select="'video/webm'"/>
      <xsl:map-entry key="'.webp'" select="'image/webp'"/>
      <xsl:map-entry key="'.wmv'" select="'video/x-ms-wmv'"/>
      <xsl:map-entry key="'.woff'" select="'font/woff'"/>
      <xsl:map-entry key="'.woff2'" select="'font/woff2'"/>
      <xsl:map-entry key="'.xhtml'" select="'application/xhtml+xml'"/>
      <xsl:map-entry key="'.xls'" select="'application/vnd.ms-excel'"/>
      <xsl:map-entry key="'.xlsx'"
                     select="'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'"/>
      <xsl:map-entry key="'.xml'" select="'application/xml'"/>
      <xsl:map-entry key="'.xul'" select="'application/vnd.mozilla.xul+xml'"/>
      <xsl:map-entry key="'.zip'" select="'application/zip'"/>
      <xsl:map-entry key="'.7z'" select="'application/x-7z-compressed'"/>
   </xsl:map>
</xsl:variable>

Description

When attempting to determine the media type of a file, the stylesheets use this map to check for a media type based on the filename (or URI) extension.

This mapping is derived from Mozilla’s list of common types. The “.3gp” and “.3g2” extensions have been removed because they have multiple mappings. The “.text”, “.mov”, “.m3u8”, and “.wmv” extensions have been added. The media type for “.svg” has been simplified to just “image/svg” because that seems to be what EPUB readers require.