Uniform Type Identifier
# Uniform Type Identifier

Un Uniform Type Identifier (UTI, siglas en inglés de Identificador uniforme de tipos) es una cadena de texto usada en el software de Apple Inc. para identificar de manera única un tipo de archivo. Apple provee UTIs predefinidas para identificar objetos del sistema comunes – documentos o archivos de imagen, carpetas y archivos ejecutables, datos en streaming, videos – y permite a los desarrolladores añadir sus propios UTIs para sus aplicaciones. El soporte para las UTIS fue añadido en Mac OS X 10.4, integrado en la tecnología del escritorio Spotlight, el cual usa UTIs para categorizar documentos. Una de las metas primarias del diseño de los UTIs es la de eliminar las ambigüedades y problemas asociados de saber el tipo de contenido de un archivo desde su MIME type, extensión de archivo, o tipo de creación.

Las UTIs usan una estructura de nombres DNS inversa. Los nombres pueden incluir caracteres ASCII A-Z, a-z, 0-9, guion ("-"), y punto ("."), y todos los caracteres Unicode abajo de U+007F. Los dos puntos y diagonales son prohibidas para mantener compatibilidad con Macintosh y las convenciones de rutas de archivos de POSIX. Las UTIs soportan múltiples herencias, permitiendo a los archivos ser identificados con cualquier número de tipos, como sean apropiados para el tipo de contenido.

## Estructura de una UTI

Apple reserva el dominio public.* como un conjunto base de tipos de datos para todas las UTIs. Otras UTIs son asociadas con estas UTIs base en conformidad, un sistema similar para clasificar la herencia. Las UTIs que conforman otras UTIs comparten unos tipos básicos, y en general cualquier aplicación que trabaje con datos de una UTI más general debería permitir trabajar con datos de cualquier UTI que conforman esa UTI general.

### UTIs públicas de Apple

Las UTIs públicas más generales en la jerarquía de Apple son las siguientes:

| Identificador | Conforma a | Descripción |
| - | - | - |
| public.item | | Clase base en la jerarquía física |
| public.content | | Clase base para todos los documentos |
| public.data | public.item | Clase base para todos los archivos, flujos de bytes, etc. |
| public.image | public.data, public.content | Clase base para todas las imágenes |

Las UTIs son usadas en ocasiones para identificar otros identificadores de tipos de archivos:

| Identificador | Conforma a | Descripción |
| - | - | - |
| public.filename-extension | public.case-insensitive-text | Extensión de archivo |
| public.mime-type | public.case-insensitive-text | MIME type |
| com.apple.ostype | public.text | Código de cuatro caracteres (OSType) |
| com.apple.nspboard-type | public.text | NSPasteboard |

Las UTIs dinámicas pueden ser creadas en necesidad de las aplicaciones; estas tienen el prefijo dyn. y toman la forma de "una UTI compatible que encapsula a una extensión de archivo, MIME type, OSType, o cualquier cosa desconocida."

## UTIs de terceros

Apple provee una colección larga de UTIs oficiales predeterminadas. Las aplicaciones de terceros pueden añadir UTIs a la base de datos mantenida por Mac OS X "exportando" UTIs declaradas en el paquete de la aplicación. Ya que las nuevas UTIs pueden ser declaradas "conformes a" UTIs del sistema ya existenes, y las declaraciones pueden asociar nuevas UTIs con extensiones de archivo, una declaración exportada sola puede proveer al sistema operativo suficiente información para habilitar nuevas funcionalidades, como habilitar Quick Look para nuevos tipos de archivo.

## Buscar una UTI

Para obtener la UTI de un archivo dado, usa el comando Mdls (meta data list, parte de Spotlight) en la Terminal.

