







 
|
Uniform
Type Identifier
Reference document for: com.dekorr.eazydraw.graphic and
com.dekorra.eazydraw.binary file types
Scroll to end of
this page for summary:
If you understand the UTI technology, scroll to the
end of this page for the specification chart for
EazyDraw's two file types.
File Typing a Brief History:
File typing has been a problem for software
developers and users since the first box of punch cards
had a name scribbled across it's top. The Classic Mac OS
used two 32-bit integers, usually expressed as
four-character codes to identify a type and creator
code. While this naming space or set of addresses filled
up over a decade or so, other operating systems used a
less defined convention of identifying a type with a dot
and three letter extension. In 2001 Apple took a "Next
Step" and changed from type and creator to dot/extension
with the expansion from 3 letters to unlimited number of
letters. The transition necessitated by co-existence of
the Classic OS 9 and OS X as well as Carbon, Cocoa, and
even Unix heritage applications caused a great deal of
confusion for developers and users. This prevented
a smooth and uniform adoption of extended extension
typing. The primary reason for adopting file name
extensions as stated by Mr Jobs at the 2001 developer's
conference was because the other operating systems used
the approach. That apparently didn't work out.
Over this same period a system called MIME types have
been used primarily for MIME-encapsulate or tagged data
for Safari and Mail. This system is partially supported
by OS X and info.plist for application bundles. But
extended MIME attributes were needed to properly use
this convention for typing and application bundles did
not support the information. MIME is really a
non-starter for file format typing and was not really
adopted in the OS X environment.
Now, with a little less fan-fare, Apple OS X is moving
to a more "thought out" typing solution, called Uniform
Type Identifiers (UTI - but don't google just UTI as
that will take you to your Urologist's home page). As of
OS X version 10.4 UTI's seem to take preference for most
Finder decisions and they are core to the Spotlight
technology. This page is EazyDraw's developer's (and
power user's) reference for the Universal Type
Identifiers used by EazyDraw.
Uniform Type Identifiers
The broad definition of a UTI is a system to "uniquely
identify a class of entities considered to have a type".
This the "broad" definition. We are interested primarily
in file formats or data on the OS X system pasteboard.
As technology evolves this system will likely expand to
other identifiably typed entities such as disk volumes,
folders, and symbolic links.
UTIs are designed to go beyond the limitations of name
extensions and type / creator codes. They are unique,
using a simple system based on registered internet
domain names. UTIs have no restriction on length,
lifting confusion of 3 letter conflicts and if desired
they can be human readable and translated to provide
readable clarity in several languages. They are
Extensible, a well defined system is provided for adding
new types and extending or collapsing a definition
scope. A clear hierarchy can be used to define new types
as sub-types of other defined types. And all this can be
accomplished safely with or without the blessing or
registration of an organizing body or controlling
corporate interests such as Adobe domain over the pdf
format.
Ground Rules
A UTI is a text string that can contain numbers,
letters, hyphens, and periods, plus any Unicode
characters above the ASCII range. Standard types have a
"public." prefix. In our world only Apple can define the
"public." identifiers. Some that they have specified
are: "public.data" (top/root of the tree), "public.text",
"public.image" etc. See the diagram below to better
understand the relationships.
A unique name for a file type is constructed by
reversing a registered domain name. For EazyDraw this
involves our historic corporate identity "Dekorra
Optics, LLC" which leads to the designation "com.dekorra.eazydraw.xxxx"
for EazyDraw file types. We have two formats the human
readable format which is a pList and a more compact
binary format. This leads to the UTI's which we define:
"com.dekorra.eazydraw.graphic" and "com.dekorra.eazydraw.binary".
These two types are registered with OS X and the Finder
by appropriate entries in the EazyDraw application
bundle, info.plist file. The following diagram presents
shows this information in graphic form.


|
|
|
What is a UTI
A UTI is a typing system that allows OS X
and other applications to associate a data file with a supporting,
creating application.
Type and Creator?
EazyDraw files are saved with Type and
Creator codes. Our creator code is "dkra" and the type code for the
EazyDraw graphic format is "ezdw". The type code for the EazyDraw
binary format is "ezdt".
File extensions?
EazyDraw graphic format files are saved
with the file extension ".ezdraw".
EazyDraw binary format files are saved with the extension ".ezddata"
|
Developer Notes
Type and Creator identifiers are used
primarily by Carbon applications that have been ported from the Classic
environment to OS X. While Apple's guidelines assert these are not
necessary, this is not always true. With Panther and Tiger the OS
maintains these identifiers.
UTI's required?
With OS X version 10.4 it is becoming
more important that UTI information is provided with the application
bundle. The information is used by the Finder and required for
Spotlight.
|
 |