Las Convenciones de empaquetado abierto (OPC) es una tecnología de contenedores de archivos inicialmente creado por Microsoft para almacenar una combinación de XML archivos y no XML que juntos forman una sola entidad, tales como Open XML Paper Specification documento (OpenXPS). Los formatos de archivo basados en OPC combinan las ventajas de dejar intactas las entidades de archivo independientes incrustadas en el documento y dar como resultado archivos mucho más pequeños en comparación con el uso normal de XML.
Nombre nativo | Formatos de archivo XML abiertos de Office: convenciones de empaquetado abierto |
---|---|
Estado | Publicado |
Publicado por primera vez | 7 de diciembre de 2006 |
Ultima versión | ISO / IEC 29500-2: 2012 22 de agosto de 2012 |
Organización | Microsoft , Ecma , ISO / IEC |
Estándares básicos | ECMA-376, ISO / IEC 29500-2 |
Estándares relacionados | XML , ZIP |
Dominio | Documentos electronicos |
Abreviatura | OPC |
Sitio web | ECMA-376 , ISO / IEC 29500-2: 2012 |
Especificaciones
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 norma ISO / IEC 29500-2: 2008 y especificación de la segunda edición de ECMA-376 hace una referencia normativa a PKWARE, Inc. 's .ZIP Formato de archivo de especificación de la versión 6.2.0 (2004), y lo complementa 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 versión 6.2.1 (2005) de la "Especificación de formato de archivo .ZIP" de PKWARE Inc más reciente. [1] El formato ZIP no está especificado por ningún estándar internacional, pero tiene una amplia aceptación por parte de la comunidad y los desarrolladores.
Microsoft presentó un borrador en 2006 al Grupo de trabajo de ingeniería de Internet para un esquema de URI de "paquete" ( pack://
) que se utilizará para referencias de 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 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 de archivo abierto .
Uso
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 el marcado 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 posición de los archivos binarios y XML en el archivo ZIP.
Los archivos OPC se pueden abrir utilizando utilidades ZIP comunes. OPC permite indirección, fragmentación e indirección relativa . [6]
Formatos de archivo que utilizan OPC
OPC es la tecnología fundamental para muchos formatos de archivo nuevos: [7]
Formato de archivo | Extensión de nombre de archivo | Contenido | Estándar |
---|---|---|---|
Formato de archivo 3MF Consortium 3D Manufacturing Format (3MF) [8] | .3mf | Datos de diseño CAD para fabricación aditiva ( impresión 3D ) | |
Formato de archivo de Autodesk AutoCAD Design Web Format (DWFX) [9] | .dwfx | Datos de diseño CAD ( gráficos por computadora 2D / 3D y dibujos técnicos ) | |
Documento de diagrama de circuito [10] | .cddx | Diagrama de circuito que contiene diseño, conexiones y componentes integrados | |
Formato de archivo Family.Show [11] | .familyx | datos, historias y fotos genealógicas de la familia | |
Paquetes FDI de integración de dispositivos de campo [12] [13] | .fdix | Información de integración de dispositivos de campo | IEC 62769-4: 2015 |
Formato de archivo de virtualización de aplicaciones de Microsoft | .appv | Aplicación portátil | |
Formato de archivo Microsoft Semblio | .semblio | Material de aprendizaje interactivo, como libros electrónicos que contienen imágenes, audio y video | |
Formato de archivo de extensiones de Microsoft Visual Studio 2010+ | .vsix | Extensión del entorno de desarrollo integrado | |
Formato de archivo de dibujo de Microsoft Visio 2013 | .vsdx | Reemplaza los formatos .vsd (archivo binario de Visio) y .vdx (dibujo XML de Visio) utilizados en versiones anteriores [14] | |
Paquete de aplicaciones Microsoft Windows 8 , Windows 8.1 y Windows Phone 8.1 [15] | .appx | Paquete de software para aplicaciones de Microsoft aparece en tienda de Windows y Windows Store Teléfono [16] | |
Paquete de aplicaciones Microsoft Windows 8.1 y Windows Phone 8.1 [17] | .appxbundle | Paquete de software que agrupa las plataformas de hardware, lenguajes y recursos para una aplicación que aparece en la Microsoft Windows Store y la tienda de Windows Teléfono | |
Paquete de Microsoft Windows Azure C # | .cspkg | Datos de la plataforma en la nube | |
Especificación de papel XML de Microsoft | .xps | Documento fijo para intercambio de documentos | |
Mapa comprimido abierto de MiraMon | .mmzx | Información geográfica ( gráficos rasterizados geoespaciales , gráficos vectoriales y datos tabulares , simbolización y metadatos en archivos, enlaces a geoservicios, etc.) | ISO 19165-1: 2018 |
Paquete NuGet | .nupkg | Paquete de software para un sistema de gestión de paquetes | |
Documento XML abierto de Office | .docx | Documento de procesamiento de texto | ECMA-376, ISO / IEC 29500: 2008 |
Presentación de Office Open XML | .pptx | Archivo de presentación | ECMA-376, ISO / IEC 29500: 2008 |
Libro de trabajo XML abierto de Office | .xlsx | Libro de trabajo de hoja de cálculo | ECMA-376, ISO / IEC 29500: 2008 |
Especificación de papel XML abierto | .oxps | Documento fijo para intercambio de documentos | ECMA-388 |
Platform Industrie 4.0 - Shell administrativo de activos [18] | .aasx | Formato de archivo de paquete para shell de activos administrativos (AAS) | |
Formato de archivo del software Siemens PLM | .jtx | ||
Archivo de modelo de MathWorks Simulink | .slx | Especificación de sistema dinámico para diseño basado en modelos | |
Paquete multimedia SMPTE | .smpk | Formato de almacenamiento para la distribución y reproducción de archivos de audio y video multimedia | SMPTE ST 2053-2011 |
SpaceClaim 3D modelo sólido de archivos [19] | .scdoc | Los archivos de datos CAD 3D integrados incluyen archivos de modelos sólidos estándar ACIS Binary (SAB) | |
Paquete XAML de Microsoft | - | No es una especificación. Función compatible con .NET Framework solo para guardar WPF FlowDocument con imágenes [20] |
Programación
OPC es compatible de forma nativa en 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 es compatible de forma nativa en la API de Windows a través de un conjunto de interfaces COM , denominadas colectivamente API de empaquetado .
Alternativamente, las bibliotecas ZIP se pueden utilizar para crear y abrir archivos OPC, siempre que los archivos correctos estén incluidos en el ZIP y se sigan las convenciones.
Paquete, piezas y relaciones
En 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 compatible con URI junto con un tipo de contenido específico expresado en forma de 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 piezas y los recursos externos. Además de una jerarquía de directorios y partes, los paquetes OPC comúnmente usan relaciones para acceder al contenido a través de un gráfico dirigido de asociaciones de relaciones. Las relaciones se componen de cuatro elementos:
- un identificador (ID)
- una fuente opcional (el paquete o una parte dentro del paquete)
- un tipo de relación (una expresión de estilo URI que define el tipo de relación)
- un destino (un URI a otra parte dentro del paquete o a un recurso externo)
Los paquetes OPC pueden almacenar partes que contengan cualquier tipo de datos (texto, imágenes, XML, binarios, lo que sea). La extensión ".rels", sin embargo, está reservada para almacenar metadatos de relaciones dentro de las subcarpetas "/ _rels". El nombre de 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 archivos almacenados en un paquete OPC.
- Archivo /[Content_Types].xml
- Este archivo define los tipos de medios MIME para todas las partes almacenadas en el paquete. El archivo "/[Content_Types].xml" define asignaciones predeterminadas basadas en extensiones de archivo, junto con anulaciones para partes específicas con tipos de contenido que son diferentes de las extensiones de archivo predeterminadas. Por ejemplo, uno de estos tipos MIME definidos es:
< Extensión predeterminada = "rels" ContentType = "application / vnd.openxmlformats-package.relationships + xml" />
- / _rels
- La carpeta de nivel raíz "/ _rels" almacena las relaciones del paquete como un todo. La carpeta "/ _rels" normalmente contiene un archivo llamado ".rels". "/_rels/.rels" es un archivo XML donde se almacenan las relaciones iniciales a nivel de paquete . Normalmente, al abrir un archivo basado en OPC, las aplicaciones comienzan accediendo al archivo "/_rels/.rels" para leer las relaciones iniciales a nivel de paquete.
- [partname] .rels
- Cada parte puede tener sus propias relaciones. Las carpetas _rels son donde uno va para encontrar las relaciones para cualquier parte dada dentro del paquete. Para encontrar las relaciones para una parte específica, uno busca en la carpeta "_rels" que es hermana de esa parte: Si la parte tiene relaciones, la carpeta "_rels" contendrá un archivo que tiene el nombre de la parte original con un ". rels "adjunto. Por ejemplo, si el archivo de parte de tipos de contenido tuviera alguna relación, habría un archivo llamado "[Content_Types] .xml.rels" dentro de la carpeta "/ _rels".
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 marcado XML real que define todas las relaciones dirigidas a esa parte. Un archivo de relaciones típico contiene un código XML como este:
xmlns = "http://schemas.openxmlformats.org/package/2006/relationships" > < Id. De relación = "R0" Tipo = "http://schemas.microsoft.com/xps/2005/06/fixedrepresentation" Target = "/FixedDocumentSequence.fdseq" /> < Id. De relación = "R1" Tipo = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail" Target = "/ Documents / 1 / Metadata / Page1_Thumbnail.JPG " />
que define dos relaciones para el paquete raíz, la primera se considera como el paquete raíz (aquí para un documento de Microsoft XPS temprano , antes de que se estandarizara como Open XML Paper Specification dentro de la colección openxmlformats), y la otra se usa como referencia una forma alternativa (aquí una imagen renderizada 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 procesando las partes principales del documento se almacenan en una carpeta llamada "/ Metadata"; sin embargo, estos nombres de carpetas reales se especifican realmente 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.
Fragmentando
Fomenta que los documentos se dividan en pequeños trozos. Esto es mejor para reducir el efecto de la corrupción de archivos. [21] Y mejor para el acceso a datos: por ejemplo, toda la información de estilo en una parte XML, cada hoja de trabajo o tabla separada en sus propias partes diferentes. Esto permite un acceso más rápido y menos creación de objetos para los clientes y facilita que múltiples procesos trabajen en el mismo documento.
Indirección relativa
En las convenciones de empaquetado abierto, cada archivo que tiene referencia tiene su propio archivo _rels con las listas de indirección. Esto hace que sea más fácil cortar y pegar información con todos sus recursos asociados en algunos casos, proporciona un alcance de nombres para eliminar la posibilidad de que los nombres entren en conflicto entre archivos, etc.
Referencias
- ^ a b ISO / IEC 29500-2: 2008 - Tecnología de la información - Lenguajes de procesamiento y descripción de documentos - Formatos de archivos XML abiertos de Office - Parte 2: Convenciones de empaquetado abierto , ISO
- ^ Ecma International TC45 (diciembre de 2006). "Formatos de archivo XML abiertos de Office ECMA-376 estándar" . Ecma International . Consultado el 4 de abril de 2007 .
- ^ "Estado del paquete: histórico" . IANA . 2011-10-04 . Consultado el 12 de mayo de 2013 .
- ^ "Esquemas de identificador uniforme de recursos (URI)" . Registros de protocolo . IANA . Consultado el 12 de mayo de 2013 . Enlace externo en
|work=
( ayuda ) - ^ Equipo XPS (2006-09-01). "Convenciones de empaquetado abierto y compatibilidad de marcado XML abierto" . Blog del equipo XPS . Consultado el 4 de abril de 2007 .
- ^ Rick Jeliffe (29 de julio de 2007). "Comente sobre ¿Puede un archivo ser ODF y Open XML al mismo tiempo?" . Blogs XML netos de O'Reilly.
- ^ Aventuras en el embalaje - Episodio 1 , 18 de mayo de 2009, por Jack Davis, Blog del equipo de embalaje de Microsoft: Convenciones de embalaje abierto
- ^ http://3mf.io/wp-content/uploads/2016/03/3MFcoreSpec_1.1.pdf
- ^ "Copia archivada" . Archivado desde el original el 3 de septiembre de 2014 . Consultado el 30 de agosto de 2014 .CS1 maint: copia archivada como título ( enlace )
- ^ "Formato de archivo CDDX - Diagrama de circuito" . www.circuit-diagram.org .
- ^ "Archivo CodePlex" . Archivo CodePlex .
- ^ http://www.fdi-cooperation.com/technology.html
- ^ "IEC 62769-4: 2015 | Tienda web de IEC" . webstore.iec.ch .
- ^ https://msdn.microsoft.com/en-us/library/office/jj228622%28v=office.15%29.aspx
- ^ https://msdn.microsoft.com/en-us/library/windows/apps/hh464929(v=VS.85).aspx
- ^ Warren, Tom (11 de febrero de 2014). "Windows Phone 8.1 incluye aplicaciones universales y muchas actualizaciones de funciones" . The Verge .
- ^ "Copia archivada" . Archivado desde el original el 18 de octubre de 2016 . Consultado el 26 de enero de 2015 .CS1 maint: copia archivada como título ( enlace )
- ^ Detalles del Shell de administración de activos - Parte 1
- ^ "Formato de archivo SpaceClaim" . 2013-05-06. Archivado desde el original el 15 de septiembre de 2013 . Consultado el 14 de agosto de 2017 .
- ^ https://msdn.microsoft.com/en-us/library/system.windows.dataformats.xamlpackage(v=vs.110).aspx
- ^ "Uso de OPC para almacenar sus propios datos: página 3" . www.devx.com .
enlaces externos
- Descargar la especificación ISO / IEC 29500-2: 2012
- OPC: un nuevo estándar para empaquetar sus datos
- Fundamentos de las convenciones de envases abiertos
- Firmas digitales OPC: Directrices de aplicación para la seguridad de criterios comunes
- Blog del equipo de empaque
- Open Packaging Conventions (OPC) Foro MSDN
- El modelo de direccionamiento de las convenciones de empaquetado abierto
- Documentos de prueba de implementación de OPC
- Explorador de paquetes OPC para editar partes XML
- ISO 19165-1: 2018 ISO 19165 Información geográfica - Preservación de datos y metadatos digitales - Parte 1: Fundamentos