La base de dades MIME

La base de dades MIME és una col·lecció de fitxers que serveix per:

  • El conjunt de tipus MIME coneguts
  • El mètode per a determinar el tipus MIME d'un fitxer
  • Metainformació relacionada a un tipus MIME, com ara una descripció llegible per persones a utilitzar quan es mostrin fitxers d'aquest tipus.

5.2.1. Ubicació

Com administrador, el pas més important i bàsic per a entendre el sistema MIME és aprendre les ubicacions on s'emmagatzemen aquests fitxers. Atès que l'Especificació d'informació MIME compartida XDG fou creada pel X Desktop Group, també utilitza l'Especificació de base de directori XDG. És molt recomanable que us familiaritzeu amb aquesta especificació, ja que també és important per altres tasques d'administració del sistema, com ara editar els menús. Més avall es proporciona un breu resum de les ubicacions dels directoris de l'especificació MIME.

La base de dades MIME es crea a partir del conjunt de fitxers ubicats en els directoris $XDG_DATA_HOME/mime i $XDG_DATA_DIRS/mime. Si aquestes variables d'entorn no estan definides, llavors s'utilitzen els valors predeterminats ~/.local/share i /usr/local/share:/usr/share, respectivament. Com es pot veure des del valor predeterminat per $XDG_DATA_DIRS, cada variable d'entorn és una llista de directoris separada per dos punts. La base de dades de l'usuari a $XDG_DATA_HOME/mime té preferència sobre la base de dades del sistema a $XDG_DATA_DIRS/mime quan es troben conflictes de definicions. De forma similar a l'Especificació d'informació MIME compartida XDG, ens referirem a aquest conjunt de directoris com a <MIME> en la resta d'aquest document.

Per exemple, assumint els camins predeterminats per a les variables d'entorn, “Load <MIME>/text/plain.xml significa carregar els fitxers següents:

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

5.2.2. Continguts

La llista següent de directoris i fitxers es troba dins de la base de dades MIME juntament amb breus descripcions:

<MIME>/packages/

Aquest directori conté un número de fitxers XML, cadascun dels quals descriu una col·lecció de tipus MIME. Per defecte, el fitxer freedesktop.org.xml s'instal·la en el directori /usr/share/mime/packages. Aquest fitxer conté tots els tipus MIME predeterminats que són àmpliament utilitzats i reconeguts.

Les aplicacions que proporcionen informació sobre tipus MIME nous han d'instal·lar aquí només un fitxer XML. Depenent del prefix on l'aplicació estigui instal·lada, es crearà el fitxer en el subdirectori /mime/package d'un dels directoris de $XDG_DATA_HOME:$XDG_DATA_DIRS. Per exemple, una aplicació instal·lada a /usr/bin hauria d'instal·lar un fitxer font XML nou en el directori /usr/share/mime/packages. Per a obtenir més informació sobre els fitxers XML en el directori packages, vegeu la Secció 5.3 ― Els fitxers font XML.

<MIME>/MEDI/SUBTIPUS.xml

Aquests directoris i fitxers els genera de manera automàtica l'aplicació update-mime-database a partir de la col·lecció de fitxers font XML en el subdirectori <MIME>/packages/. Per exemple, per cada element mime-type en el fitxer /usr/share/mime/packages/freedesktop.org.xml, es crea un directori a /usr/share/mime/ amb el tipus de medi del tipus MIME. També es crea un fitxer XML en aquest directori amb l'identificador de subtipus d'aquest tipus MIME. El contingut del fitxer XML creat inclou comentaris (i traduccions d'aquests), designacions de subclasses i àlies.

Exemple 5-1Exemple: el fitxer /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="ca">document de text pla</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>
Aquest fitxer es genera amb l'aplicació update-mime-database, utilitzant el fitxer font XML predeterminat freedesktop.org.xml.

<MIME>/globs

Conté una línia amb un tipus MIME i un patró global, separats per dos punts. Els fitxers que coincideixin amb el patró global es resoldran amb el tipus MIME especificat abans dels dos punts. Hi ha regles especials sobre com els noms dels fitxers coincideixen amb el patró global. Per a obtenir més detalls vegeu l'Especificació d'informació MIME compartida XDG.

Aquest fitxer també es genera amb l'aplicació update-mime-database, utilitzant el fitxer font XML predeterminat freedesktop.org.xml.

<MIME>/magic

Un fitxer binari que conté informació sobre com resoldre els tipus MIME “ensumant” el contingut del fitxer. Generalment això és un joc d'una o més regles com ara la “comprovació de la cadena %PDF- en el desplaçament de byte 0 en el fitxer. Si es troba, s'assignarà aquest al tipus de MIME application/pdf.

Aquest fitxer també es genera amb l'aplicació update-mime-database.

<MIME>/XMLnamespaces

Conté un mapejat dels espais de noms dels tipus MIME. Cada línia conté tres camps, l'espai de noms, el nom local i el tipus MIME. Cada camp està separat per un espai. Si el nom local està buit, llavors hi ha dos espais entre l'espai de noms i el tipus MIME.

Aquest fitxer també es genera amb l'aplicació update-mime-database.

<MIME>/aliases

Conté una llista d'àlies per a cada tipus MIME. Un àlies simplement és un tipus MIME que a vegades es coneix com un altre tipus. Per cada línia en aquest fitxer hi ha dos camps: el primer camp és el nom àlies i el segon camp és el tipus MIME. Els camps estan separats per un espai.

Aquest fitxer també es genera amb l'aplicació update-mime-database.

<MIME>/subclasses

Conté una llista de subclasses de tipus MIME i el seu tipus MIME “pare”. De l'Especificació d'informació MIME compartida XDG:

Un tipus és una subclasse d'un altre tipus si alguna instància del primer tipus també és una instància del segon. Per exemple, tots els fitxers image/svg també són fitxers text/xml, text/plain i application/octet-stream. Les subclasses existeixen pel format, més que per la categoria de les dades (per exemple, no hi ha una classe «full de càlcul genèric» que heretin tots els fulls de càlcul).

El format d'aquest fitxer és similar al fitxer aliases. Cada línia conte dos camps, on el primer camp és la subclasse del tipus MIME i el segon camp és el tipus MIME pare. Cada camp està separat per un espai.

Aquest fitxer també es genera amb l'aplicació update-mime-database.

5.2.3. Refresc de la base de dades MIME

Entendre com refrescar la base de dades MIME és important per als administradors que vulguin afegir tipus MIME nous al sistema o modificar la informació sobre un tipus MIME. L'aplicació update-mime-database s'encarrega d'això.

Per exemple, si una aplicació instal·la informació sobre un tipus MIME nou a /usr/share/mime/packages/diff.xml, llavors s'ha de cridar update-mime-database amb el paràmetre /usr/share/mime.

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

La base de dades MIME es refresca escanejant tots els fitxer font XML en el directori <MIME>/packages.