Единый идентификатор типа
Единый идентификатор типа ( UTI ) — это текстовая строка, используемая в программном обеспечении, предоставляемом Apple Inc., для уникальной идентификации данного класса или типа элемента. Apple предоставляет встроенные UTI для идентификации общих системных объектов — типов файлов документов или изображений, папок и пакетов приложений, потоковых данных, данных обрезки, данных фильмов — и позволяет сторонним разработчикам добавлять свои собственные UTI для использования в конкретных приложениях или для использования в собственных целях. Поддержка UTI была добавлена в операционную систему Mac OS X 10.4 , интегрированную в технологию поиска на рабочем столе Spotlight , которая использует UTI для категоризации документов. Одной из основных целей разработки UTI было устранение двусмысленностей и проблем, связанных с определением содержимого файла по его MIME-типу , расширению имени файла или типу или коду создателя . [1]
UTI используют структуру именования обратного DNS . Имена могут включать символы ASCII A–Z, a–z, 0–9, дефис («-») и точку («.), а также все символы Юникода выше U + 007F. [1] Двоеточия и косая черта запрещены для совместимости с соглашениями о пути к файлам Macintosh и POSIX . UTI поддерживают множественное наследование , позволяя идентифицировать файлы с любым количеством соответствующих типов в зависимости от содержащихся данных. ИМП не чувствительны к регистру. [2]
Фон
[ редактировать ]Одной из трудностей в поддержке доступной для пользователя операционной системы является установление связей между типами данных и приложениями или процессами, которые могут эффективно использовать такие данные. Например, файл, содержащий данные изображения в определенном формате сжатия, можно открыть и обработать только в приложениях, способных обрабатывать данные изображения, и эти приложения должны иметь возможность определять, какой тип сжатия использовался для извлечения и работы с данными изображения. эти данные. В ранних компьютерных системах, особенно в DOS , ее вариантах и некоторых версиях Windows , ассоциации файлов поддерживаются расширениями файлов . Код из трех-четырех символов, следующий за именем файла, указывает системе открыть файл в определенных приложениях.
Начиная с Системы 1 , [3] В операционных системах Macintosh файлов прикреплены коды типов и коды создателей к метаданным . Эти четырехсимвольные коды были разработаны для указания как приложения, создавшего файл (код создателя), так и конкретного типа файла (код типа), чтобы другие приложения могли легко открывать и обрабатывать данные файла. Однако, хотя коды типа и создателя расширяли гибкость системы (открытие определенного типа файла не было ограничено в конкретном приложении), они столкнулись со многими из тех же проблем, что и расширения файлов. Коды типа и создателя могли быть потеряны при передаче файлов через системы, отличные от Macintosh (например, серверы на базе Unix), а множество кодов типов затрудняло идентификацию.
Кроме того, классическая Mac OS вообще не распознавала расширения файлов, что приводило к нераспознаваемым ошибкам файлов при переносе файлов из систем DOS/Windows. OPENSTEP , легший в основу Mac OS X, использовал расширения, и ранние версии Mac OS X последовали этому примеру. Это привело к некоторым разногласиям: пользователи и разработчики, перешедшие на OS X из NeXT или Windows, выступали за продолжение использования расширений файлов, а те, кто пришел из классической Mac OS, призывали Apple заменить или дополнить расширения файлов типом и создателями. [4]
Существуют и другие типы идентификации файлов: например, типы MIME используются для идентификации данных, передаваемых через Интернет. Однако система UTI Apple была разработана для создания гибкой системы ассоциации файлов, которая описывала бы данные иерархически, позволяла бы лучше категоризировать и искать, стандартизировать описания данных в разных контекстах и обеспечивать единый метод расширения типов данных. Например, UTI public.jpeg и public.png наследуются от UTI public.image , что позволяет пользователям осуществлять узкий поиск изображений JPEG или изображений PNG или широкий поиск изображений любого типа, просто изменяя специфику UTI, используемого при поиске. . Кроме того, разработчики приложений, разрабатывающие новые типы данных, могут легко расширить доступные UTI. Например, новый формат изображения, разработанный компанией, может иметь UTI com.company.proprietary-image и быть указан для наследования от типа public.image .
от Apple MacOS продолжает поддерживать другие формы ассоциации файлов и содержит утилиты для перевода между ними, но по возможности будет использовать UTI.
Структура ИМП
[ редактировать ]Apple поддерживает public.* как набор базовых типов данных для всех UTI. Другие UTI связаны с этими базовыми UTI посредством соответствия — системы, аналогичной наследованию классов. UTI, которые соответствуют другим UTI, имеют общие базовые типы, и в целом любое приложение, которое работает с данными более общего UTI, должно иметь возможность работать с данными любого UTI, соответствующего этому общему UTI.
Публичные ИМП Apple
[ редактировать ]Наиболее основные общедоступные UTI в иерархии Apple следующие:
Идентификатор | Соответствует | Комментарий |
---|---|---|
public.item | базовый класс в физической иерархии | |
public.content | базовый класс для всего содержимого документа | |
public.data | public.item | базовый класс для всех файлов, потоков байтов, монтажного стола и т. д. |
public.image | публичные.данные, публичный.контент | базовый класс для всех изображений |
UTI даже используются для идентификации других идентификаторов типов файлов:
Идентификатор | Соответствует | Комментарий |
---|---|---|
public.filename-расширение | public.case-insensitivity-text | Расширение имени файла |
public.mime-тип | public.case-insensitivity-text | MIME-тип |
com.apple.ostype | public.text | Четырехзначный код (тип OSType ) |
com.apple.nspboard-тип | public.text | картона NSP Тип |
Динамические UTI могут создаваться приложениями по мере необходимости; у них есть префикс дин. и принять форму «UTI-совместимой оболочки вокруг неизвестного в противном случае расширения имени файла, типа MIME, OSType и т. д.». [1]
Сторонние ИМП
[ редактировать ]Apple предоставляет большую коллекцию объявленных системой унифицированных идентификаторов типов . Сторонние приложения могут добавлять UTI в базу данных, поддерживаемую macOS, «экспортируя» UTI, объявленные в пакете приложения. Поскольку новые UTI могут быть объявлены как «соответствующие» существующим системным UTI, а объявления могут связывать новые UTI с расширениями файлов, экспортированное объявление само по себе может предоставить операционной системе достаточно информации для включения новых функций, таких как включение быстрого поиска новых типы файлов.
Список распространенных ИМП третьих лиц
[ редактировать ]Описание | ИМВП | Расширения | Соответствует | MIME-типы | URL-адрес ссылки |
---|---|---|---|---|---|
ОПМЛ- документ | org.opml.opml | .opml | public.xml | text/xml, text/x-opml, application/xml | http://dev.opml.org/spec2.html |
уценки Документ | net.daringfireball.markdown [5] | .md, .markdown | public.plain-text | text/markdown | https://daringfireball.net/projects/markdown/ |
SQLite База данных | vnd.sqlite3 [6] | .sqlite3, .sqlite, .db | public.database, public.data | application/vnd.sqlite3 | https://www.sqlite.org/fileformat2.html |
Документ путей POSIX | cc.utis.paths-file | .paths | public.utf8-plain-text | не определено | https://github.com/utiscc/DotPathsFileSpec |
Типы картонов | org.nspasteboard.TransientType , org.nspasteboard.ConcealedType , org.nspasteboard.AutoGeneratedType , org.nspasteboard.source | не тип файла | Н/Д | Н/Д | http://nspasteboard.org |
Поиск ИМП
[ редактировать ]Чтобы получить UTI данного файла, используйте команду mdls (список метаданных, часть Spotlight ) в Терминале .
mdls -name kMDItemContentType -name kMDItemContentTypeTree -name kMDItemKind FILE
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Обзор унифицированных идентификаторов типов» . Руководства и пример кода . Apple Inc. , 29 октября 2007 г. Проверено 12 сентября 2016 г.
- ^ «Унифицированные идентификаторы типов — повторное введение — Tech Talks — Видео» . Разработчик Apple . Проверено 17 мая 2022 г.
- ^ «Folklore.org: Модель Великого Объединения (2) – Искатель» . www.folklore.org . Проверено 12 апреля 2018 г.
- ^ «Рекомендации по расширению имени файла в Mac OS X 10.1 — Cocoabuilder» . www.cocoabuilder.com . Проверено 12 апреля 2018 г.
- ^ «Единый идентификатор типа для уценки» . Дерзкий огненный шар . Проверено 21 августа 2019 г.
- ^ «Тип носителя формата файла базы данных SQLite в IANA» . Управление по присвоению номеров в Интернете . ИАНА . Проверено 21 августа 2019 г.