Els fitxers font XML

Ubicats en el directori <MIME>/packages, aquests fitxers XML proporcionen tota la informació relacionada amb els tipus MIME que hi ha instal·lats en la base de dades de l'aplicació update-mime-database. Hi ha unes poques regles sobre el fitxer XML:

  • S'ha d'especificar l'espai de noms com a http://www.freedesktop.org/standards/shared-mime-info
  • L'element arrel ha de ser mime-info
  • Es poden especificar zero o més elements mime-type com a fills de l'element mime-info. L'atribut type s'utilitza per a especificar el tipus MIME que s'està definint.

Per defecte, el fitxer freedesktop.org.xml està instal·lat en el directori packages en un dels camins <MIME> (normalment /usr/share/mime/packages).

La Taula 5-1 proporciona una breu descripció per a cadascun dels elements que pot succeir com a fill de l'element mime-type.

Taula 5-1Child elements of <mime-type>
Element (i atributs) Descripció
<glob pattern="*.xyz"> Aquest element especifica un patró global a comparar amb els noms de fitxer. Si el nom de fitxer coincideix, llavors s'assigna el tipus MIME de l'element mime-type patró. L'atribut pattern és obligatori.
<magic priority="50"> Aquest element conté una llista d'elements match com a fills seus. L'atribut priority és opcional, i especifica una prioritat entre 0 i 100, on 100 és la prioritat de coincidència més alta. Cada element match fill té tres atributs necessaris: type, offset, valor i un quart atribut opcional, mask. Per a obtenir més informació sobre aquests atributs, vegeu l'Especificació d'informació MIME compartida XDG.
<alias type="media/subtipus"> Aquest element defineix un àlies per a l'element mime-type pare. Un àlies és simplement un tipus MIME que és a vegades conegut com un altre tipus. Per exemple, application/x-pdf és un àlies del tipus MIME application/pdf.
<sub-class-of type="media/subtipus"> Aquest element defineix l'element mime-type pare com una subclasse del tipus MIME especificat en l'atribut type. Per exemple, image/svg és una subclasse del tipus MIME text/xml, text/plain i application/octet-stream.
<comment xml:lang="local"> Aquest element proporciona una descripció llegible per persones del tipus MIME. Hi poden haver zero o més ocurrències d'aquest element sempre que cada un contingui un valor únic per a l'atribut xml:lang.
<root-XML namespaceURI="espai-de-noms" localName=""> Si un fitxer es determina com un fitxer XML, llavors aquest element ajuda a classificar futurs fitxers a través de l'utilització dels atributs namespaceURI i localName, ambdós necessaris. L'atribut namespaceURI és l'espai de noms del document i localName és el nom de l'element arrel per al document. Si localName existeix però el seu valor està buit, llavors l'element arrel pot tenir qualsevol nom, però l'espai de noms ha de continuar coincidint.

La manera més fàcil d'entendre aquests fitxers és fer una ullada a un exemple. Segons l'Especificació d'informació MIME compartida XDG, l'Exemple 5-2 mostra els continguts d'un fitxer font XML anomenat diff.xml. Aquest exemple defineix el tipus MIME text/x-diff. Hi ha múltiples elements comment que proporcionen un nom llegible per persones del tipus MIME en un número d'idiomes diferents. Aquest tipus MIME té regles de coincidències a través de patrons globals i a través d'“ensumar” el contingut (més conegut com a regles màgiques). Qualsevol fitxer amb l'extensió .diff o .patch es resoldrà a aquest tipus MIME. A més a més, qualsevol fitxer on el contingut comenci amb la cadena especificada en l'atribut value de l'element match, es resoldrà com a tipus MIME text/x-diff.

L'ordre en què s'apliquen els patrons globals i les regles màgiques està més enllà de l'objectiu d'aquest document. Per a obtenir més informació, vegeu l'Especificació d'informació MIME compartida XDG.

Exemple 5-2Exemple d'un fitxer font XML: diff.xml
<?xml version='1.0'?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/x-diff">
    <comment>Differences between files</comment>
    <comment xml:lang="af">verskille tussen lêers</comment>
    <!-- more translated comment elements -->
    <magic priority="50">
      <match type="string" offset="0" value="diff\t"/>
      <match type="string" offset="0" value="***\t"/>
      <match type="string" offset="0" value="Common subdirectories: "/>
    </magic>
    <glob pattern="*.diff"/>
    <glob pattern="*.patch"/>
  </mime-type>
</mime-info>