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í
- 5.2.2. Obsah
- 5.2.3. Občerstvování databáze MIME
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-1 Příklad: soubor /usr/share/mime/text/plain.xmlTento soubor je vygenerovaný pomocí aplikace update-mime-database s použitím zdrojového souboru XML freedesktop.org.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>
- <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í:
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.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).
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.