Il database MIME
Il database MIME è una raccolta di file che fornisce:
- L'insieme dei tipi MIME conosciuti
- Il metodo per determinare il tipo MIME di un file
- Le meta-informazioni su un tipo MIME, come una descrizione comprensibile da usare quando mi mostrano file di tale tipo.
- 5.2.1. Posizione
- 5.2.2. Contenuto
- 5.2.3. Aggiornamento del database MIME
5.2.1. Posizione
Per un amministratore, il passo iniziale più importante per comprendere il sistema MIME è conoscere le posizioni in cui tali file sono memorizzati. Poiché la specifica delle informazioni mime condivise XDG è stata proposta dal X Desktop Group, tale specifica fa uso della specifica delle directory base XDG. È consigliato familiarizzare con questa specifica, poiché è importante anche per altre attività di amministrazione come la modifica dei menu. Un breve sommario delle posizioni delle directory appartenenti alla specifica MIME è fornito più avanti.
Il database MIME è creato a partire da un insieme di file posizionati nelle directory $XDG_DATA_HOME/mime e $XDG_DATA_DIRS/mime. Se tali variabili d'ambiente non sono impostate, allora vengono usati i rispettivi valori predefiniti ~/.local/share e /usr/local/share:/usr/share. Come si può vedere nel valore predefinito per $XDG_DATA_DIRS, ciascuna variabile d'ambiente è attualmente un elenco di directory separate dai due punti. Il database dell'utente presso $XDG_DATA_HOME/mime ha la precedenza sul database di sistema presso $XDG_DATA_DIRS/mime quando vengono incontrate definizioni in conflitto. Così come nella specifica delle informazioni mime condivise XDG, nel resto di questo documento si farà riferimento a questo insieme di directory come <MIME>.
Ad esempio, assumendo i percorsi predefiniti per le variabile d'ambiente, “Caricare <MIME>/text/plain.xml” significa caricare i seguenti file:
- ~/.local/share/mime/text/plain.xml
- /usr/local/share/mime/text/plain.xml
- /usr/share/mime/text/plain.xml
5.2.2. Contenuto
Qui di seguito c'è l'elenco delle directory e dei file presenti all'interno del database MIME, con associata una breve descrizione:
- <MIME>/packages/
-
Questa directory contiene un numero qualsiasi di file XML, ciascuno dei quali descrive una raccolta di tipi MIME. In modo predefinito, il file freedesktop.org.xml è installato nella directory /usr/share/mime/packages. Questo file contiene tutti i tipi MIME predefiniti che sono ampiamente usati e riconosciuti.
Quelle applicazioni che forniscono informazioni su nuovi tipi MIME debbono installare qui un nuovo singolo file XML. In funzione del prefisso in cui l'applicazione è installata, il file dell'applicazione viene creato nella sottodirectory /mime/package di una delle directory in $XDG_DATA_HOME:$XDG_DATA_DIRS. Ad esempio, per un'applicazione installata in /usr/bin un nuovo file sorgente XML dovrebbe essere installato nella directory /usr/share/mime/packages. Per maggiori informazioni sui file XML nella directory packages, consultare Sezione 5.3 - I file sorgente XML.
- <MIME>/SUPPORTO/SOTTOTIPO.xml
-
Queste directory e file sono generati automaticamente dall'applicazione update-mime-database a partire dalla raccolta dei file sorgente XML nella sottodirectory <MIME>/packages/. Ad esempio, per ciascun elemento mime-type nel file /usr/share/mime/packages/freedesktop.org.xml, viene creata una directory presso /usr/share/mime/ con il tipo di supporto del tipo MIME. Un file XML viene creato in tale directory con l'identificatore di sottotipo. Il contenuto del file XML creato include commenti (e loro traduzioni), designazioni di sottoclassi e alias.
5-1 Esempio: file /usr/share/mime/text/plain.xmlQuesto file è generato dall'applicazione update-mime-database, usando il file sorgente XML predefinito freedesktop.org.xml.<?xml version='1.0' encoding='utf-8'?> <mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/plain"> <!--Creato automaticamente da update-mime-database. NON MODIFICARE!--> <comment>plain text document</comment> <!-- possibili altre traduzioni --> <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> <comment xml:lang="it">documento testo semplice</comment> <!-- possibili altre traduzioni --> </mime-type>
- <MIME>/globs
-
Contiene una riga con un tipo MIME ed un modello di glob, separati da due punti. I file che hanno corrispondenza con il modello di glob, sono risolti nel tipo MIME specificato prima dei due punti. Ci sono regole speciali su come i nomi di file vengono fatti corrispondere al modello di glob; per maggiori dettagli consultare la specifica delle informazioni mime condivise XDG.
Anche questo file è generato dall'applicazione update-mime-database, usando il file sorgente XML predefinito freedesktop.org.xml.
- <MIME>/magic
-
Un file binario che contiene informazioni su come risolvere i tipi MIME “indovinando” (sniffing) il contenuto del file. In pratica si tratta di un insieme di una o più regole tipo: “controlla la presenza della stringa %PDF- al byte con offset 0 nel file; se trovato, assegna al file il tipo MIME application/pdf”.
Anche questo file è generato dall'applicazione update-mime-database.
- <MIME>/XMLnamespaces
-
Contiene una mappatura dei namespace XML nei tipi MIME. Ciascuna riga contiene tre campi: il namespace, il localName e il tipo MIME. Ciascun campo è separato da uno spazio. Se il localName è vuoto, allora ci sono due spazi tra il namespace e il tipo MIME.
Anche questo file è generato dall'applicazione update-mime-database.
- <MIME>/aliases
-
Contiene un elenco di alias per ciascun tipo MIME. Un alias è semplicemente un tipo MIME che talvolta può essere noto come un altro tipo. Per ciascuna riga nel file ci sono due campi: il primo è il nome dell'alias, il secondo è tipo MIME. I campi sono separati da una spazio.
Anche questo file è generato dall'applicazione update-mime-database.
- <MIME>/subclasses
-
Contiene un elenco di tipi MIME di sottoclasse e i rispettivi tipi MIME “genitore”. Dalla specifica delle informazioni mime condivise XDG:
Il formato di questo file è simile a quello del file aliases. Ciascuna riga contiene due campi: il primo campo è il tipo MIME di sottoclasse e il secondo campo è il tipo MIME genitore. Ciascun campo è separato da uno spazio.Un tipo è una sottoclasse di un altro tipo se ogni istanza del primo tipo è anche un'istanza del secondo. Ad esempio, tutti i file image/svg sono anche file text/xml, text/plain e application/octet-stream. Le sottoclassi sono riferite al formato, piuttosto che alla categoria di dati (ad esempio non c'è alcuna classe "foglio di calcolo generico" da cui far derivare tutti i fogli di calcolo).
Anche questo file è generato dall'applicazione update-mime-database.
5.2.3. Aggiornamento del database MIME
La comprensione della modalità di aggiornamento del database MIME è importante per gli amministratori che desiderino aggiungere nuovi tipi MIME al sistema o comunque modificare informazioni su un tipo MIME. L'applicazione update-mime-database è fornita a tale scopo.
Ad esempio, se un'applicazione installa informazioni su un nuovo tipo MIME in /usr/share/mime/packages/diff.xml, allora deve essere eseguito update-mime-database con il parametro /usr/share/mime.
# update-mime-database /usr/share/mime *** * Aggiornameto database MIME in /usr/share/mime... ***
Il database MIME viene aggiornato scansionando tutti i file sorgente XML nella directory <MIME>/packages.