Los archivos fuente XML
Unicados en el directorio <MIME>/packages, estos archivos XML proporcionan toda la información acerca de los tipos MIME que están instalados en la base de datos por la aplicación update-mime-database. Existen algunas reglas acerca del archivo XML en sí:
- Debe especificar el nombre de espacio como «http://www.freedesktop.org/standards/shared-mime-info».
- El elemento raíz debe ser mime-info
- Se pueden especificar cero o más elementos mime-type como hijos del elemento mime-info. El atributo type se usa para especificar el tipo MIME que se está definiendo.
De forma predeterminada el archivo freedesktop.org.xml está instalado en el directorio packages en una de las rutas <MIME> (generalmente /usr/share/mime/packages).
La Tabla 5-1 proporciona una breve descripción para cada uno de los elementos que pueden suceder como hijos del elemento mime-type.
Elemento (y atributos) | Descripción |
---|---|
<glob pattern="*.xyz"> | Este elemento especifica un patrón global contra nombres de archivo. Si el nombre de archivo coincide, entonces se asigna al tipo MIME del elemento padre tipo-mime. El atributo pattern es obligatorio. |
<magic priority="50"> | Este elemento contiene una lista de elementos coincidentes comos hijos suyos. El atributo priority es opcional y especifica una prioridad entre 0 y 100, siendo 100 la prioridad más alta de coincidencia. Cada elemento hijo coincidente posee los tres elementos necesarios: type, offset, valor y un cuarto atributo opcional, mask. Para obtener más detalles acerca de estos atributos, consulte la especificación de información MIME compartida XDG. |
<alias type="media/subtype"> | Este elemento define un alias para el elemento padre tipo-mime. Un alias es simplemente un tipo MIME que a veces se conoce como otro tipo. Por ejemplo, application/x-pdf es un alias para el tipo MIME application/pdf. |
<sub-class-of type="media/subtype"> | Este elemento define el elemento padre tipo-mime como una subclase del tipo MIME especificado en el atributo type. Por ejemplo, image/svg es una subclase del tipo MIME text/xml, text/plain y application/octet-stream. |
<comment xml:lang="locale"> | Este elemento proporciona una descripción legible por humanos del tipo MIME. Puede no haber ocurrencias de este elemento o puede haber varias, siempre que cada una contenga un único valor para el atributo xml:lang. |
<root-XML namespaceURI="namespace" localName=""> | Si un archivo se determina como archivo XML, entonces este elemento ayuda a clasificar futuros archivos a través del uso de los atributos namespaceURI y localName, ambos requeridos. El atributo namespaceURI es el nombre del espacio del documento y localName es el nombre del elemento raíz para el documento. Si localName existe pero su valor está vacío, entonces el elemento raíz puede tener cualquier nombre pero el nombre del espacio debe seguir coincidiendo. |
La forma más fácil de entener destos archivos es echar un vistazo a un ejemplo. Según la especificación MIME compartida XDG, el Ejemplo 5-2 muestra el contenido de un archvo fuente XML llamado diff.xml. Este ejemplo define el tipo MIME text/x-diff. Existen múltiples elementos comment que dan un nombre legible por humanos al tipo MIME en varios idiomas diferentes. Este tipo MIME tiene reglas para coincidencias a través de patrones globales y ««husmeando»» en el contenido del archivo (más conocido como reglas mágicas). Cualquier archivo con la extensión .diffo .patch se resolverá como este tipo MIME. Además, cualquier archivo cuyo contenido comience con las cadenas especificadas en los atributos value del elemento match, se resolverá como tipo MIME text/x-diff.
El orden en el que se aplican los patrones globales y las reglas mágicas está más allá de ámbito de este documento. Para obtener más detalles acerca de esto, consulte la especificación de información MIME compartida XDG.
<?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>