Open Packaging Conventions (OPC) es una tecnología de archivos contenedores creada inicialmente por Microsoft para almacenar una combinación de archivos XML y no XML que juntos forman una entidad única, como un documento Open XML Paper Specification (OpenXPS). Los formatos de archivo basados en OPC combinan las ventajas de dejar las entidades de archivo independientes incrustadas en el documento intactas, lo que da como resultado archivos mucho más pequeños en comparación con el uso normal de XML. [ dudoso – discutir ]
El OPC se especifica en la Parte 2 de los estándares Office Open XML ISO / IEC 29500:2008 y ECMA -376 . [1] [2]
La especificación ISO/IEC 29500-2:2008 y la segunda edición de ECMA-376 hacen una referencia normativa a la especificación de formato de archivo .ZIP de PKWARE, Inc. versión 6.2.0 (2004), y la complementan con un conjunto normativo de aclaraciones. Nota: La primera edición anterior de ECMA-376 hace una referencia informativa ( es decir , no normativa) a la más reciente "Especificación de formato de archivo .ZIP" de PKWARE Inc. versión 6.2.1 (2005). [1] El formato ZIP no está especificado por ninguna norma internacional, pero tiene una amplia aceptación por parte de la comunidad y los desarrolladores.
En 2006, Microsoft presentó un borrador al Grupo de trabajo de ingeniería de Internet para un esquema URI "pack" ( pack://
) que se utilizaría para referencias URI a paquetes basados en OPC. El borrador expiró en 2009, la sintaxis especificada es incompatible con el estándar de Internet para esquemas URI (STD 66, RFC 3986). [3] El esquema ahora figura como histórico . [4]
La norma ISO 19165:1-2018 recomienda el uso de las Convenciones de Empaquetado Abierto para implementar el Paquete Geoespacial definido en el Sistema de Información Archivística Abierto .
Tanto la especificación de papel XML (XPS) [5] como Office Open XML (OOXML) utilizan convenciones de empaquetado abierto (OPC), que proporcionan un perfil del formato ZIP común . Además de los datos y el contenido del documento en formato XML, los archivos del paquete ZIP pueden incluir otros archivos de texto y binarios en formatos como PNG , BMP , AVI , PDF , RTF o incluso un archivo ODF ya empaquetado . OPC también define algunas convenciones de nomenclatura y un método de indirección para permitir la independencia de la posición de los archivos binarios y XML en el archivo ZIP.
Los archivos OPC se pueden abrir mediante utilidades ZIP comunes. Los archivos OPC permiten la indirección, la fragmentación y la indirección relativa. [6]
El OPC es la tecnología base para muchos formatos de archivos nuevos: [7]
OPC es compatible de forma nativa con Microsoft .NET Framework 3.0 mediante el espacio de nombres System.IO.Packaging . Existen bibliotecas de código abierto para otros lenguajes.
Desde Windows 7 , OPC también se admite de forma nativa en la API de Windows a través de un conjunto de interfaces COM , denominadas colectivamente como Packaging API.
Como alternativa, se pueden utilizar bibliotecas ZIP para crear y abrir archivos OPC, siempre que se incluyan los archivos correctos en el ZIP y se sigan las convenciones.
En la terminología OPC, el término paquete corresponde a un archivo ZIP y el término parte corresponde a un archivo almacenado dentro del ZIP. Cada parte de un paquete tiene un nombre de parte único que cumple con la URI junto con un tipo de contenido especificado expresado en forma de un tipo de medio MIME . El tipo de contenido de una parte define explícitamente el tipo de datos almacenados en la parte y reduce los problemas de duplicación y ambigüedad inherentes a las extensiones de archivo .
Los paquetes OPC también pueden incluir relaciones que definen asociaciones entre el paquete, las partes y los recursos externos. Además de una jerarquía de directorios y partes, los paquetes OPC suelen utilizar relaciones para acceder al contenido a través de un gráfico dirigido de asociaciones de relaciones. Las relaciones se componen de cuatro elementos:
Los paquetes OPC pueden almacenar partes que contengan cualquier tipo de datos (texto, imágenes, XML, binarios, etc.). Sin embargo, la extensión ".rels" está reservada para almacenar metadatos de relaciones dentro de las subcarpetas "/_rels". El nombre de la subcarpeta "_rels", la extensión de archivo ".rels" dentro de dicho directorio y el nombre de archivo "[Content_Types].xml" en cualquier carpeta son los únicos tres nombres reservados para los archivos almacenados en un paquete OPC.
< Extensión predeterminada = "rels" Tipo de contenido= "application/vnd.openxmlformats-package.relationships+xml" />
Todas las relaciones (incluidas las relaciones asociadas al paquete raíz) se representan como archivos XML. Si abre un archivo ".rels" en un editor de texto, puede ver el código XML real que define todas las relaciones a las que se dirige esa parte. Un archivo de relaciones típico contiene código XML como el siguiente:
<Relaciones xmlns= "http://schemas.openxmlformats.org/package/2006/relationships" > <Id. de relación = "R0" Tipo= "http://schemas.microsoft.com/xps/2005/06/fixedrepresentation" Destino= "/FixedDocumentSequence.fdseq" > <Id. de relación = "R1" Tipo= "http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail" Destino= "/Documents/1/Metadata/Page1_Thumbnail.JPG" > </Relaciones>
que define dos relaciones para el paquete raíz, la primera se considera como el paquete raíz (aquí para un documento XPS de Microsoft temprano , antes de que se estandarizara como Open XML Paper Specification dentro de la colección openxmlformats), y la otra se usa para hacer referencia a un formulario alternativo (aquí una imagen en miniatura de la primera página del documento).
Las partes principales de los documentos incrustados a menudo se almacenan dentro de una carpeta llamada "/Documento" (que puede contener subdirectorios, si el archivo contiene varios documentos relacionados, cada uno de ellos con varias partes), y las partes de metadatos opcionales que no son necesarias para procesar las partes principales del documento se almacenan en una carpeta llamada "/Metadata"; sin embargo, estos nombres de carpeta reales en realidad se especifican dentro de los datos con formato XML en los archivos de relación " [partname] .rels" y la especificación OPC permite cualquier organización de carpetas que sea conveniente para la aplicación y estos dos nombres de carpeta no son necesarios.
Fomenta la división de los documentos en fragmentos pequeños. Esto es mejor para reducir el efecto de la corrupción de archivos. [21] Y es mejor para el acceso a los datos: por ejemplo, toda la información de estilo en una parte XML, cada hoja de cálculo o tabla independiente en sus propias partes diferentes. Esto permite un acceso más rápido y una menor creación de objetos para los clientes y facilita que varios procesos trabajen en el mismo documento.
En las Convenciones de Empaquetado Abierto, cada archivo que tiene referencia tiene su propio archivo _rels con las listas de indirección. Esto facilita cortar y pegar cierta información con todos sus recursos asociados en algunos casos, proporciona un alcance de nombres para eliminar la posibilidad de conflictos de nombres entre archivos, etc.
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{cite web}}
: Enlace externo en |work=
( ayuda ){{cite web}}
: CS1 maint: copia archivada como título ( enlace )