5.2. Riconoscimento del tipo MIME di un file

Le applicazioni possono riconoscere il tipo MIME di un file nel seguente modo:

  1. L'applicazione usa degli sniffer di contenuto file per ricercare un particolare modello (pattern) nel file. Uno sniffer di contenuto file associa uno specifico modello in un file con un certo tipo MIME. Se l'applicazione trova una corrispondenza per il modello, allora il tipo MIME associato al modello è il tipo MIME del file.

  2. Se gli sniffer di contenuto file non identificano il tipo MIME, allora l'applicazione può controllare il nome del file. L'applicazione controlla il nome in un registro tipo MIME. Tale registro associa particolari estensioni di file e modelli di nome di file a particolari tipi MIME. Se è individuata una corrispondenza per il nome del file, allora il tipo MIME associato con l'estensione o il modello è il tipo MIME del file.

Le sezioni successive forniscono maggiori informazioni sugli sniffer di contenuto file e sul registro dei tipi MIME.

5.2.1. Sniffer di contenuto file

Gli sniffer di contenuto file sono specificati nel file /etc/gnome-vfs-mime-magic. Il seguente è un esempio di sniffer di contenuto file:

0 string \x89PNG image/png

La sintassi degli sniffer di contenuto file è la seguente:

inizio_offset[:fine_offset] tipo_modello modello [&maschera_modello] tipo

In Tabella 5.1. Campi di uno sniffer di contenuto file sono descritti i campi in un file content sniffer.

Tabella 5.1. Campi di uno sniffer di contenuto file

Campo

Descrizione

offset_inizio

Specifica il numero di caratteri da ignorare in un file prima di cercare un certo testo modello.

tipo_modello

Specifica il tipo di modello da cercare. Il tipo di modello string è il solo supportato alla data di pubblicazione di questa guida.

modello

Specifica il modello da ricercare.

maschera_modello

Specifica una maschera di modello in formato esadecimale. Per maggiori informazioni sulle maschere di modello consultare la sezione successiva.

Questo campo è opzionale e non è presente nell'esempio.

tipo

Specifica il tipo MIME associato con i file che hanno corrispondenza con questa voce.

5.2.2. Maschere di modello

Una maschera di modello identifica i bit nel modello da ignorare durante la ricerca di un modello in un file. Il seguente è un esempio di uno sniffer di contenuto file con una maschera di modello:

0     string          BMxxxx\000\000 &0xffff00000000ffff      image/bmp

Il modello e la maschera dell'esempio sono i seguenti:

Modello

B

M

x

x

x

x

\000

\000

Maschera

ff

ff

00

00

00

00

ff

ff

Il modello e la maschera specificano un file con le seguenti caratteristiche:

  1. il contenuto del file comincia per BM;

  2. BM è seguito da 4 byte di valore qualsiasi;

  3. i quattro byte sono seguiti da \000\000.

Questo sniffer di contenuto file specifica che il tipo MIME dei file che corrispondono al modello e alla maschera è image/bmp.

5.2.3. Registro dei tipi MIME

Il registro dei tipi MIME è posizionato in ${prefix}/share/mime-info e contiene i seguenti file:

File

Estensione del file

File informazioni MIME

.mime

File chiavi MIME

.keys

Le prossime sezioni descrivono i file di informazioni MIME e i file di chiavi MIME.

5.2.3.1. File informazioni MIME

I file informazioni MIME associano i tipi MIME con uno o entrambi dei seguenti:

  • estensioni di file

  • modelli di nome di file

Quando un'applicazione ricerca il tipo MIME di un file, l'applicazione controlla il nome del file nei file di informazione MIME. Se è trovata una corrispondenza per il nome del file, il tipo MIME associato con l'estensione o il modello è il tipo MIME del file.

Nei file informazioni MIME il modello di nome di file da ricercare è scritto sotto forma di espressione regolare.

Il formato delle voci di tipi MIME nel file di informazioni MIME è il seguente:

tipo-MIME
ext[,priorità]: elenco-di-estensioni
regex[,priorità]: elenco-di-espressioni-regolari

È possibile specificare un valore priorità per l'estensione del file e per l'espressione regolare. È possibile usare tale valore per differenziare nomi di file composti. Ad esempio è possibile assegnare una priorità pari a 1 per l'estensione .gz ed assegnare una priorità più elevata pari a 2 per l'estensione .tar.gz. In questo modo il tipo MIME del file abc.tar.gz è quello di .tar.gz.

Nota

È necessario indentare i campi ext e regex con un carattere di tabulazione (\t).

Le seguenti voci di tipi MIME sono tratte dal file informazioni MIME gnome-vfs.mime:

application/x-compressed-tar
regex,2: tar\.gz$
ext: tgz
audio/x-real-audio
ext: rm ra ram
image/jpeg
ext: jpe jpeg jpg
image/png
ext: png
text/html
ext: html htm HTML
text/plain
ext: asc txt TXT
text/x-readme
regex: README.*

Nota

Il file manager legge i file di informazioni MIME in ordine alfabetico. L'ordine alfabetico determina l'ordine in cui i tipi MIME sono assegnati alle estensioni dei file o alle espressioni regolari. Ad esempio se la stessa estensione di file è assegnata a diversi tipi MIME nel file abc.mime e nel file def.mime, viene usato il tipo MIME in abc.mime.

5.2.3.2. File chiavi MIME

I file chiavi MIME forniscono informazioni su un tipo MIME usato nell'interfaccia utente. Ad esempio il file chiavi MIME fornisce una descrizione di un tipo MIME e specifica un'icona per rappresentare i file di tale tipo.

Il seguente è un estratto da un file chiavi MIME:

text/html
description=HTML page
..
[it]description=Pagina HTML
..
icon_filename=gnome-text-html
default_action_type=application
short_list_application_ids_for_novice_user_level=mozilla,netscape,galeon
category=Documents/World Wide Web
..
[it]category=Documenti/World Wide Web
..

Nota

È necessario indentare le chiavi con un carattere di tabulazione (\t).

In Tabella 5.2. Chiavi dei file chiavi MIME sono descritte le chiavi principali nei file chiave MIME. Di solito la chiave description e quella category sono espresse nelle varie localizzazioni.

Tabella 5.2. Chiavi dei file chiavi MIME

Chiave

Descrizione

can_be_executable

Specifica se i file di questo tipo MIME possono essere eseguiti.

description

Descrive il tipo MIME. Questa descrizione può essere mostrata nel file manager ed in altre applicazioni.

icon_filename

Specifica il nome di file di un'icona che rappresenta il tipo MIME. Non si deve specificare il percorso completo del nome del file o l'estensione del file.

Questa icona può essere mostrata nel file manager e in altre applicazioni.

default_action_type

Specifica la categoria dell'azione da intraprendere quando un file di questo tipo MIME è aperto da un utente. Inserire application per questo tipo MIME per la maggior parte delle applicazioni.

short_list_application_ids_for_novice_user_level

Specifica l'applicazione da usare quando un file di questo tipo MIME è aperto da un utente. Specificare una o più applicazioni, in ordine di priorità. Le applicazioni debbono essere registrate anche nel registro delle applicazioni.

category

Specifica una categoria per il tipo MIME. Il valore di questa chiave determina la posizione del tipo MIME nello strumento di preferenze Tipi di file e programmi.