Die MIME-Datenbank

Die MIME-Datenbank ist eine Sammlung von Dateien, die Folgendes bereitstellen:

  • Der Satz der bekannten MIME-Typen
  • Die Methode zur Bestimmung des MIME-Typs einer Datei
  • Meta-Informationen zu einem MIME-Typ, wie eine menschenlesbare Beschreibung der Art und Weise der Anzeige der Dateien dieses Typs.

5.2.1. Ort

Der erste und wichtigste Schritt für Sie als Systemverwalter zum Verstehen des MIME-Systems ist das Kennen der Orte, an denen diese Dateien gespeichert sind. Seit die XDG shared mime info specification durch die X Desktop Group entworfen wurde, wird auch die XDG base directory specification verwendet. Es wird ausdrücklich empfohlen, sich mit dieser Spezifikation vertraut zu machen, da diese auch für andere Systemverwaltungsaufgaben wie die Bearbeitung von Menüs von Bedeutung ist. Eine Kurzbeschreibung der Ordnerpfade der MIME-Spezifikation finden Sie nachstehend.

Die MIME-Datenbank wird aus einer Reihe von Dateien in den Ordnern $XDG_DATA_HOME/mime und $XDG_DATA_DIRS/mime gebildet. Falls diese Umgebungsvariablen nicht gesetzt sind, dann werden als Vorgabe ~/.local/share beziehungsweise /usr/local/share:/usr/share verwendet. Wie im Vorgabewert für $XDG_DATA_DIRS deutlich wird, ist jede dieser Umgebungsvariablen eine Liste aus durch Doppelpunkte getrennten Ordnern. Die Benutzerdatenbank in $XDG_DATA_HOME/mime hat dabei den Vorrang vor der systemweiten Datenbank in $XDG_DATA_DIRS/mime, wenn im Konflikt stehende Definitionen auftreten. Analog zur XDG shared mime specification beziehen wir uns im Folgenden auf diese Reihe von Ordnern, wenn von <MIME> die Rede ist.

Unter der Annahme, das sich die umgebungsvariablen in Standardpfaden befinden, bedeutet »<MIME>/text/plain.xml laden« das Laden folgender Dateien:

  • ~/.local/share/mime/text/plain.xml
  • /usr/local/share/mime/text/plain.xml
  • /usr/share/mime/text/plain.xml

5.2.2. Inhalte

Nachfolgend finden Sie eine Liste von Ordnern und Dateien der MIME-Datenbank mit Kurzbeschreibungen:

<MIME>/packages/

Dieser Ordner enthält eine beliebige Anzahl von XML-Dateien. Jede davon beschreibt eine Reihe von MIME-Typen. Standardmäßig wird die Datei freedesktop.org.xml im Ordner /usr/share/mime/packages installiert. Diese Datei enthält alle Standard-MIME-Typen, die allgemein bekannt sind und weithin benutzt werden.

Anwendungen, die Informationen über neue MIME-Typen bereitstellen, werden hier in einer einzelnen neuen XML-Datei installiert. Abhängig vom Präfix des Installationsortes der Anwendung werden Dateien im Unterordner /mime/package oder in einem der Ordner in $XDG_DATA_HOME:$XDG_DATA_DIRS angelegt. Beispielsweise sollte eine in /usr/bin installierte Anwendung ihre neue XML-Quelldatei im Ordner /usr/share/mime/packages speichern. Weitere Informationen über die XML-Dateien im Ordner packages finden Sie in Abschnitt 5.3 ― Die XML-Quelldateien.

<MIME>/MEDIA/SUBTYPE.xml

Diese Ordner und Dateien werden automatisch aus der Sammlung der XML-Dateien im Unterordner <MIME>/packages/ durch die Anwendung update-mime-database generiert. Beispielsweise wird für jedes mime-type-Element in der Datei /usr/share/mime/packages/freedesktop.org.xml ein Ordner in /usr/share/mime/ mit dem Medientyp des MIME-Typs angelegt. Ebenso wird eine XML-Datei mit dem Untertyp-Bezeichner dieses MIME-Typs erstellt. In der erstellten XML-Datei sind Kommentare (mit Übersetzung), Unterklassen-Definitionen und Aliase enthalten.

Beispiel 5-1Beispiel: Datei /usr/share/mime/text/plain.xml

<?xml version='1.0' encoding='utf-8'?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/plain">
<!--Created automatically by update-mime-database. DO NOT EDIT!-->
  <comment>plain text document</comment>
  <!-- possibly more translations -->
  <comment xml:lang="es">documento de texto sencillo</comment>
  <comment xml:lang="eu">testu soileko dokumentua</comment>
  <comment xml:lang="fi">perustekstiasiakirja</comment>
  <comment xml:lang="fr">document plein texte</comment>
  <!-- possibly more translations -->
</mime-type>
Diese Datei wird von der Anwendung update-mime-database unter Verwendung der vorgegebenen XML-Quelldatei freedesktop.org.xml erstellt.

<MIME>/globs

Enthält eine Zeile mit dem MIME-Typ und einem Übereinstimmungsmuster, durch einen Doppelpunkt getrennt. Dateien, die diesem Übereinstimmungsmuster entsprechen, werden dem vor dem Doppelpunkt angegebenen MIME-Typ zugeordnet. Es gibt spezielle Regeln für den Vergleich von Dateinamen anhand der Übereinstimmungsmuster. Weitere Details hierzu finden Sie in der XDG shared mime specification.

Diese Datei wird ebenfalls durch die Anwendung update-mime-database unter Verwendung der vorgegebenen XML-Quelldatei freedesktop.org.xml generiert.

<MIME>/magic

Eine Binärdatei, die Informationen über die Auflösung von MIME-Typen durch »Erschnüffeln« des Inhalts der Datei enthält. Allgemein handelt es sich dabei um eine Reihe von Regeln wie »Suche nach der Zeichenkette %PDF- beginnend ab Byte 0 in der Datei, falls vorhanden, Zuordnung zum MIME-Typ application/pdf«.

Diese Datei wird auch durch den Befehl update-mime-database erzeugt.

<MIME>/XMLnamespaces

Enthält die Zuordnung der XML-Namensräume zu MIME-Typen. Jede Zeile enthält drei Felder: den Namensraum, den lokalen Namen und den MIME-Typ. Die Felder sind durch Leerzeichen getrennt. Falls der lokale Name leer ist, dann sind Namensraum und MIME-Typ durch zwei Leerzeichen getrennt.

Diese Datei wird auch durch den Befehl update-mime-database erzeugt.

<MIME>/aliases

Enthält eine Liste von Aliasen für jeden MIME-Typ. Ein Alias ist ein simpler MIME-Typ, der unter Umständen auch als anderer MIME-Typ bekannt ist. Jede Zeile in dieser Datei besteht aus zwei Feldern: dem ersten Feld mit dem Namen des Alias und dem zweiten Feld mit dem MIME-Typ. Die Felder sind durch Leerzeichen getrennt.

Diese Datei wird auch durch den Befehl update-mime-database erzeugt.

<MIME>/subclasses

Enthält eine Liste unterklassifizierter MIME-Typen und deren übergeordneten MIME-Typen. Aus der XDG shared mime specification:

Ein Typ ist eine Unterklasse eines anderen Typs, falls irgendeine Instanz des ersten Typs auch eine Instanz des zweiten Typs ist. Beispielsweise sind alle Dateien des Typs »image/svg« auch vom Typ text/xml, text/plain und application/octet-stream. Die Unterklassifizierung bezieht sich auf das Format, nicht auf die Kategorie der Daten. Beispielsweise gibt es kein »allgemeines Tabellendokument«, welches die Eigenschaften alle Tabellendokumente erbt.

Das Format dieser Datei ist analog zur aliases-Datei. Jede Zeile enthält zwei Felder, wobei das erste Feld den unterklassifizierten MIME-Typ bezeichnet und das zweite Feld den übergeordneten MIME-Typ. Die Felder sind durch Leerzeichen getrennt.

Diese Datei wird auch durch den Befehl update-mime-database erzeugt.

5.2.3. Aktualisierung der MIME-Datenbank

Kenntnisse über die Aktualisierung der MIME-Datenbank sind für Systemverwalter von Bedeutung, die neue MIME-Typen zum System hinzufügen oder anderweitig Informationen über einen MIME-Typ anpassen wollen. Die Anwendung update-mime-database ist für diesen Zweck bestimmt.

Wenn beispielsweise eine Anwendung Informationen über einen neuen MIME-Typ in /usr/share/mime/packages/diff.xml speichert, dann muss update-mime-database mit dem Parameter /usr/share/mime aufgerufen werden.

# update-mime-database /usr/share/mime
***
* Updating MIME database in /usr/share/mime...
***

Die MIME-Datenbank wird durch Einlesen aller XML-Quelldateien im Ordner <MIME>/packages aktualisiert.