Java Desktop System Release 3 システム管理

第 5 章 MIME タイプ

この章では、MIME タイプおよび MIME データベースについて説明します。また、デスクトップへのアプリケーションの追加方法についても説明します。

MIME タイプの概要

MIME (Multipurpose Internet Mail Extension) タイプは、ファイルの書式を特定します。アプリケーションは、MIME タイプによってファイルを読み取ることができます。Web ブラウザや電子メールなどのアプリケーションは、MIME タイプを使用して異なるタイプのファイルを扱います。たとえば、電子メールアプリケーションの場合、MIME タイプを使用して電子メールに添付されているファイルのタイプを検知できます。

ファイルマネージャは MIME タイプを使用してファイルの種類を識別します。ファイルマネージャは、以下のタスクを実行するために MIME タイプを知る必要があります。

新しいアプリケーションをデスクトップに追加する場合は、そのアプリケーションに関連付けられるファイルを、ほかのアプリケーションが認識できる必要があります。新しいアプリケーションが新しい MIME タイプを必要としているかどうかを確認し、新しいアプリケーションによって新しい MIME タイプが確実にインストールされるようにする必要があります。

この章では、MIME データベースについて説明し、さらにアプリケーションがどのように MIME タイプに関連付けられるのかを説明します。また、この章では、新しいアプリケーションをデスクトップに追加するための手順についても説明します。

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 要素から生成されます。

MIME データベースへの MIME タイプの追加

新しい MIME タイプをデータベースに追加するには、アプリケーションが MIME タイプ記述ファイルをインストールする必要があります。 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 タイプ記述ファイルをインストールした後、MIME データベースを更新するために update-mime-database コマンドを実行する必要があります。

デスクトップへのアプリケーションの追加

デスクトップにアプリケーションを追加するには、次の手順を実行します。

  1. アプリケーション用にメニュー項目を追加します。メニュー項目の追加方法については、第 2 章「メニューのカスタマイズ」を参照してください。

  2. /usr/share/icons/theme-name/icon-size/apps に、アプリケーション用のアイコンを追加します。アイコンおよびテーマについては、第 3 章「テーマのインストール」を参照してください。

  3. アプリケーションが新しい MIME タイプを使用し、その MIME タイプが MIME データベースに自動的に追加されない場合は、/usr/share/mime/packages/ に MIME タイプ記述ファイルを追加します。

  4. アプリケーションが新しい MIME タイプ記述ファイルをインストールする場合は、MIME データベースを更新するために、インストール中に update-mime-database コマンドが確実に実行されるようにしてください。

  5. アプリケーションが新しい MIME タイプを使用する場合は、その MIME タイプ用のアイコンを /usr/share/icons/theme-name/icon-size/mimetypes に追加します。アイコンおよびテーマについては、第 3 章「テーマのインストール」を参照してください。

  6. セッションからログアウトし、ログインし直します。