stringtranslate.com

Convenciones de embalaje abierto

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. [ dudosodiscutir ]

Presupuesto

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 .

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 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]

Formatos de archivos que utilizan OPC

El OPC es la tecnología base para muchos formatos de archivos nuevos: [7]

Programación

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.

Paquete, partes y relaciones

Estructura del contenedor de la Parte 2 del estándar XML abierto de Ecma Office, ECMA-376

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:

  • 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 objetivo (una URL 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, 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.

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 modificaciones para partes específicas con tipos de contenido que son diferentes de los valores predeterminados de extensión de archivo. Por ejemplo, uno de estos tipos MIME definidos es:
< Extensión predeterminada = "rels" Tipo de contenido= "application/vnd.openxmlformats-package.relationships+xml" />  
/_relaciones
La carpeta de nivel raíz "/_rels" almacena las relaciones del paquete en su totalidad. 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.
[nombre de la pieza] .rels
Cada parte puede tener sus propias relaciones. Las carpetas _rels son el lugar donde se encuentran las relaciones de cualquier parte dentro del paquete. Para encontrar las relaciones de una parte específica, se 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 la 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 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.

Fragmentación

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.

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 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.

Referencias

  1. ^ ab ISO/IEC 29500-2:2008 - Tecnología de la información -- Lenguajes de procesamiento y descripción de documentos -- Formatos de archivos Office Open XML -- Parte 2: Convenciones de empaquetado abierto, ISO
  2. ^ 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 .{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  3. ^ "Estado del paquete: histórico". IANA . 2011-10-04 . Consultado el 2013-05-12 .
  4. ^ "Esquemas de identificadores de recursos uniformes (URI)". Registros de protocolo . IANA . Consultado el 12 de mayo de 2013 . {{cite web}}: Enlace externo en |work=( ayuda )
  5. ^ Equipo XPS (1 de septiembre de 2006). "Convenciones de empaquetado abierto y compatibilidad con marcado XML abierto". Blog del equipo XPS . Consultado el 4 de abril de 2007 .
  6. ^ Rick Jeliffe (29 de julio de 2007). "Comentario sobre ¿Puede un archivo ser ODF y Open XML al mismo tiempo?". Blogs de O'Reilly Net XML.
  7. ^ 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
  8. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 7 de agosto de 2016. Consultado el 26 de mayo de 2016 .{{cite web}}: CS1 maint: copia archivada como título ( enlace )
  9. ^ "¿Qué es un archivo DWF de AutoCAD? | De DWG a DGN". Archivado desde el original el 3 de septiembre de 2014. Consultado el 30 de agosto de 2014 .
  10. ^ "Formato de archivo CDDX - Diagrama de circuito". www.circuit-diagram.org .
  11. ^ "Archivo CodePlex". Archivo CodePlex .
  12. ^ "Tecnología - Cooperación en materia de IED". www.fdi-cooperation.com . Archivado desde el original el 19 de septiembre de 2014.
  13. ^ "IEC 62769-4:2015 | Tienda web IEC". webstore.iec.ch .
  14. ^ "Herramientas para desarrolladores, documentación técnica y ejemplos de codificación".
  15. ^ "Paquetes de aplicaciones e implementación (aplicaciones de Windows Runtime) - Desarrollo de aplicaciones de Windows". 6 de octubre de 2015.
  16. ^ Warren, Tom (11 de febrero de 2014). "Windows Phone 8.1 incluye aplicaciones universales y muchas actualizaciones de funciones". The Verge .
  17. ^ "Contenido movido (Windows)". Archivado desde el original el 18 de octubre de 2016. Consultado el 26 de enero de 2015 .
  18. ^ Detalles del Shell de Administración de Activos - Parte 1
  19. ^ "Formato de archivo SpaceClaim". 6 de mayo de 2013. Archivado desde el original el 15 de septiembre de 2013. Consultado el 14 de agosto de 2017 .
  20. ^ "Campo DataFormats.XamlPackage (System.Windows)".
  21. ^ "Cómo usar OPC para almacenar sus propios datos: página 3". www.devx.com .

Enlaces externos