Databáze MIME

Databáze MIME je sada souborů udávajících:

  • Množinu známých typů MIME
  • Postupy pro určení typu MIME souboru
  • Meta informace ohledně typů MIME, jako např. pro člověka čitelný popis, který se používá při zobrazování souborů daného typu.

5.2.1. Umístění

Pro správce je pro porozumění systému MIME nejdůležitější a základní krok znalost, kde jsou tyto soubory uložené. Tak jako pochází návrh Specifikace sdílení informací mime od XDG od skupiny X Desktop Group, tak tatáž skupiny vytvořila Specifikaci základních složek od XDG. Velmi vám doporučujeme se s touto specifikací seznámit, protože je důležitá i pro další činnosti při správě systému, jak např. úpravu nabídek. Stručný souhrn umístění složek týkajících se specifikace MIME je uveden zde.

Databáze MIME je tvořena sadou souborů umístěných ve složkách $XDG_DATA_HOME/mime a $XDG_DATA_DIRS/mime. Pokud nejsou tyto proměnné prostředí nastavené, použijí se výchozí hodnoty ~/.local/share a případně /usr/local/share:/usr/share. Jak je vidět na výchozí hodnotě pro $XDG_DATA_DIRS, každá proměnná prostředí je dvojtečkami oddělený seznam složek. Pokud dojde ke konfliktu definicí, má uživatelská databáze $XDG_DATA_HOME/mime přednost před systémovou databází $XDG_DATA_DIRS/mime. Podobně jako ve Specifikaci sdílení informací mime od XDG, používá se i ve zbývající části tohoto dokumentu pro tyto složky označení <MIME>.

Například, pokud budeme uvažovat výchozí cesty v proměnných prostředí, pak ‚Načíst <MIME>/text/plain.xml znamená načtení následujících souborů:

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

5.2.2. Obsah

Zde je seznam složek a souborů, které můžete najít uvnitř databáze MIME, včetně stručného popisu:

<MIME>/packages/

Tato složka obsahuje několik souborů XML, z nichž každý popisuje sadu typů MIME. Standardně je to soubor freedesktop.org.xml nainstalovaný ve složce /usr/share/mime/packages. Tento soubor obsahuje výchozí typy MIME, které jsou široce používané a rozpoznávané.

Aplikace, které poskytují informace o novém typu MIME, zde nainstalují jeden nový soubor XML. V závislosti na místě, kde je aplikace nainstalovaná, vytvoří soubor v podsložce /mime/package jedné ze složek $XDG_DATA_HOME:$XDG_DATA_DIRS. Pokud je například aplikace nainstalovaná v /usr/bin, měla by nainstalovat nový zdrojový soubor XML do složky /usr/share/mime/packages. Více informací o souborech XML ve složce packages uvádí Oddíl 5.3 ― Zdrojové soubory XML.

<MIME>/MEDIA/SUBTYPE.xml

Tyto složky a soubory jsou automaticky generované ze sady zdrojových souborů XML v podsložce <MIME>/packages/ pomocí aplikace update-mime-database. Například pro každý element mime-type v souboru /usr/share/mime/packages/freedesktop.org.xml se vytvoří v /usr/share/mime/ složka typ média typu MIME. Stejně tak se ve složce vytvoří soubor identifikátor podtypu typu MIME. Obsah vytvořeného souboru ve formátu XML zahrnuje komentáře (a jejich překlady), pojmenování podtříd a přezdívky.

Příklad 5-1Příklad: soubor /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="cs">Prostý textový dokument</comment>
  <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>
Tento soubor je vygenerovaný pomocí aplikace update-mime-database s použitím zdrojového souboru XML freedesktop.org.xml.

<MIME>/globs

Obsahuje po jednom řádku s typem MIME a hromadnou maskou, navzájem oddělených dvojtečkou. Soubory, které odpovídají hromadné masce, jsou zpracovávány podle typu MIME před dvojtečkou. Existují speciální pravidla, jak porovnávat název souboru s hromadnou maskou, více informací najdete ve Specifikaci sdílení mime od XDG.

Rovněž tento soubor je generovaný aplikací update-mime-database za použití výchozího zdrojového souboru XML freedesktop.org.xml.

<MIME>/magic

Binární soubor obsahující informace, jak rozpoznat typ MIME ‚osaháním‘ obsahu souboru. Obecně to je sada jednoho nebo více pravidel typu ‚podívej se, jestli se v souboru na pozici 0 nachází řetězec %PDF- ; jestliže ano, přiřaď typ MIME application/pdf.

Rovněž tento soubor je generovaný aplikací update-mime-database.

<MIME>/XMLnamespaces

Obsahuje mapování jmenných prostorů XML na typy MIME. Každý řádek obsahuje tři pole: jmenný prostor, místní název a typ MIME. Pole jsou navzájem oddělená mezerami. Pokud je lokální název prázdný, pak jsou mezi jmenný prostorem a typem MIME dvě mezery.

Rovněž tento soubor je generovaný aplikací update-mime-database.

<MIME>/aliases

Obsahuje seznam přezdívek pro každý typ MIME. Přezdívka je jednoduše typ MIME, který je někdy znám pod jiným typem. V každém řádku tohoto souboru jsou dvě pole: první pole je přezdívka a druhé pole je typ MIME. Pole jsou navzájem oddělená mezerami.

Rovněž tento soubor je generovaný aplikací update-mime-database.

<MIME>/subclasses

Obsahuje seznam podtříd typů MIME a jejich ‚rodičovských‘ typů MIME. Specifikace sdílení mime od XDG uvádí:

Typ je podtřídou jiného typu, pokud je nějaká instance prvního typu zároveň instancí druhého typu. Například, všechny soubory image/svg jsou zároveň soubory text/xml, text/plain a application/octet-stream. Podtřídy jsou spíše o formátu než o kategorii dat (např. zde není třída „obecný sešit“, ze které by se odvozovaly všechny sešity).

Formát tohoto souboru je podobný souboru aliases. Každý řádek obsahuje dvě pole, kde první pole je podtřída typu MIME a druhé pole je rodičovský typ MIME. Pole jsou navzájem oddělená mezerou.

Rovněž tento soubor je generovaný aplikací update-mime-database.

5.2.3. Občerstvování databáze MIME

Porozumění tomu, jak občerstvit databázi MIME, je důležité pro správce, kteří chtějí přidávat do svého systému nové typy MIME nebo jinak upravovat informace o typech MIME. K těmto účelům je určená aplikace update-mime-database.

Mějme například aplikaci, která nainstalovala informace o novém typu MIME do /usr/share/mime/packages/diff.xml. Pak update-mime-database musí být spuštěno s parametrem /usr/share/mime.

# update-mime-database /usr/share/mime
***
* Aktualizuje se databáze MIME v /usr/share/mime...
***

Při občerstvování databáze MIME se prochází všechny zdrojové soubory XML ve složce <MIME>/packages.