Java Desktop System 发行版 3 管理指南

第 5 章 MIME 类型

本章描述 MIME 类型和 MIME 数据库,还描述了如何向桌面添加应用程序。

MIME 类型简介

多用途互联网邮件扩展 (MIME) 类型标识文件的格式。MIME 类型使应用程序能够读取文件。像 Web 浏览器和电子邮件程序这样的应用程序都使用 MIME 类型来处理不同类型的文件。例如,电子邮件应用程序可以使用 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 数据库还可以包含可用于查看或编辑 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 元素的下列属性赋值:

  • namespaceURI:键入唯一地标识 XML 文件类型的名称空间。

  • localName: 键入 XML 文件的本地名。此名称在 XML 文件的名称空间中唯一地标识 MIME 类型。

此元素是可选的。示例中没有此元素。 

Match 元素中的属性

表 5–2 描述 match 元素中的属性。

表 5–2 match 元素中的属性

特性 

说明 

offset

指定在文件中搜索样式之前要忽略的字符。您可以指定一个整数值。这会指定在文件中搜索样式之前要忽略的字符数。 

您也可指定一个要搜索的字符范围。例如,如果您指定 offset=”1:10”,则仅搜索前十个字符。

type

指定要搜索的样式类型。对此属性可以使用下列类型: 

  • big16

  • big32

  • byte

  • host16

  • host32

  • little16

  • little32

  • string

value

指定要搜索的样式。 

mask

指定样式掩码 (pattern mask)。样式掩码标识在文件中搜索样式时忽略样式中的哪些数据位。

字符串的掩码必须是十六进制格式的,并且要以 0x 开头。

此属性是可选的。示例中没有此属性。 

从 MIME 数据库生成的文件

当安装了新的 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.xmldef.xmlglob 元素中包含等同的文件名样式,则仅将来自 def.xmlglob 元素添加到 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 类型,应用程序必须安装 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 数据库。

将应用程序添加到桌面

要将应用程序添加到桌面,请执行以下步骤:

  1. 为该应用程序添加一个菜单项。有关如何添加菜单项的更多信息,参见第 2 章,定制菜单

  2. /usr/share/icons/theme-name/icon-size/apps 添加应用程序的图标。有关图标和主题的更多信息,参见第 3 章,安装主题

  3. 如果应用程序使用新的 MIME 类型,并且没有自动将 MIME 类型添加到 MIME 数据库,请向 /usr/share/mime/packages/ 添加 MIME 类型描述文件。

  4. 如果应用程序安装了新的 MIME 类型描述文件,确保在安装期间执行 update-mime-database 命令以更新 MIME 数据库。

  5. 如果应用程序使用新 MIME 类型,则向 /usr/share/icons/theme-name/icon-size/mimetypes 添加该 MIME 类型的图标。有关图标和主题的更多信息,参见第 3 章,安装主题

  6. 注销会话,然后再次登录。