Die XML-Quelldateien

Diese XML-Dateien befinden sich im Ordner <MIME>/packages und stellen alle Informationen bezüglich der durch die Anwendung update-mime-database in der Datenbank installierten MIME-Typen bereit. Es gibt einige Regeln zu der XML-Datei selbst:

  • Sie müssen eine Namensraum angeben, wie http://www.freedesktop.org/standards/shared-mime-info.
  • Das Wurzelelement muss mime-info sein.
  • Null oder mehr mime-type-Elemente können als Unterelemente des mime-info-Elements angegeben werden. Das type-Attribut wird zur Angabe des zu definierenden MIME-Typs verwendet.

Standardmäßig wird die Datei freedesktop.org.xml in den Ordner packages in einem der <MIME>-Pfade installiert (üblicherweise /usr/share/mime/packages).

In Tabelle 5-1 finden Sie eine Kurzbeschreibung jedes der Unterelemente, die in einem mime-type-Element vorkommen können.

Tabelle 5-1Unterelemente von <mime-type>
Element (und Attribute) Beschreibung
<glob pattern="*.xyz"> Dieses Element gibt ein Übereinstimmungsmuster für Dateinamen an. Falls Übereinstimmungsregeln zutreffen, wir der MIME-Typ des übergeordneten mime-type-Elements zugerordnet. Das pattern-Attribut ist obligatorisch.
<magic priority="50"> Dieses Element enthält eine Liste von match-Unterelementen. Das Priorität-Attribut ist optional und legt die Priorität zwischen 0 und 100 fest, wobei 100 die höchste Priorität darstellt. Jedes match-Unterelement benötigt drei Attribute: Typ, offset, Wert sowie ein weiteres viertes, aber optionales Attribut, mask. Details über diese Attribute finden Sie in XDG shared mime info specification.
<alias type="media/subtype"> Dieses Element definiert einen Alias für das übergeordnete mime-type-Element. Ein Alias ist ein MIME-Typ, der unter Umständen auch als anderer Typ bekannt ist. Beispielsweise ist application/x-pdf ein Alias für den MIME-Typ application/pdf.
<sub-class-of type="media/subtype"> Dieses Element definiert das übergeordnete mime-type-Element als eine Unterklasse des im Attribut Typ angegebenen MIME-Typs. Beispielsweise ist image/svg eine Unterklasse des MIME-Typs text/xml, text/plain, and application/octet-stream.
<comment xml:lang="locale"> Dieses Element stellt eine menschenlesbare Beschreibung eines MIME-Typs bereit. Dieses Element kann gar nicht, einmal oder auch mehrmals vorkommen, solange jedes davon einen eindeutigen Wert für das xml:lang-Attribut enthält.
<root-XML namespaceURI="Namensraum" localName=""> Wenn eine Datei als XML-Datei festgelegt wurde, dann sorgt dieses Element für die weitere Klassifizierung mit Hilfe der namespaceURI- und localName-Attribute, falls erforderlich. Das Attribut namespaceURI ist der Namensraum und das Attribut localName der Name des Wurzelelements des Dokuments. Falls localName vorhanden ist, aber dessen Wert leer ist, dann muss das Wurzelelement einen beliebigen Namen haben, der mit dem Namensraum übereinstimmen muss.

Am einfachsten lassen sich diese Dateien anhand eines Beispiels erklären. In Anlehnung an die XDG shared mime specification zeigt Beispiel 5-2 den Inhalt einer XML-Quelldatei namens diff.xml an. Dieses Beispiel definiert den MIME-Typ text/x-diff. Es gibt mehrere comment-Elemente, die einen Namen des MIME-Typs in verschiedenen Sprachen in menschenlesbarer Form enthalten. Dieser MIME-Typ legt Regeln für Vergleiche sowohl anhand von Übereinstimmungsregeln als auch durch »Erschnüffeln« fest, letzteres ist besser bekannt als magische Regeln. Jede Datei mit der Endung .diff oder .patch wird zu diesem MIME-Typ aufgelöst. Zusätzlich wird jede Datei, deren Inhalt mit dem in den value-Attributen des match-Elements beginnt, dem MIME-Typ text/x-diff zugeordnet.

Die Reihenfolge, nach der Übereinstimmungsregeln und magische Regeln angewendet werden, würde den Rahmen dieses Dokuments sprengen. Details dazu finden Sie in der XDG shared mime info specification.

Beispiel 5-2Beispiel für eine XML-Quelldatei: diff.xml
<?xml version='1.0'?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/x-diff">
    <comment>Differences between files</comment>
    <comment xml:lang="af">verskille tussen lêers</comment>
    <!-- more translated comment elements -->
    <magic priority="50">
      <match type="string" offset="0" value="diff\t"/>
      <match type="string" offset="0" value="***\t"/>
      <match type="string" offset="0" value="Common subdirectories: "/>
    </magic>
    <glob pattern="*.diff"/>
    <glob pattern="*.patch"/>
  </mime-type>
</mime-info>