Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Технические характеристики [ править ]

OPC указано в части 2 Office Open XML стандартов ISO / IEC 29500: 2008 и ECMA -376 . [1] [2]

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

В 2006 году Microsoft представила в Инженерную рабочую группу Интернета черновик «пакетной» схемы URI ( 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 .

В качестве альтернативы можно использовать библиотеки ZIP для создания и открытия файлов OPC, если в 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_Typespting.xml файл
Этот файл определяет типы мультимедиа MIME для всех частей, хранящихся в пакете. В файле «/[Content_Typespting.xml» определены сопоставления по умолчанию на основе расширений файлов, а также переопределения для определенных частей с типами содержимого, которые отличаются от значений по умолчанию для расширений файлов. Например, один из этих определенных типов MIME:
<  Расширение по умолчанию = "rels" ContentType  = "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-код:

<Relationships  xmlns = "http://schemas.openxmlformats.org/package/2006/relationships" >  <Relationship  Id = "R0"  Type = "http://schemas.microsoft.com/xps/2005/06/fixedpresentation"  Target = "/FixedDocumentSequence.fdseq" />  <Relationship  Id = "R1"  Type = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail"  Target = "/ Documents / 1 / Metadata / Page1_Thumbnail.JPG " /> </Relationships>

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

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

Разделение на части [ править ]

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

Относительное косвенное обращение [ править ]

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

Ссылки [ править ]

  1. ^ a b ИСО / МЭК 29500-2: 2008 - Информационные технологии - Описание документов и языки обработки - Форматы файлов Office Open XML - Часть 2: Соглашения об открытой упаковке , ISO
  2. ^ Ecma International TC45 (декабрь 2006 г.). «Стандартные форматы файлов Office Open XML ECMA-376» . Ecma International . Проверено 4 апреля 2007 .
  3. ^ "Статус пакета: исторический" . IANA . 2011-10-04 . Проверено 12 мая 2013 .
  4. ^ «Схемы универсального идентификатора ресурса (URI)» . Реестры протоколов . IANA . Проверено 12 мая 2013 . Внешняя ссылка в |work=( помощь )
  5. ^ Команда XPS (01.09.2006). «Соглашения об открытых упаковках и совместимость разметки Open XML» . Блог команды XPS . Проверено 4 апреля 2007 .
  6. ^ Рик Джелифф (2007-07-29). "Комментарий. Может ли файл быть одновременно ODF и Open XML?" . O'Reilly чистые XML-блоги.
  7. ^ Приключения в упаковке - Эпизод 1 , 18 мая 2009 г., Джек Дэвис, Блог группы разработчиков Microsoft Packaging: Open Packaging Conventions
  8. ^ http://3mf.io/wp-content/uploads/2016/03/3MFcoreSpec_1.1.pdf
  9. ^ "Архивная копия" . Архивировано из оригинала на 2014-09-03 . Проверено 30 августа 2014 .CS1 maint: archived copy as title (link)
  10. ^ «Формат файла CDDX - Принципиальная схема» . www.circuit-diagram.org .
  11. ^ "Архив CodePlex" . Архив CodePlex .
  12. ^ http://www.fdi-cooperation.com/technology.html
  13. ^ «IEC 62769-4: 2015 | Интернет-магазин IEC» . webstore.iec.ch .
  14. ^ https://msdn.microsoft.com/en-us/library/office/jj228622%28v=office.15%29.aspx
  15. ^ https://msdn.microsoft.com/en-us/library/windows/apps/hh464929(v=VS.85).aspx
  16. Уоррен, Том (11 февраля 2014 г.). «Windows Phone 8.1 включает универсальные приложения и множество обновлений функций» . Грань .
  17. ^ "Архивная копия" . Архивировано из оригинала на 2016-10-18 . Проверено 26 января 2015 .CS1 maint: archived copy as title (link)
  18. ^ "Формат файла SpaceClaim" . 2013-05-06. Архивировано из оригинала на 2013-09-15 . Проверено 14 августа 2017 .
  19. ^ https://msdn.microsoft.com/en-us/library/system.windows.dataformats.xamlpackage(v=vs.110).aspx
  20. ^ «Использование OPC для хранения ваших данных: страница 3» . www.devx.com .

Внешние ссылки [ править ]

  • Скачать спецификацию ISO / IEC 29500-2: 2012
  • OPC: новый стандарт упаковки ваших данных
  • Основы соглашений об открытой упаковке
  • Цифровые подписи OPC: руководство по применению для обеспечения безопасности общих критериев
  • Блог команды разработчиков упаковки
  • Open Packaging Conventions (OPC) Форум MSDN
  • Модель адресации соглашений об открытой упаковке
  • Документы по тестированию реализации OPC
  • Проводник пакетов OPC для редактирования частей XML
  • ISO 19165-1: 2018 ISO 19165 Географическая информация - Сохранение цифровых данных и метаданных - Часть 1: Основы