Java Desktop System 发行版 3 管理指南

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 元素生成。