本章描述 MIME 类型和 MIME 数据库,还描述了如何向桌面添加应用程序。
多用途互联网邮件扩展 (MIME) 类型标识文件的格式。MIME 类型使应用程序能够读取文件。像 Web 浏览器和电子邮件程序这样的应用程序都使用 MIME 类型来处理不同类型的文件。例如,电子邮件应用程序可以使用 MIME 类型来检测电子邮件的附件文件属于哪种类型。
文件管理器使用 MIME 类型来标识文件的类型。文件管理器需要知道文件的 MIME 类型才能执行以下任务:
使用适当的应用程序打开该文件。
显示一个表示文件类型的字符串。
显示一个适当的图标来表示该文件。
显示一组可以打开该文件的其他应用程序。
如果您向桌面添加了一个新应用程序,您必须确保其他应用程序能够识别与该应用程序相关联的文件。您必须确保如果新应用程序需要新的 MIME 类型,该新应用程序会安装新 MIME 类型。
本章描述 MIME 数据库,以及应用程序如何与 MIME 类型关联。本章还描述了向桌面添加新应用程序时必须遵循的步骤。
所有 MIME 类型信息都存储在数据库中。MIME 数据库位于目录 /usr/share/mime/ 中。MIME 数据库包含大量公用 MIME 类型,存储在文件 /usr/share/mime/packages/freedesktop.org.xml 中。应用程序可把新 MIME 类型添加到 MIME 数据库。
应用程序通过下列方式,使用 MIME 数据库检测文件的 MIME 类型:
应用程序检查文件的内容,然后使用 MIME 数据库标识相应的 MIME 类型。MIME 数据库包含文件内容探测指令 (file content sniffer) 信息。文件内容探测指令信息提供文件中特定样式的详细信息。MIME 数据库将此样式与一种 MIME 类型相关联。应用程序检查文件的样式。如果应用程序在文件内容中找到了与该样式的匹配,则该文件的 MIME 类型就是与该样式相关联的 MIME 类型。
MIME 数据库中的 magic 元素指定文件内容探测指令信息。
应用程序检查文件名,然后使用 MIME 数据库标识相应的 MIME 类型。MIME 数据库将特定的文件扩展名和文件名样式与特定的 MIME 类型相关联。应用程序检查文件名,在其中搜索特定的样式。如果找到了与该文件名相匹配的项,则该文件的 MIME 类型就是与该扩展名或样式相关联的 MIME 类型。
MIME 数据库中的 glob 元素指定文件名样式和文件扩展名样式信息。
MIME 数据库还包含每个 MIME 类型的文本描述。MIME 数据库还可以包含可用于查看或编辑 MIME 类型的应用程序列表。
以下是 MIME 类型数据库的样例:
<mime-type type="image/png"> <comment>PNG image</comment> <comment xml:lang="de">PNG-Grafik</comment> : : : <magic priority="50"> <match offset="0" type="string" value="\x89PNG" /> </magic> <glob pattern="*.png" /> </mime-type>
表 5–1 描述 MIME 类型数据库中的元素。
表 5–1 MIME 类型数据库元素
元素 |
说明 |
---|---|
mime-info |
这是文档元素,也是 MIME 数据库中最高级别的元素。此元素包含所有 MIME 类型的必需信息。此元素的名称空间 URI 如下: http://www.freedesktop.org/standards/shared-mime-info |
mime-type |
描述一个 MIME 类型。此元素有一个 type 属性,它指定 MIME 类型。 |
comment |
提供在用户界面中使用的 MIME 类型描述。这些描述可在文件管理器和其他应用程序中显示。 数据库可能包含带 xml:lang 属性的 comment 元素。这些元素可以提供用其他语言写成的描述性文本。 |
magic |
包含 match 元素。match 元素指定要在文件内容中搜索的特定样式。 这会把文件中的特定样式与 mime-type 元素中指定的 MIME 类型相关联。如果应用程序找到了与该样式的匹配,则该文件的 MIME 类型就是与该样式相关联的 MIME 类型。 magic 元素包含 priority 属性。您可以为样式指定优先值。如果在 MIME 数据库的 magic 元素中有等同的样式,则有较高优先值的元素优先。 有关 match 元素的属性的更多信息,参见Match 元素中的属性。 |
glob |
指定要与 MIME 类型匹配的文件名样式。任何匹配此文件名样式的文件都属于此 MIME 类型。 |
root-XML |
如果文件被标识为 XML 文件,您可以使文件与比 text/xml 更特定的 MIME 类型关联。要这样做,可以对 root-XML 元素的下列属性赋值:
此元素是可选的。示例中没有此元素。 |
表 5–2 描述 match 元素中的属性。
表 5–2 match 元素中的属性
当安装了新的 MIME 类型时,会执行 update-mime-database 命令以更新 MIME 数据库。表 5–3 描述 update-mime-database 命令生成的文件:
表 5–3 update-mime-database 生成的文件
文件 |
说明 |
---|---|
globs |
globs 文件从 MIME 数据库中的 glob 元素,以及 packages 目录中任何 MIME 类型描述文件中的 glob 元素生成。globs 文件包含 MIME 类型的简单列表,以及与该文件类型关联的文件名样式。 以下是 globs 文件中条目的示例: application/x-bzip-compressed-tar:*.tar.bz2 text/html:*.html image/png:*.png 如果在 MIME 数据库中的 glob 元素中有两个等同的文件名样式,则仅将按字母顺序排列较后的 MIME 类型描述文件中的条目添加到 globs 文件。例如,如果 MIME 类型描述文件 abc.xml 和 def.xml 在 glob 元素中包含等同的文件名样式,则仅将来自 def.xml 的 glob 元素添加到 globs 文件。也就是说,按字母顺序排列较后的 MIME 类型描述文件中的文件名样式优先。 如果您希望一个 MIME 类型描述不论其字母顺序如何,都优先于其他 MIME 类型描述,则应将其放到 packages 目录中名为 Override.xml 的文件中。 |
magic |
magic 文件从 MIME 数据库中的 magic 元素,以及 packages 目录中任何 MIME 类型描述文件中的 magic 元素生成。magic 文件使用二进制格式存储。 |
XMLnamespaces |
magic 文件从 MIME 数据库中的 root-XML 元素生成。此文件列出 XML 文件类型使用的所有 XML 名称空间。 |
content-type/ content-subtype.xml |
这些文件从 MIME 数据库中的 comment 元素生成。 |
要向数据库添加新 MIME 类型,应用程序必须安装 MIME 类型描述文件 (MIME type description file)。MIME 类型描述文件是将 MIME 类型与文件内容探测指令信息以及文件扩展名和文件名样式相关联的 XML 文件。
以下是样例 MIME 类型描述文件:
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> <mime-type type="image/png"> <comment>PNG image</comment> <comment xml:lang="de">PNG-Grafik</comment> : : : <magic priority="50> <match offset="0" type="string" value="\x89PNG" /> </magic> <glob pattern="*.png" /> </mime-type> </mime-info>
MIME 类型描述文件中的元素与 MIME 数据库中的元素相似。有关 MIME 类型描述文件中元素的信息,参见MIME 数据库的结构。
在应用程序安装 MIME 类型描述文件后,该应用程序必须执行 update-mime-database 命令更新 MIME 数据库。
要将应用程序添加到桌面,请执行以下步骤:
为该应用程序添加一个菜单项。有关如何添加菜单项的更多信息,参见第 2 章,定制菜单。
向 /usr/share/icons/theme-name/icon-size/apps 添加应用程序的图标。有关图标和主题的更多信息,参见第 3 章,安装主题。
如果应用程序使用新的 MIME 类型,并且没有自动将 MIME 类型添加到 MIME 数据库,请向 /usr/share/mime/packages/ 添加 MIME 类型描述文件。
如果应用程序安装了新的 MIME 类型描述文件,确保在安装期间执行 update-mime-database 命令以更新 MIME 数据库。
如果应用程序使用新 MIME 类型,则向 /usr/share/icons/theme-name/icon-size/mimetypes 添加该 MIME 类型的图标。有关图标和主题的更多信息,参见第 3 章,安装主题。
注销会话,然后再次登录。