Βάση δεδομένων ΜΙΜΕ

Η βάση δεδομένων MIME είναι μια συλλογή αρχείων που περιλαμβάνει:

  • Το σύνολο των γνωστών τύπων MIME
  • Τη μέθοδο προσδιορισμού του τύπου MIME ενός αρχείου
  • Μεταδεδομένα σχετικά με τον τύπο MIME, π.χ., περιγραφή, σε ευανάγνωστη μορφή, για χρήση κατά την προβολή αρχείων αυτού του τύπου.

5.2.1. Τοποθεσία

Για έναν διαχειριστή, το σημαντικότερο εφόδιο για την κατανόηση του συστήματος MIME είναι η γνώση των τοποθεσιών όπου είναι αποθηκευμένα αυτά τα αρχεία. Καθώς οι προδιαγραφές XDG shared mime info specification συντάχθηκαν από την ομάδα της επιφάνειας εργασίας X, χρησιμοποιούν τις προδιαγραφές XDG base directory specification. Σας προτείνουμε να εξοικειωθείτε με αυτές τις προδιαγραφές, καθώς είναι ιδιαίτερα χρήσιμες και για άλλες εργασίες διαχείρισης του συστήματος, όπως η επεξεργασία των μενού. Ακολουθεί μία συνοπτική περιγραφή των τοποθεσιών των καταλόγων σύμφωνα με τις προδιαγραφές MIME.

Η βάση δεδομένων MIME δημιουργείται από το σύνολο αρχείων που βρίσκονται στους καταλόγους $XDG_DATA_HOME/mime και $XDG_DATA_DIRS/mime. Αν δεν έχουν οριστεί τιμές για αυτές τις μεταβλητές περιβάλλοντος, χρησιμοποιούνται οι προεπιλεγμένες τιμές ~/.local/share και /usr/local/share:/usr/share, αντίστοιχα. Όπως μπορείτε να δείτε από την προεπιλεγμένη τιμή του $XDG_DATA_DIRS, κάθε μεταβλητή περιβάλλοντος στην ουσία αποτελεί μία λίστα καταλόγων που χωρίζονται μεταξύ τους με ερωτηματικά (;). Όποτε προκύπτουν ορισμοί που συγκρούονται μεταξύ τους, η βάση δεδομένων του χρήστη στο $XDG_DATA_HOME/mime έχει προτεραιότητα έναντι της βάσης δεδομένων του συστήματος στο $XDG_DATA_DIRS/mime. Στη συνέχεια του εγγράφου ακολουθείται η σύμβαση του XDG shared mime specification και χρησιμοποιείται ο όρος <MIME> για αυτό το σύνολο καταλόγων.

Για παράδειγμα, και θεωρώντας ότι ισχύουν οι προεπιλεγμένες τιμές για τις μεταβλητές περιβάλλοντος, η εντολή “Load <MIME>/text/plain.xml σημαίνει ότι πρέπει να φορτωθού τα ακόλουθα αρχεία:

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

5.2.2. Περιεχόμενα

Ακολουθεί λίστα με τους καταλόγους και τα αρχεία που περιέχονται στη βάση δεδομένων MIME μαζί με σύντομες περιγραφές τους:

<MIME>/packages/

Αυτός ο κατάλογος περιέχει απροσδιόριστο αριθμό αρχείων XML, καθένα από τα οποία περιγράφει μία συλλογή τύπων MIME. Στον κατάλογο /usr/share/mime/packages βρίσκεται προεγκατεστημένο το αρχείο freedesktop.org.xml. Αυτό το αρχείο περιλαμβάνει τους προεπιλεγμένους τύπους MIME, δηλαδή όλους τους τύπους που χρησιμοποιούνται και αναγνωρίζονται ευρέως.

Οι εφαρμογές που παρέχουν πληροφορίες για νέους τύπους MIME οφείλουν να εγκαταστήσουν ένα μόνο νέο αρχείο XML σε αυτή τη θέση. Ανάλογα με το πού εγκαθίσταται η εφαρμογή, δημιουργεί το αρχείο αυτό στον υποκατάλογο /mime/package ενός από τους καταλόγους του $XDG_DATA_HOME:$XDG_DATA_DIRS. Π.χ., μία εφαρμογή που εγκαθίσταται στο /usr/bin πρέπει να εγκαταστήσει ένα νέο πηγαίο αρχείο XML στον κατάλογο /usr/share/mime/packages. Για περισσότερες πληροφορίες σχετικά με τα αρχεία XML στον κατάλογο packages, δείτε Ενότητα 5.3 ― Πηγαία αρχεία XML.

<MIME>/ΤΥΠΟΣ_ΜΕΣΟΥ/ΥΠΟΤΥΠΟΣ.xml

Αυτοί οι κατάλογοι και αρχεία παράγονται αυτόματα από την εφαρμογή update-mime-database, με βάση τη συλλογή πηγαίων αρχείων XML στον υποκατάλογο <MIME>/packages/. Π.χ., για κάθε στοιχείο mime-type στο αρχείο /usr/share/mime/packages/freedesktop.org.xml, δημιουργείται ένας κατάλογος στο /usr/share/mime/ με τον τύπο μέσου του τύπου MIME. Παράλληλα, μέσα στον κατάλογο αυτό δημιουργείται ένα αρχείο XML με το αναγνωριστικό υπο-τύπου του τύπου MIME. Τα περιεχόμενα αυτού του αρχείου XML περιλαμβάνουν σχόλια (και τις μεταφράσεις τους), υποκλάσεις και alias.

Παράδειγμα 5-1Παράδειγμα: αρχείο /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="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>
Αυτό το αρχείο δημιουργείται από την εφαρμογή update-mime-database, με χρήση του προεπιλεγμένου πηγαίου αρχείου XML freedesktop.org.xml.

<MIME>/globs

Αποτελείται από μία γραμμή που περιλαμβάνει έναν τύπο MIME και ένα μοτίβο glob, που διαχωρίζονται μεταξύ τους με ερωτηματικά (;). Τα αρχεία που ταιριάζουν με το μοτίβο glob, αντιστοιχίζονται με τον τύπο MIME που προηγείται του ερωτηματικού. Ισχύουν ειδικοί κανόνες για το πώς γίνεται η αντιστοίχιση των ονομάτων αρχείων μέσω των μοτίβων glob. Για περισσότερες λεπτομέρειες, δείτε το XDG shared mime specification.

Και αυτό το αρχείο δημιουργείται από την εφαρμογή update-mime-database με χρήση του προεπιλεγμένου πηγαίου αρχείου XML freedesktop.org.xml.

<MIME>/magic

Δυαδικό αρχείο που περιέχει πληροφορίες για το πώς μπορεί να εντοπιστεί ο τύπος MIME με “sniffing” (ανίχνευση) του περιεχομένου των αρχείων. Συνήθως, πρόκειται για ένα σύνολο κανόνων. Π.χ., “Αναζήτηση του αλφαριθμητικού %PDF- στο byte offset 0 του αρχείου· Αν βρεθεί, ο τύπος MIME του αρχείου προσδιορίζεται ωςapplication/pdf.

Και αυτό το αρχείο δημιουργείται από την εφαρμογή update-mime-database.

<MIME>/XMLnamespaces

Περιλαμβάνει μία αντιστοίχιση των XML namespace σε τύπους MIME. Κάθε γραμμή περιλαμβάνει τρία πεδία, το namespace, το localName και τον τύπο MIME. Κάθε πεδίο διαχωρίζεται από τα υπόλοιπα με ένα διάστημα. Αν το localName είναι κενό, τότε εμφανίζονται δύο διαστήματα μεταξύ του namespace και του τύπου MIME.

Και αυτό το αρχείο δημιουργείται από την εφαρμογή update-mime-database.

<MIME>/aliases

Περιέχει μία λίστα με alias για κάθε τύπο MIME. Πολύ απλά, τα ψευδώνυμα είναι τύποι MIME που ορισμένες φορές είναι γνωστοί με το όνομα άλλου τύπου. Σε κάθε γραμμή αυτού του αρχείου υπάρχουν δύο πεδία: το πρώτο περιέχει το ψευδώνυμο και το δεύτερο τον τύπο MIME. Τα πεδία διαχωρίζονται μεταξύ τους με διαστήματα.

Και αυτό το αρχείο δημιουργείται από την εφαρμογή update-mime-database.

<MIME>/subclasses

Περιέχει μία λίστα όλων των τύπων MIME που αποτελούν υποκλάσεις, μαζί με τον “γονικό” τους τύπο MIME. Σύμφωνα με το XDG shared mime specification:

Ένας τύπος αποτελεί υποκλάση ενός δεύτερου τύπου, αν κάθε στοιχείο του πρώτου τύπου αποτελεί και στοιχείο του δεύτερου. Π.χ., όλα τα αρχεία image/svg είναι ταυτοχρόνως αρχεία text/xml, text/plain και application/octet-stream. Οι υποκλάσεις έχουν να κάνουν περισσότερο με τη μορφή παρά με την κατηγορία δεδομένων (π.χ., δεν υπάρχει κλάση "γενικό λογιστικό φύλλο" από την οποία να εξαρτώνται όλα τα αρχεία λογιστικών φύλλων).

Η μορφή αυτού του αρχείου είναι παρόμοια με του αρχείου aliases. Σε κάθε γραμμή υπάρχουν δύο πεδία: το πρώτο περιέχει τον τύπο MIME που ανήκει σε υποκλάση και το δεύτερο το γονικό τύπο MIME. Τα πεδία διαχωρίζονται μεταξύ τους με διαστήματα.

Και αυτό το αρχείο δημιουργείται από την εφαρμογή update-mime-database.

5.2.3. Ανανέωση της βάσης δεδομένων MIME

Οι διαχειριστές που επιθυμούν να προσθέσουν νέους τύπους MIME στο σύστημα, ή να τροποποιήσουν τις πληροφορίες ενός τύπου MIME, οφείλουν να γνωρίζουν πώς γίνεται η ανανέωση της βάσης δεδομένων MIME. Η εφαρμογή που χρησιμοποιείται για την ανανέωση είναι η update-mime-database.

Π.χ., αν μία εφαρμογή εγκαταστήσει πληροφορίες για ένα νέο τύπο MIME στο αρχείο /usr/share/mime/packages/diff.xml, πρέπει να γίνει κλήση της update-mime-database με την παράμετρο /usr/share/mime.

# update-mime-database /usr/share/mime
***
* Ενημέρωση βάσης δεδομένων MIME στο /usr/share/mime...
***

Η βάση δεδομένων MIME ανανεώνεται με τη σάρωση όλων των πηγαίων αρχείων XML στον κατάλογο <MIME>/packages.