The Info List - Uniform Type Identifier

--- Advertisement ---

A Uniform Type Identifier
Uniform Type Identifier
(UTI) is a text string used on software provided by Apple Inc.
Apple Inc.
to uniquely identify a given class or type of item. Apple provides built-in UTIs to identify common system objects – document or image file types, folders and application bundles, streaming data, clipping data, movie data – and allows third party developers to add their own UTIs for application-specific or proprietary uses. Support for UTIs was added in the Mac OS X
Mac OS X
10.4 operating system, integrated into the Spotlight desktop search technology, which uses UTIs to categorize documents. One of the primary design goals of UTIs was to eliminate the ambiguities and problems associated with inferring a file's content from its MIME type, filename extension, or type or creator code.[1] UTIs use a reverse-DNS naming structure. Names may include the ASCII characters A-Z, a-z, 0-9, hyphen ("-"), and period ("."), and all Unicode
characters above U+007F.[1] Colons and slashes are prohibited for compatibility with Macintosh
and POSIX file path conventions. UTIs support multiple inheritance, allowing files to be identified with any number of relevant types, as appropriate to the contained data.


1 Background 2 UTI structure

2.1 Apple public UTIs

3 Third-party UTIs 4 Looking up a UTI 5 References

Background[edit] One of the difficulties in maintaining a user-accessible operating system is establishing connections between data types and the applications or processes that can effectively use such data. For example, a file that contains picture data in a particular compression format can only be opened and processed in applications that are capable of handling picture data, and those applications must be able to identify which compression type was used in order to extract and work with that data. In early computer systems – particularly DOS, its variants, and some versions of Windows
– file associations are maintained by file extensions. The three to four character code following a file name instructs the system to open the file in particular applications. Beginning with System 1,[2] Macintosh
operating systems have attached type codes and creator codes as part of the file metadata. These four-character codes were designed to specify both the application that created the file (the creator code) and the specific type of the file (the type code) so that other applications could easily open and process the file data. However, while type and creator codes extended the flexibility of the system — a particular type of file was not restricted to opening in a particular application — they suffered many of the same problems as file extensions. Type and creator codes could be lost when files were transferred across non- Macintosh
systems (such as Unix-based servers), and the plethora of type codes made identification problematic. In addition, the classic Mac OS did not recognize file extensions at all, leading to unrecognized file errors when files were transferred from DOS/ Windows
systems. OPENSTEP, which formed the basis of Mac OS X, used extensions, and early versions of Mac OS X
Mac OS X
followed suit. This led to some controversy with users and developers coming to OS X from NeXT or Windows
origins advocating for continued use of file extensions, and those coming from Classic Mac OS urging Apple to replace or supplement file extensions with type and creators.[3] Other file identification types exist: for example, MIME types are used for identifying data that is transferred over the web. However, Apple's UTI system was designed to create a flexible file association system that would describe data hierarchically and allow for better categorization and searching, standardize data descriptions across contexts, and provide a uniform method of expanding data types. For instance, the public.jpeg and public.png UTIs inherit from the public.image UTI, allowing users to search narrowly for JPEG images or PNG images or broadly for any kind of image merely by changing the specificity of the UTI used in the search. Further, application developers who design new data types can easily extend the UTIs available. For example, a new image format developed by a company may have a UTI of com.company.proprietary-image and be specified to inherit from the public.image type. Apple's macOS continues to support other forms of file association, and contains utilities for translating between them, but will use UTIs by preference where available. UTI structure[edit] Apple maintains the public.* domain as a set base data types for all UTIs. Other UTIs are associated with these base UTIs by conformance, a system similar to class inheritance. UTIs that conform to other UTIs share a basic types, and in general any application that works with data of a more general UTI should be able to work with data of any UTI that conforms to that general UTI. Apple public UTIs[edit] The most basic public UTIs in the Apple hierarchy are as follows:

Identifier Conforms to Comment


base class in the physical hierarchy


base class for all document content

public.data public.item base class for all files, byte streams, pasteboard, etc.

public.image public.data, public.content base class for all images

UTIs are even used to identify other file type identifiers:

Identifier Conforms to Comment

public.filename-extension public.case-insensitive-text Filename extension

public.mime-type public.case-insensitive-text MIME type

com.apple.ostype public.text Four-character code (type OSType)

com.apple.nspboard-type public.text NSPasteboard type

Dynamic UTIs can be created as needed by applications; these have the prefix dyn. and take the form of "a UTI-compatible wrapper around an otherwise unknown filename extension, MIME type, OSType, and so on."[1] Third-party UTIs[edit] Apple provides a large collection of system-declared Uniform Type Identifiers. Third-party applications can add UTIs to the database maintained by macOS by "exporting" UTIs declared within the application package. Because new UTIs can be declared to "conform to" existing system UTIs, and declarations can associate the new UTIs with file extensions, an exported declaration alone can provide the operating system with enough information to enable new functions, such as enabling Quick Look
Quick Look
for new file types. Looking up a UTI[edit] To get the UTI of a given file, use the mdls (meta data list, part of Spotlight) command in the Terminal. References[edit]

^ a b c "Uniform Type Identifiers Overview". Guides and Sample Code. Apple Inc.
Apple Inc.
October 29, 2007. Retrieved September 12, 2016.  ^ http://www.folklore.org/StoryView.py?project=Macintosh&story=The_Grand_Unified_Model_The_Finder.txt ^ http://www.cocoabuilder.com/archive/cocoa/38552-mac-os-10-1-file-name-extension-guidelines.html

v t e


History Architecture Components Technologies Server Software


Server 1.0 Hera Public Beta Kodiak 10.0 Cheetah 10.1 Puma 10.2 Jaguar 10.3 Panther 10.4 Tiger 10.5 Leopard 10.6 Snow Leopard 10.7 Lion 10.8 Mountain Lion 10.9 Mavericks 10.10 Yosemite 10.11 El Capitan 10.12 Sierra 10.13 High Sierra


Automator Calculator Calendar Chess Contacts Dashboard Dictionary DVD Player FaceTime Finder Game Center Grapher iTunes (version history) Launchpad Mac App Store Mail Messages Notes Notification Center Photo Booth Photos Preview QuickTime Reminders Safari (version history) Stickies TextEdit Time Machine


Front Row iChat iPhoto iSync Sherlock


Activity Monitor AirPort Utility AppleScript
Editor Archive Utility Audio MIDI Setup Bluetooth File
Exchange Boot Camp ColorSync Configurator Console Crash Reporter DigitalColor Meter Directory Utility DiskImageMounter Disk Utility Font Book Grab Help Viewer Image Capture Installer Keychain Access Migration Assistant Network Utility ODBC Administrator Screen Sharing System Preferences System Information Terminal Universal Access VoiceOver


Software Update Remote Install Mac OS X

Technology and user interface

AirDrop Apple File
System Apple menu Apple Push Notification Service AppleScript Aqua Audio Units Bonjour CloudKit Cocoa ColorSync Command key Core Animation Core Audio Core Data Core Foundation Core Image Core OpenGL Core Text Core Video CUPS Cover Flow Darwin Dock FileVault Fonts Gatekeeper Grand Central Dispatch icns iCloud Inkwell I/O Kit Kernel panic Keychain launchd Mach-O Menu extra Metal Mission Control OpenCL Option key Preference Pane Property list Quartz QuickTime Quick Look Smart Folders Speakable items Spotlight Stacks System Integrity Protection Uniform Type Identifier Universal binary WebKit XNU XQuartz


Carbon HFS+


BootX Brushed metal Classic Environment Ro