Open Packaging Conventions

Open Packaging Conventions
Open Packaging Conventions
Developed by Microsoft, Ecma, ISO/IEC
Initial release December 7, 2006; 4 years ago (2006-12-07)
Latest release ISO/IEC 29500:2008 / November 17, 2008; 2 years ago (2008-11-17)
Type of format File archive, data compression
Container for Electronic documents
Contained by ZIP
Extended from XML, ZIP
Standard(s) ECMA-376, ISO/IEC 29500
Website ECMA-376,
ISO/IEC 29500:2008

The Open Packaging Conventions (OPC) is a container-file technology initially created by Microsoft to store a combination of XML and non-XML files that together form a single entity such as an Open XML Paper Specification (OpenXPS) document. OPC-based file formats combine the advantages of leaving the independent file entities embedded in the document intact and resulting in much smaller files compared to normal use of XML.

Contents

Specifications

The OPC is specified in Part 2 of the Office Open XML standards ISO/IEC 29500:2008 and ECMA-376.[1][2]

The ISO/IEC 29500-2:2008 specification (and the 2nd edition of ECMA-376) makes a normative reference to PKWARE Inc's .ZIP File Format Specification version 6.2.0 (2004), and supplements it with a normative set of clarifications. Note: the older 1st edition of ECMA-376 makes an informative (i.e. non-normative) reference to the newer PKWARE Inc's ".ZIP File Format Specification" version 6.2.1(2005).[1] The ZIP format is not specified by any international standard, but has widespread community and developer acceptance.

Usage

Both the XML Paper Specification (XPS)[3] and Office Open XML (OOXML) use Open Packaging Conventions (OPC), which provide a profile of the common ZIP format. In addition to XML data and document, files in the ZIP package can include other text and binary files in formats such as PNG, BMP, AVI, PDF, RTF, or even an already packaged ODF file. OPC also defines some naming conventions and an indirection method to allow position independence of binary and XML files in the ZIP archive.

OPC files can be opened using common ZIP utilities.

File formats using the OPC

The OPC is the foundation technology for many new file formats:[4]

File format Filename extension Content Standard
Autodesk AutoCAD DWFX file format .dwfx CAD design data (2D/3D computer graphicss and technical drawings)
Family.Show file format[5] .familyx genealogical family data, stories, and photos
Field Device Integration FDI Packages .fdix
Microsoft Semblio file format .semblio interactive learning material, such as e-books containing images, audio, and video
Microsoft Visual Studio 2010 Extensions file format .vsix integrated development environment extension
Microsoft Windows 8 App Package[6] .appx software package for the planned Windows Store
Microsoft Windows Azure C# Package .cspkg cloud platform data
Microsoft XML Paper Specification .xps fixed document for document exchange
NuGet Package .nupkg software package for a package management system
Office Open XML Document .docx word processing document ECMA-376, ISO/IEC 29500:2008
Office Open XML Presentation .pptx presentation ECMA-376, ISO/IEC 29500:2008
Office Open XML Workbook .xlsx spreadsheet workbook ECMA-376, ISO/IEC 29500:2008
Open XML Paper Specification .oxps fixed document for document exchange ECMA-388
Siemens PLM Software file format .jtx
SMPTE Media Package .smpk Storage format for distribution and playback of multimedia video and audio files. SMPTE ST 2053-2011

Package, Parts, and Relationships

Container structure of Part 2 of the Ecma Office Open XML standard, ECMA-376

In OPC terminology, the term package corresponds to a ZIP archive and the term part corresponds to a file stored within the ZIP. Every part in a package has a unique URI-compliant part name along with a specified content-type expressed in the form of a MIME media type. A part's content-type explicitly defines the type of data stored in the part, and reduces duplication and ambiguity issues inherent with file extensions.

OPC packages can also include relationships that define associations between the package, parts, and external resources. In addition to a hierarchy of directories and parts, OPC packages commonly use relationships to access content through a directed graph of relationship associations. Relationships are composed of four elements:

  • an identifier (ID)
  • an optional source (the package or a part within the package)
  • a relationship type (a URI-style expression that defines the type of the relationship)
  • a target (a URI to another part within the package or to an external resource)

OPC packages can store parts that contain any type of data (text, images, XML, binary, whatever). The extension ".rels", however, is reserved for storing relationships metadata within "/_rels" subfolders. The subfolder name "_rels", the file extension ".rels" within such directory, and the filename "[Content_Types].xml" in any folder are the only three reserved names for files stored in an OPC package.

/[Content_Types].xml file
This file defines the MIME media types for all the parts stored in the package. The "/[Content_Types].xml" file defines default mappings based on file extensions, along with overrides for specific parts with content-types that are different from the file extension defaults. For example, one of these defined MIME types is:
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
/_rels
The root level "/_rels" folder stores the relationships for the package as a whole. The "/_rels" folder normally contains a file named ".rels". "/_rels/.rels" is an XML file where the starting package-level relationships are stored. Normally when opening an OPC-based file, applications start by accessing to the "/_rels/.rels" file to read the starting package-level relationships.
[partname].rels
Each part may have its own relationships. The_rels folders are where one goes to find the relationships for any given part within the package. To find the relationships for a specific part, one looks in the "_rels" folder that is a sibling of that part: If the part has relationships, the "_rels" folder will contain a file that has one's original part name with a ".rels" appended to it. For example, if the content types part file had any relationships, there would be a file called "[Content_Types].xml.rels" inside the "/_rels" folder.

All relationships (including the relations associated to the root package) are represented as XML files. If you open a ".rels" file in a text editor, you can view the actual XML markup that defines all the relationships targeted from that part. A typical relationships file contains XML code like this:

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

which defines two relations for the root package, the first one being considered as the root package (here for an early Microsoft XPS document, before it was standardized as Open XML Paper Specification within the openxmlformats collection), and the other one being used to reference an alternate form (here a thumbnail rendered image of the first page of the document).

The main parts of the embedded documents are often stored within a folder named "/Document" (which may contain subdirectories itself, if the file contains several related documents each of them with various parts), and the optional metadata parts that are not needed for processing the main parts of the document are stored in a folder named "/Metadata" ; however these actual folder names are actually specified within the XML-formatted data in "[partname].rels" relationship files, and the OPC specification allows any folder organisation that is convenient for the application and these two folder names are not required.

Microsoft has submitted a draft in 2006 to the Internet Engineering Task Force for a "pack" URI Scheme (pack://) to be used for URI references to OPC-based packages.[7]. The draft has last been revised in February 2009.

Advantages

OPC has several advantages like indirection, chunking and relative indirection.[8]

Chunking

It encourages documents to be split into small chunks. This is better for reducing the effect of file corruption.[9] And better for data access: for example, all the style information in one XML part, each separate worksheet or table in their own different parts. This allows faster access and less object creation for clients, and makes it easier for multiple processes to be working on the same document.

Relative indirection

In the Open Packaging Conventions each file that has reference has its own _rels file with the indirection lists. This makes it easier to cut and paste some information with all its associated resources in some cases, provides name scoping to remove the chance of name clashing between files, and so on.

Programming

OPC is natively supported in Microsoft .NET Framework 3.0 by the System.IO.Packaging namespace. Open source libraries exist for other languages.

Alternatively, ZIP libraries can be used to create and open OPC files, as long as the correct files are included in the ZIP and the conventions followed.

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Open Packaging Convention — The Open Packaging Conventions (OPC) is a file packaging format created by Microsoft for storing a combination of XML and non XML files that together form a single entity like an XML Paper Specification (XPS) document in a single compressed file… …   Wikipedia

  • Open XML Paper Specification — (OpenXPS) Filename extension .oxps, .xps Internet media type application/oxps, application/vnd.ms xpsdocument Developed by Micro …   Wikipedia

  • Open XML Paper Specification — (OXPS) Desarrollador Microsoft, Ecma International ECMA 388 Información general …   Wikipedia Español

  • Open XML — Vorlage:Infobox Dateiformat/Wartung/magic fehlt Office Open XML Dateiendung .docx, .xlsx, .pptx MIME Type [1] Entwickelt von …   Deutsch Wikipedia

  • Open xml — Vorlage:Infobox Dateiformat/Wartung/magic fehlt Office Open XML Dateiendung .docx, .xlsx, .pptx MIME Type [1] Entwickelt von …   Deutsch Wikipedia

  • Open eBook — OEB redirects here. For the bible translation, see Open English Bible. See also: EPUB Open eBook Publication Structure (OEBPS) Filename extension .opf Internet media type application/oebps package+xml[1] Develop …   Wikipedia

  • Office Open XML — Not to be confused with OpenOffice.org XML or Microsoft Office XML formats. Office Open XML Office Open XML file formats Open Packaging Conventions Open Specification Promise Vector Markup Language Office Open XML software Comparison of… …   Wikipedia

  • Office Open XML — No debe confundirse con OpenOffice.org XML (formato obsoleto usado por versiones anteriores de OpenOffice.org), o Microsoft Office XML (formatos de archivo antiguos usados por versiones anteriores de Microsoft Office). Documento Office Open XML …   Wikipedia Español

  • Office Open XML — Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehlt Office Open XML Dateiendung: .docx, .xlsx, .pptx MIME Type: [1] …   Deutsch Wikipedia

  • Office Open XML file formats — Main article: Office Open XML Office Open XML Office Open XML file formats Open Packaging Conventions Open Specification Promise Vector Markup Language Office Open XML software Comparison of Office Open XML software Office Open XML… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”