stringtranslate.com

Открытые конвенции по упаковке

Open Packaging Conventions (OPC) — это технология контейнерных файлов, изначально созданная Microsoft для хранения комбинации XML- и не-XML-файлов, которые вместе образуют единую сущность, такую ​​как документ Open XML Paper Specification (OpenXPS). Форматы файлов на основе OPC сочетают в себе преимущества сохранения независимых файловых сущностей, встроенных в документ, нетронутыми, что приводит к гораздо меньшим файлам по сравнению с обычным использованием XML. [ dubiousdiscussion ]

Технические характеристики

OPC определен в Части 2 стандартов Office Open XML ISO / IEC 29500:2008 и ECMA -376 . [1] [2]

Спецификация ISO/IEC 29500-2:2008 и второе издание ECMA-376 делают нормативную ссылку на спецификацию формата файла .ZIP версии 6.2.0 (2004) компании PKWARE, Inc. и дополняют ее нормативным набором разъяснений. Примечание: более раннее первое издание ECMA-376 делает информационную ( т. е . ненормативную) ссылку на более новую версию 6.2.1 (2005) компании PKWARE Inc. "Спецификация формата файла .ZIP". [1] Формат ZIP не определен каким-либо международным стандартом, но широко принят сообществом и разработчиками.

Microsoft представила проект в 2006 году в Internet Engineering Task Force для схемы URI "pack" ( pack://), которая будет использоваться для ссылок URI на пакеты на основе OPC. Срок действия проекта истек в 2009 году, указанный синтаксис несовместим со стандартом Интернета для схем URI (STD 66, RFC 3986). [3] В настоящее время схема указана как историческая . [4]

Стандарт ISO 19165:1-2018 рекомендует использовать открытые соглашения по упаковке для внедрения геопространственного пакета, определенного в открытой архивной информационной системе .

Использование

И XML Paper Specification (XPS) [5] , и Office Open XML (OOXML) используют Open Packaging Conventions (OPC), которые предоставляют профиль общего формата ZIP . В дополнение к данным и содержимому документа в разметке XML, файлы в пакете ZIP могут включать другие текстовые и двоичные файлы в таких форматах, как PNG , BMP , AVI , PDF , RTF или даже уже упакованный файл ODF . OPC также определяет некоторые соглашения об именовании и метод косвенности, чтобы обеспечить независимость положения двоичных и XML-файлов в архиве ZIP.

Файлы OPC можно открыть с помощью обычных утилит ZIP. OPC допускает косвенность, фрагментацию и относительную косвенность. [6]

Форматы файлов с использованием OPC

OPC является базовой технологией для многих новых форматов файлов: [7]

Программирование

OPC изначально поддерживается в Microsoft .NET Framework 3.0 пространством имен System.IO.Packaging . Для других языков существуют библиотеки с открытым исходным кодом.

Начиная с Windows 7 , OPC также изначально поддерживается в Windows API через набор COM- интерфейсов, которые в совокупности называются Packaging API.

В качестве альтернативы для создания и открытия OPC-файлов можно использовать библиотеки ZIP, при условии, что в ZIP-архив включены нужные файлы и соблюдены соглашения.

Упаковка, части и отношения

Структура контейнера Части 2 стандарта Ecma Office Open XML, ECMA-376

В терминологии OPC термин «пакет» соответствует архиву ZIP, а термин « часть» соответствует файлу, хранящемуся в ZIP. Каждая часть в пакете имеет уникальное имя части, совместимое с URI, вместе с указанным типом содержимого, выраженным в форме типа носителя MIME . Тип содержимого части явно определяет тип данных, хранящихся в части, и уменьшает проблемы дублирования и неоднозначности, присущие расширениям файлов .

Пакеты OPC также могут включать отношения , которые определяют ассоциации между пакетом, частями и внешними ресурсами. В дополнение к иерархии каталогов и частей пакеты OPC обычно используют отношения для доступа к контенту через направленный граф ассоциаций отношений. Отношения состоят из четырех элементов:

  • идентификатор (ID)
  • необязательный источник (пакет или часть внутри пакета)
  • тип отношения (выражение в стиле URI, определяющее тип отношения)
  • цель ( URI другой части пакета или внешнего ресурса)

Пакеты OPC могут хранить части, содержащие любые типы данных (текст, изображения, XML, двоичные данные и т. д.). Однако расширение ".rels" зарезервировано для хранения метаданных связей в подпапках "/_rels". Имя подпапки "_rels", расширение файла ".rels" в таком каталоге и имя файла "[Content_Types].xml" в любой папке являются единственными тремя зарезервированными именами для файлов, хранящихся в пакете OPC.

/[Content_Types].xml файл
Этот файл определяет типы MIME- носителей для всех частей, хранящихся в пакете. Файл "/[Content_Types].xml" определяет сопоставления по умолчанию на основе расширений файлов, а также переопределения для определенных частей с типами содержимого, которые отличаются от расширений файлов по умолчанию. Например, один из этих определенных типов MIME:
< Расширение по умолчанию = "rels" Тип содержимого = "application/vnd.openxmlformats-package.relationships+xml" />  
/_rels
Папка корневого уровня "/_rels" хранит связи для пакета в целом. Папка "/_rels" обычно содержит файл с именем ".rels". "/_rels/.rels" — это XML-файл, в котором хранятся начальные связи на уровне пакета . Обычно при открытии файла на основе OPC приложения начинают с доступа к файлу "/_rels/.rels" для чтения начальных связей на уровне пакета.
[имя_части] .rels
Каждая часть может иметь свои собственные связи. Папки _rels — это то место, куда можно перейти, чтобы найти связи для любой заданной части в пакете. Чтобы найти связи для определенной части, нужно заглянуть в папку "_rels", которая является родственной этой части: Если у части есть связи, папка "_rels" будет содержать файл с исходным именем части с добавленным к нему ".rels". Например, если файл части типов содержимого имел какие-либо связи, внутри папки "/_rels" будет файл с именем "[Content_Types].xml.rels".

Все отношения (включая отношения, связанные с корневым пакетом) представлены в виде XML-файлов. Если вы откроете файл ".rels" в текстовом редакторе, вы сможете увидеть фактическую XML-разметку, которая определяет все отношения, на которые нацелена эта часть. Типичный файл отношений содержит XML-код, подобный следующему:

<Связи xmlns= "http://schemas.openxmlformats.org/package/2006/relationships" > <Идентификатор связи = "R0" Тип= "http://schemas.microsoft.com/xps/2005/06/fixedrepresentation" Цель= "/FixedDocumentSequence.fdseq" /> <Идентификатор связи = "R1" Тип= "http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail" Цель= "/Documents/1/Metadata/Page1_Thumbnail.JPG" /> </Связи >         

который определяет два отношения для корневого пакета, первое из которых рассматривается как корневой пакет (здесь для раннего документа Microsoft XPS , до того, как он был стандартизирован как спецификация Open XML Paper в коллекции openxmlformats), а другое используется для ссылки на альтернативную форму (здесь — миниатюрное изображение первой страницы документа).

Основные части встроенных документов часто хранятся в папке с именем «/Document» (которая может содержать подкаталоги, если файл содержит несколько связанных документов, каждый из которых имеет различные части), а необязательные части метаданных, которые не нужны для обработки основных частей документа, хранятся в папке с именем «/Metadata»; однако эти фактические имена папок фактически указаны в данных в формате XML в файлах связей « [partname] .rels», а спецификация OPC допускает любую организацию папок, удобную для приложения, и эти два имени папок не являются обязательными.

Разделение на части

Он поощряет разбиение документов на небольшие фрагменты. Это лучше для снижения эффекта повреждения файлов. [21] И лучше для доступа к данным: например, вся информация о стиле в одной части XML, каждый отдельный рабочий лист или таблица в своих собственных различных частях. Это обеспечивает более быстрый доступ и меньшее создание объектов для клиентов и упрощает работу нескольких процессов над одним и тем же документом.

Относительная косвенность

В Open Packaging Conventions каждый файл, имеющий ссылку, имеет свой собственный файл _rels со списками косвенности. Это упрощает копирование и вставку некоторой информации со всеми связанными с ней ресурсами в некоторых случаях, обеспечивает область действия имени, чтобы исключить вероятность конфликта имен между файлами и т. д.

Ссылки

  1. ^ ab ISO/IEC 29500-2:2008 - Информационные технологии - Языки описания и обработки документов - Форматы файлов Office Open XML - Часть 2: Открытые соглашения по упаковке, ISO
  2. ^ Ecma International TC45 (декабрь 2006 г.). "Стандартные форматы файлов Office Open XML ECMA-376". Ecma International . Получено 04.04.2007 .{{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
  3. ^ "Статус пакета: исторический". IANA . 2011-10-04 . Получено 2013-05-12 .
  4. ^ "Схемы унифицированных идентификаторов ресурсов (URI)". Реестры протоколов . IANA . Получено 12.05.2013 . {{cite web}}: Внешняя ссылка в |work=( помощь )
  5. ^ Команда XPS (01.09.2006). "Open Packaging Conventions & Open XML Markup Compatibility". Блог команды XPS . Получено 04.04.2007 .
  6. ^ Рик Джелифф (29 июля 2007 г.). «Комментарий к статье Может ли файл быть ODF и Open XML одновременно?». Блоги O'Reilly net XML.
  7. ^ Приключения в упаковке - Эпизод 1, 18 мая 2009 г., Джек Дэвис, Блог команды Microsoft Packaging: Открытые конвенции по упаковке
  8. ^ "Архивная копия" (PDF) . Архивировано из оригинала (PDF) 2016-08-07 . Получено 2016-05-26 .{{cite web}}: CS1 maint: архивная копия как заголовок ( ссылка )
  9. ^ "Что такое файл AutoCAD DWF | DWG в DGN". Архивировано из оригинала 2014-09-03 . Получено 2014-08-30 .
  10. ^ "Формат файла CDDX - Принципиальная схема". www.circuit-diagram.org .
  11. ^ "Архив CodePlex". Архив CodePlex .
  12. ^ "Технологии - FDI-Cooperation". www.fdi-cooperation.com . Архивировано из оригинала 2014-09-19.
  13. ^ "IEC 62769-4:2015 | Интернет-магазин IEC". webstore.iec.ch .
  14. ^ «Инструменты разработчика, техническая документация и примеры кодирования».
  15. ^ «Пакеты приложений и развертывание (приложения Windows Runtime) — разработка приложений Windows». 6 октября 2015 г.
  16. Уоррен, Том (11 февраля 2014 г.). «Windows Phone 8.1 включает универсальные приложения и множество обновлений функций». The Verge .
  17. ^ "Content Moved (Windows)". Архивировано из оригинала 2016-10-18 . Получено 2015-01-26 .
  18. ^ Подробная информация о Asset Administration Shell - Часть 1
  19. ^ "Формат файла SpaceClaim". 2013-05-06. Архивировано из оригинала 2013-09-15 . Получено 2017-08-14 .
  20. ^ "Поле DataFormats.XamlPackage (System.Windows)".
  21. ^ «Использование OPC для хранения собственных данных: Страница 3». www.devx.com .

Внешние ссылки