Java Desktop System Release 3 システム管理

MIME データベース

MIME タイプの情報は、データベースに格納されます。MIME データベースは、/usr/share/mime/ にあります。MIME データベースには多数の MIME タイプが含まれ、それらの MIME タイプは /usr/share/mime/packages/freedesktop.org.xml ファイルに格納されます。アプリケーションは、新しい 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

1 つの 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” と指定した場合、最初の 10 文字だけが検索されます。

type

検索するパターンのタイプを指定します。この属性には、次のタイプが使用できます。 

  • big16

  • big32

  • byte

  • host16

  • host32

  • little16

  • little32

  • string

value

検索するパターンを指定します。 

mask

パターンマスクを指定します。パターンマスクは、ファイル内でパターンを検索するときに、パターン中で無視するビットを識別します。

文字列のマスクは、16 進数形式で、0x から始まる必要があります。

この属性は省略可能です。この属性は例には示されていません。 

MIME データベースから生成されるファイル

新しい MIME タイプがインストールされると、MIME データベースを更新するために update-mime-database コマンドが実行されます。表 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 要素に 2 つの同一ファイル名パターンがある場合、アルファベット順で後に来る MIME タイプ記述ファイルのエントリだけが globs ファイルに追加されます。たとえば、MIME タイプ記述ファイル abc.xml および def.xmlglob 要素に同一のファイル名パターンが含まれる場合、def.xmlglob 要素だけが globs ファイルに追加されます。つまり、アルファベット順で後に来る MIME タイプ記述ファイルのファイル名パターンが優先されます。

アルファベット順にかかわらず、ある MIME タイプ記述がほかの MIME タイプ記述より優先されるようにしたい場合は、packages ディレクトリにあるOverride.xml というファイルに MIME タイプ記述を配置します。

magic

magic ファイルは、MIME データベースの magic 要素、および packages ディレクトリにある MIME タイプ記述ファイルの magic 要素から生成されます。magic ファイルは、2 進数形式で格納されます。

XMLnamespaces

magic ファイルは、MIME データベースの root-XML 要素から生成されます。このファイルは、XML ファイルタイプが使用する XML ネームスペースをすべて一覧表示します。

content-type/content-subtype.xml

これらのファイルは、MIME データベースの comment 要素から生成されます。