Open Packaging Conventions
OPCは.NET Framework 3.0でネイティブにサポートされており、System.IO.Packaging ネームスペースで利用できる。他言語のためにオープンソースのライブラリが存在する。
Windows 7より、OPCはWindows APIとしてもサポートされるようになり、COMインタフェースを通じて利用できる。Packaging API という名称で参照できる。
別の方法として、ZIPライブラリを使ってOPCファイルを作成、開くことができる。この場合ZIP内に名称規約に従ったファイルが正しく格納されている必要がある。
OPCの専門用語において、パッケージはZIPアーカイブに対応し、パーツはZIPアーカイブに格納されているファイルに対応する。パッケージ内の各パーツには、MIMEメディアタイプ形式で表現された特定の要素タイプに加えて、一意のURI準拠のパーツ名が存在する。パーツの要素タイプはパーツに格納されているデータの型を明示的に定義しており、拡張子に起因する重複や曖昧さといった扱いの難しさを削減する。
OPCパッケージにはパッケージ、パーツ、および、外部リソースの間の関連付けを定義するリレーションシップを含めることができる。
ディレクトリおよびパーツの階層構造に加えて、OPCパッケージでは、関連付け関係の有向グラフを通したコンテンツへのアクセスにリレーションシップを一般に使用する。
リレーションシップは4つの要素から構成される:
識別子 (ID) 省略可能なソース(パッケージまたはパッケージ内のパーツ) リレーションシップタイプ(リレーションシップのタイプを定義するURI形式表現) ターゲット(パッケージ内の他のパーツまたは外部リソースを指すURI)
OPCパッケージは(テキスト、画像、XML、バイナリなど)任意の形式のデータを含むパーツを格納できる。 ただし、拡張子「.rels」は「/_rels」サブフォルダ内にリレーションシップメタデータを格納するために予約されている。 サブフォルダ名「_rels」、そのようなディレクトリ内のファイル拡張子「.