Универсальный идентификатор типа

редактировать

A Универсальный идентификатор типа (UTI ) - это текстовая строка, используемая в программном обеспечении, предоставляемом Apple Inc., чтобы однозначно идентифицировать данный класс или тип элемента. Apple предоставляет встроенные UTI для идентификации общих системных объектов - типов файлов документов или изображений, папок и пакетов приложений, потоковых данных, данных вырезки, данных фильмов - и позволяет сторонним разработчикам добавлять свои собственные UTI для конкретных приложений или собственных нужд. Поддержка UTI была добавлена ​​в операционную систему Mac OS X 10.4, интегрированную в технологию поиска на рабочем столе Spotlight, которая использует UTI для категоризации документов. Одной из основных целей разработки UTI было устранение двусмысленности и проблем, связанных с выводом содержимого файла из его типа MIME, расширения имени файла или типа или код создателя.

UTI использует структуру именования обратного DNS. Имена могут включать символы ASCII A – Z, a – z, 0–9, дефис («-») и точку («.»), А также все указанные выше символы Unicode. U + 007F. Двоеточие и косая черта запрещены для совместимости с Macintosh и соглашениями о путях к файлам POSIX. UTI поддерживают множественное наследование, позволяя идентифицировать файлы с любым количеством релевантных типов в зависимости от содержащихся данных.

Содержание
  • 1 Предпосылки
  • 2 Структура UTI
    • 2.1 Общедоступные UTI Apple
  • 3 Сторонние UTI
    • 3.1 Список общих сторонних UTI
  • 4 Поиск UTI
  • 5 Ссылки
Предпосылки

Одной из трудностей при поддержании доступной для пользователя операционной системы является установление соединений между типами данных и приложениями или процессами, которые могут эффективно использовать такие данные. Например, файл, содержащий данные изображения в определенном формате сжатия, может быть открыт и обработан только в приложениях, способных обрабатывать данные изображения, и эти приложения должны иметь возможность определять, какой тип сжатия был использован для извлечения и работы с эти данные. В ранних компьютерных системах - особенно DOS, его вариантах и ​​некоторых версиях Windows - ассоциации файлов поддерживаются с помощью расширений файлов. Код из трех-четырех символов, следующий за именем файла, дает указание системе открыть файл в определенных приложениях.

Начиная с Системы 1, операционные системы Macintosh прикрепили коды типов и коды создателей как часть файла. метаданные. Эти четырехсимвольные коды были разработаны, чтобы указать как приложение, создавшее файл (код создателя), так и конкретный тип файла (код типа), чтобы другие приложения могли легко открывать и обрабатывать данные файла. Однако, хотя коды типов и создателей расширяли гибкость системы - определенный тип файлов не ограничивался открытием в конкретном приложении - они страдали от многих из тех же проблем, что и расширения файлов. Коды типов и создателей могли быть потеряны при передаче файлов через системы, отличные от Macintosh (например, серверы на базе Unix), а множество кодов типов делало идентификацию проблематичной.

Кроме того, классическая Mac OS вообще не распознавала расширения файлов, что приводило к нераспознанным файловым ошибкам при передаче файлов из систем DOS / Windows. OPENSTEP, который лег в основу Mac OS X, использовал расширения, и ранние версии Mac OS X последовали его примеру. Это вызвало разногласия с пользователями и разработчиками, пришедшими в OS X из NeXT или Windows, выступающими за продолжение использования расширений файлов, и теми, кто пришел из классической Mac OS, призывая Apple заменить или дополнить расширения файлов типом и создателями.

Существуют и другие типы идентификации файлов: например, типы MIME используются для идентификации данных, которые передаются через Интернет. Однако система UTI от Apple была разработана для создания гибкой системы ассоциации файлов, которая описывала бы данные иерархически и позволяла бы улучшить категоризацию и поиск, стандартизировать описания данных в контексте и предоставить единый метод расширения типов данных. Например, UTI public.jpeg и public.png наследуются от UTI public.image, позволяя пользователям выполнять узкий поиск изображений JPEG или изображений PNG или в целом любого изображения, просто изменяя специфику UTI, используемого при поиске.. Кроме того, разработчики приложений, разрабатывающие новые типы данных, могут легко расширить доступные UTI. Например, новый формат изображения, разработанный компанией, может иметь UTI com.company.private-image и быть указан для наследования от типа public.image.

Apple macOS продолжает поддерживать другие формы ассоциации файлов и содержит утилиты для перевода между ними, но будет использовать UTI по ​​желанию, где они доступны.

Структура UTI

Apple поддерживает домен public. * Как набор базовых типов данных для всех UTI. Другие UTI связаны с этими базовыми UTI посредством соответствия, системы, аналогичной наследованию классов. UTI, которые соответствуют другим UTI, имеют общие базовые типы, и в целом любое приложение, которое работает с данными более общего UTI, должно иметь возможность работать с данными любого UTI, который соответствует этому общему UTI.

Общедоступные UTI Apple

Самыми основными общедоступными UTI в иерархии Apple являются следующие:

ИдентификаторСоответствуетКомментарий
public.itemбазовый класс в физической иерархии
public.contentбазовый класс для всего содержимого документа
public.datapublic.itemбазовый класс для всех файлов, байтовых потоков, картона и т. д.
public.imagepublic.data, public.contentбазовый класс для всех изображений

UTI даже используются для идентификации идентификаторы других типов файлов:

ИдентификаторСоответствуетКомментарий
public.filename-extensionpublic.case -less-textFilename extension
public.mime-typepublic.case-нечувствительный-текстMIME-тип
com.apple.ostypepublic.textЧетыре -символьный код (тип OSType )
com.apple.nspboard-typepublic.textтип

Динамические UTI могут быть созданы по мере необходимости приложениями; они имеют префикс дин. и возьмите f или "UTI-совместимой оболочки вокруг неизвестного в противном случае расширения имени файла, типа MIME, OSType и т. д."

Сторонние UTI

Apple предоставляет большую коллекцию объявленные системой унифицированные идентификаторы типа. Сторонние приложения могут добавлять UTI в базу данных, поддерживаемую macOS, «экспортируя» UTI, объявленные в пакете приложения. Поскольку новые UTI могут быть объявлены как «соответствующие» существующим системным UTI, а объявления могут связывать новые UTI с расширениями файлов, экспортированное объявление само по себе может предоставить операционной системе достаточно информации для включения новых функций, таких как включение Quick Ищите новые типы файлов.

Список общих сторонних UTI

ОписаниеUTIExtensionsСоответствуеттипам MIMEСсылочный URL
OPML документorg.opml.opml.opmlpublic.xmlтекст / xml, текст / x-opml, приложение / xmlhttp://dev.opml.org/spec2.html
Markdown документnet.daringfireball.markdown.md,.markdownpublic.plain-textтекст /markdownhttp://daringfireball.net/projects/markdown/
SQLite база данныхvnd.sqlite3.sqlite3,.sqlite,.dbpublic.database, общедоступная.dataapplication / vnd.sqlite3https://www.sqlite.org/fileformat2.html

.

Поиск UTI

Чтобы получить UTI данного файла, используйте mdls (список метаданных, часть Spotlight ) команда в Терминале.

mdls -name kMDItemContentType -name kMDItemContentTypeTree -name kMDItemKind FILE

Ссылки
Последняя правка сделана 2021-06-20 11:05:21
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте