Articulo de referencia

Formatos de archivo Office Open XML

openxmlformats-officedocument. wordprocessingml. document {{ cite web | url = https://technet.microsoft.com/en-us/library/cc179224.aspx | title = Register file extensions on thi...

Los formatos de archivo Office Open XML son un conjunto de formatos que se pueden usar para representar documentos electrónicos de oficina . Existen formatos para documentos de procesamiento de texto , hojas de cálculo y presentaciones , así como formatos específicos para materiales como fórmulas matemáticas, gráficos, bibliografías, etc.

Los formatos fueron desarrollados por Microsoft y aparecieron por primera vez en Microsoft Office 2007. Fueron estandarizados entre diciembre de 2006 y noviembre de 2008, primero por el consorcio Ecma International , donde se convirtieron en ECMA-376, y posteriormente, tras un controvertido proceso de estandarización , por el Comité Técnico Conjunto 1 de ISO/IEC, donde se convirtieron en ISO/IEC 29500:2008.

Recipiente

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

Los documentos Office Open XML se almacenan en paquetes Open Packaging Conventions (OPC), que son archivos ZIP que contienen XML y otros archivos de datos, junto con una especificación de las relaciones entre ellos. [ 2 ] Según el tipo de documento, los paquetes tienen diferentes estructuras de directorios internos y nombres. Una aplicación utilizará los archivos de relaciones para localizar secciones individuales (archivos), cada una con sus metadatos correspondientes, en particular metadatos MIME .

Un paquete básico contiene un archivo XML llamado [Content_Types].xml en la raíz, junto con tres directorios: _rels , docProps y un directorio específico para el tipo de documento (por ejemplo, en un paquete de procesamiento de texto .docx, habría un directorio llamado word ). El directorio word contiene el archivo document.xml , que es el contenido principal del documento.

[Content_Types].xml
Este archivo proporcionaba información sobre el tipo MIME para partes del paquete, utilizando valores predeterminados para ciertas extensiones de archivo y anulaciones para las partes especificadas por IRI .
_relaciones
Este directorio contiene las relaciones entre los archivos del paquete. Para encontrar las relaciones de un archivo específico, busque el directorio _rels , que es un directorio hermano del archivo, y luego un archivo con el nombre original seguido de la extensión .rels . Por ejemplo, si el archivo de tipos de contenido tuviera alguna relación, existiría un archivo llamado [Content_Types].xml.rels dentro del directorio _rels .
_rels/.rels
Este archivo es donde se encuentran las relaciones del paquete. Las aplicaciones buscan aquí primero. Al verlo en un editor de texto, se puede observar que describe cada relación para esa sección. En un documento mínimo que contiene solo el archivo básico document.xml , las relaciones detalladas son metadata y document.xml .
docProps/core.xml
Este archivo contiene las propiedades principales de cualquier documento Office Open XML.
documento/word.xml
Este archivo es la parte principal de cualquier documento de Word.

Relaciones

Un ejemplo de archivo de relaciones ( word/_rels/document.xml.rels ) es:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <Relationships xmlns= "http://schemas.microsoft.com/package/2005/06/relationships" > <Relationship Id= "rId1" Type= "http://schemas.microsoft.com/office/2006/relationships/image" Target= "http://en.wikipedia.org/images/wiki-en.png" TargetMode= "External" /> <Relationship Id= "rId2" Type= "http://schemas.microsoft.com/office/2006/relationships/hyperlink" Target= "http://www.wikipedia.org" TargetMode= "External" /> </Relationships>

Por lo tanto, las imágenes a las que se hace referencia en el documento se pueden encontrar en el archivo de relaciones buscando todas las relaciones que sean de tipo http://schemas.microsoft.com/office/2006/relationships/image. Para cambiar la imagen utilizada, edite la relación.

El siguiente código muestra un ejemplo de marcado en línea para un hipervínculo :

<w:hyperlink r:id= "rId2" w:history= "1" xmlns:r= "http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w= "http://schemas.openxmlformats.org/wordprocessingml/2006/main" >

En este ejemplo, la URL ( Localizador Uniforme de Recursos ) se encuentra en el atributo Destino de la relación a la que se hace referencia mediante el ID de la relación, "rId2" en este caso. Las imágenes, plantillas y otros elementos vinculados se referencian de la misma manera.

Las imágenes se pueden insertar o enlazar mediante una etiqueta:

<v:imagedata w:rel= "rId1" o:title= "ejemplo" />

Esta es la referencia al archivo de imagen. Todas las referencias se gestionan mediante relaciones. Por ejemplo, un archivo document.xml tiene una relación con la imagen. Existe un directorio _rels en el mismo directorio que document.xml; dentro de _rels hay un archivo llamado document.xml.rels. En este archivo se define la relación, que incluye el tipo, el ID y la ubicación. El ID es el identificador referenciado en el documento XML. El tipo será la definición del esquema de referencia para el tipo de medio y la ubicación será una ubicación interna dentro del paquete ZIP o una ubicación externa definida mediante una URL.

Propiedades del documento

Office Open XML utiliza el conjunto de elementos de metadatos Dublin Core y los términos de metadatos DCMI para almacenar las propiedades de los documentos. Dublin Core es un estándar para la descripción de recursos de información entre dominios y está definido en la norma ISO 15836:2003 .

Un ejemplo de archivo de propiedades de documento ( docProps/core.xml ) que utiliza metadatos de Dublin Core es:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cp:coreProperties xmlns:cp= "http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc= "http://purl.org/dc/elements/1.1/" xmlns:dcterms= "http://purl.org/dc/terms/" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" > <dc:title> Office Open XML </dc:title> <dc:subject> Formato y estructura de archivos </dc:subject> <dc:creator> Wikipedia </dc:creator> <cp:keywords> Office Open XML, Metadatos, Dublin Core </cp:keywords> <dc:description> Office Open XML utiliza ISO 15836:2003 </dc:description> <cp:lastModifiedBy> Wikipedia </cp:lastModifiedBy> <cp:revision> 1 </cp:revision> <dcterms:created xsi:type= "dcterms:W3CDTF" > 2008-06-19T20:00:00Z </dcterms:created> <dcterms:modified xsi:type= "dcterms:W3CDTF" > 2008-06-19T20:42:00Z </dcterms:modified> <cp:category> Formato de archivo de documento </cp:category> <cp:contentStatus> Final </cp:contentStatus> </cp:coreProperties>

Lenguajes de marcado de documentos

Un archivo Office Open XML puede contener varios documentos codificados en lenguajes de marcado especializados que corresponden a aplicaciones de la línea de productos Microsoft Office. Office Open XML define varios vocabularios mediante 27 espacios de nombres y 89 módulos de esquema .

Los lenguajes de marcado principales son:

  • WordprocessingML para el procesamiento de textos
  • SpreadsheetML para hojas de cálculo
  • PresentationML para presentaciones

Los materiales en lenguaje de marcado compartido incluyen:

  • Lenguaje de marcado matemático de oficina (OMML)
  • DrawingML se utiliza para dibujos vectoriales, gráficos y, por ejemplo, arte de texto (además, aunque está obsoleto, VML es compatible con el dibujo).
  • Propiedades ampliadas
  • Propiedades personalizadas
  • Tipos de variantes
  • Propiedades de datos XML personalizadas
  • Bibliografía

Además de los lenguajes de marcado mencionados anteriormente, se pueden utilizar esquemas XML personalizados para ampliar Office Open XML.

Enfoque de diseño

Patrick Durusau, editor de ODF , ha visto el estilo de marcado de OOXML y ODF como dos caras de un debate: la "parte de los elementos" y la "parte de los atributos". Señala que OOXML representa "la parte de los elementos de este enfoque" y destaca el KeepNextelemento como ejemplo:

<w:pPr> <w:keepNext/></w:pPr>

En cambio, señala que ODF usaría el atributo único fo:keep-next, en lugar de un elemento, para la misma semántica. [ 3 ]

El esquema XML de Office Open XML enfatiza la reducción del tiempo de carga y la mejora de la velocidad de análisis . [ 4 ] En una prueba con aplicaciones vigentes en abril de 2007, los documentos de Office basados ​​en XML fueron más lentos en cargarse que los formatos binarios. [ 5 ] Para mejorar el rendimiento, Office Open XML utiliza nombres de elementos muy cortos para elementos comunes y fechas de guardado de hojas de cálculo como números de índice (que comienzan desde 1900 o desde 1904). [ 6 ] Para ser sistemático y genérico, Office Open XML normalmente utiliza elementos secundarios separados para datos y metadatos (nombres de elementos que terminan en Pr para propiedades ) en lugar de utilizar múltiples atributos, lo que permite propiedades estructuradas. Office Open XML no utiliza contenido mixto, sino que utiliza elementos para colocar una serie de secuencias de texto (nombre de elemento r ) en párrafos (nombre de elemento p ). El resultado es conciso y altamente anidado en contraste con HTML , por ejemplo, que es bastante plano, diseñado para que los humanos escriban en editores de texto y es más agradable para que los humanos lo lean.

La nomenclatura de elementos y atributos dentro del texto ha suscitado algunas críticas. En OOXML (ECMA-376) existen tres sintaxis diferentes para especificar el color y la alineación del texto, según se trate de un documento de texto, una hoja de cálculo o una presentación. Rob Weir ( empleado de IBM y copresidente del Comité Técnico de Formato de Documento Abierto de OASIS ) pregunta: "¿Cuál es la justificación técnica para este desastre?". Contrasta con OpenDocument : "ODF utiliza el vocabulario XSL-FO del W3C para el estilo del texto y lo utiliza de forma coherente". [ 7 ]

Algunos han argumentado que el diseño se basa demasiado en las aplicaciones de Microsoft. En agosto de 2007, la Fundación Linux publicó una entrada de blog en la que instaba a los organismos nacionales de la ISO a votar "No, con comentarios" durante la estandarización internacional de OOXML. En ella se afirmaba: "OOXML es una adaptación directa de los formatos de documentos binarios de un único proveedor. Evita la reutilización de estándares internacionales existentes relevantes (por ejemplo, varios algoritmos criptográficos, VML, etc.). Existen literalmente cientos de fallos técnicos que deberían abordarse antes de estandarizar OOXML, entre ellos el uso continuado de código binario vinculado a características específicas de la plataforma, la propagación de errores de MS-Office al estándar, unidades propietarias, referencias a etiquetas propietarias/confidenciales, derechos de propiedad intelectual y patentes poco claros, y mucho más". [ 8 ]

La versión del estándar presentada al JTC 1 tenía 6546 páginas. Se ha cuestionado la necesidad y la pertinencia de tal extensión. [ 9 ] [ 10 ] Google afirmó que "el estándar ODF, que logra el mismo objetivo, tiene solo 867 páginas" [ 9 ]

WordprocessingML (WML)

Los documentos de procesamiento de texto utilizan el vocabulario XML conocido como WordprocessingML, definido normativamente por el esquema wml.xsdque acompaña al estándar. Este vocabulario se define en la cláusula 11 de la Parte 1. [ 11 ]

Hoja de cálculo ML (SML)

Los documentos de hoja de cálculo utilizan el vocabulario XML conocido como SpreadsheetML, definido normativamente por el esquema sml.xsdque acompaña al estándar. Este vocabulario se describe en la cláusula 12 de la Parte 1. [ 11 ]

Cada hoja de cálculo en una hoja de cálculo está representada por un documento XML con un elemento raíz denominado en el espacio de nombres.<worksheet>...</worksheet>http://schemas.openxmlformats.org/spreadsheetml/2006/main

La representación de valores de fecha y hora en SpreadsheetML ha generado algunas críticas. La primera edición de ECMA-376 no cumple con la norma ISO 8601:2004 "Representación de fechas y horas". Requiere que las implementaciones reproduzcan un error de Lotus 1-2-3 [ 12 ] que trata erróneamente 1900 como un año bisiesto. Los productos que cumplan con ECMA-376 tendrían que usar la función de hoja de cálculo WEEKDAY(), y por lo tanto asignarían fechas incorrectas a algunos días de la semana, y también calcularían erróneamente el número de días entre ciertas fechas. [ 13 ] La segunda edición de ECMA-376 (ISO/IEC 29500) permite el uso de la norma 8601:2004 "Representación de fechas y horas" además del formato compatible con el error de Lotus 1-2-3. [ 14 ] [ 15 ]

Matemáticas de oficina (OMML)

Office Math Markup Language es un lenguaje de marcado matemático que se puede integrar en WordprocessingML, con soporte intrínseco para incluir marcado de procesamiento de texto como marcas de revisión, [ 16 ] notas al pie, comentarios, imágenes y formatos y estilos elaborados. [ 17 ] El formato OMML es diferente de la recomendación MathML del Consorcio World Wide Web (W3C) , que no admite esas características de Office, pero es parcialmente compatible [ 18 ] a través de transformaciones XSL ; las herramientas se proporcionan con la suite de Office y se utilizan automáticamente a través de transformaciones del portapapeles. [ 19 ]

El siguiente ejemplo de Office MathML define la fracción :π2{\displaystyle {\frac {\pi }{2}}}

<m:oMathPara> <!-- contenedor de bloque matemático utilizado como párrafo --> <m:oMath> <!-- fórmula matemática en línea --> <m:f> <!-- una fracción --> <m:num><m:r><m:t> π </m:t></m:r></m:num> <!-- numerador que contiene una sola secuencia de texto --> <m:den><m:r><m:t> 2 </m:t></m:r></m:den> <!-- denominador que contiene una sola secuencia de texto --> </m:f> </m:oMath> </m:oMathPara>

Algunos han cuestionado la necesidad de Office MathML (OMML) y, en su lugar, abogan por el uso de MathML , una recomendación del W3C para la "inclusión de expresiones matemáticas en páginas web" y la "comunicación máquina a máquina". [ 20 ] Murray Sargent ha respondido a algunas de estas cuestiones en una entrada de blog, donde detalla algunas de las diferencias filosóficas entre ambos formatos. [ 21 ]

DibujoML

Ejemplo de gráficos DrawingML

DrawingML es el lenguaje de marcado de gráficos vectoriales utilizado en los documentos Office Open XML. Sus principales características son la representación gráfica de elementos de texto, elementos gráficos de formas vectoriales, tablas y diagramas.

La tabla DrawingML es el tercer modelo de tabla en Office Open XML (junto con los modelos de tabla en WordprocessingML y SpreadsheetML) y está optimizada para efectos gráficos. Su uso principal se encuentra en presentaciones creadas con el marcado PresentationML. DrawingML contiene efectos gráficos (como sombras y reflejos) que se pueden aplicar a los diferentes elementos gráficos utilizados en DrawingML. En DrawingML también se pueden crear efectos 3D, por ejemplo, para mostrar los diferentes elementos gráficos desde un punto de vista de cámara flexible. Es posible crear partes de tema DrawingML independientes en un paquete de Office Open XML. Estos temas se pueden aplicar a los elementos gráficos en todo el paquete de Office Open XML. [ 22 ]

DrawingML no guarda relación con otros formatos de gráficos vectoriales como SVG . Estos se pueden convertir a DrawingML para incluirlos de forma nativa en un documento Office Open XML. Este enfoque difiere del formato OpenDocument , que utiliza un subconjunto de SVG e incluye los gráficos vectoriales como archivos independientes.

Las dimensiones de un gráfico DrawingML se especifican en Unidades Métricas Inglesas (UME). Se denominan así porque permiten una representación común y exacta de las dimensiones originalmente en unidades inglesas o métricas , definidas como 1/360 000 de centímetro . Por lo tanto, hay 914 400 UME por pulgada y 12 700 UME por punto , para evitar el redondeo en los cálculos. Rick Jelliffe prefiere las UME como una solución racional para un conjunto particular de criterios de diseño. [ 23 ]

Algunos han criticado el uso de DrawingML (y VML , que solo se utiliza de forma transitoria ) en lugar de la recomendación SVG del W3C . [ 24 ] VML no se convirtió en una recomendación del W3C. [ 25 ]

Recursos extranjeros

Contenido que no es XML

Los documentos OOXML suelen estar compuestos por otros recursos además del contenido XML (gráficos, vídeo, etc.).

Algunos han criticado la elección del formato permitido para dichos recursos: la primera edición de ECMA-376 especifica "Tipos de solicitudes de imágenes alternativas de objetos incrustados" y "Tipos de formato del portapapeles", que hacen referencia a metarchivos de Windows o metarchivos mejorados  ; cada uno de estos son formatos propietarios con dependencias codificadas en el propio Windows . Los críticos afirman que el estándar debería haber hecho referencia al estándar independiente de la plataforma ISO/IEC 8632 " Metaarchivo de gráficos por computadora ". [ 13 ]

Margen de beneficio extranjero

El estándar proporciona tres mecanismos para permitir la inserción de marcado externo dentro del contenido con fines de edición:

  • etiquetas inteligentes
  • Marcado XML personalizado
  • Etiquetas de documentos estructurados

Estos se definen en la cláusula 17.5 de la Parte 1.

Configuración de compatibilidad

Las versiones de Office Open XML contienen lo que se denomina "configuración de compatibilidad". Esta se encuentra en la Parte 4 ("Referencia del lenguaje de marcado") de la primera edición de ECMA-376, pero durante la estandarización se trasladó para convertirse en una nueva parte (también llamada Parte 4) de ISO/IEC 29500:2008 ("Características de migración transitoria").

Estas configuraciones (incluidos elementos con nombres como autoSpaceLikeWord95 , footnoteLayoutLikeWW8 , lineWrapLikeWord6 , mwSmallCaps , shapeLayoutLikeWW8 , suppressTopSpacingWP , truncateFontHeightsLikeWP6 , uiCompat97To2003 , useWord2002TableStyleRules , useWord97LineBreakRules , wpJustification y wpSpaceWidth ) fueron objeto de cierta controversia durante la estandarización de DIS 29500. [ 26 ] Como resultado, se agregó nuevo texto a ISO/IEC 29500 para documentarlas. [ 27 ]

Un artículo de Free Software Magazine criticó el marcado utilizado para estas configuraciones. Office Open XML utiliza elementos con nombres distintos para cada configuración de compatibilidad, cada uno de los cuales se declara en el esquema. Por lo tanto, el repertorio de configuraciones es limitado : para agregar nuevas configuraciones de compatibilidad, puede ser necesario declarar nuevos elementos, "creando potencialmente miles de ellos, ninguno de los cuales tiene relación con la interoperabilidad". [ 28 ]

Extensibilidad

La norma proporciona dos tipos de mecanismos de extensibilidad: Compatibilidad y Extensibilidad de Marcado (MCE), definida en la Parte 3 (ISO/IEC 29500-3:2008), y Listas de Extensión, definidas en la cláusula 18.2.10 de la Parte 1.

Referencias

  1. 1 2 3 Microsoft (26 de febrero de 2008). "Registrar extensiones de archivo en servidores de terceros" . microsoft.com . Consultado el 4 de septiembre de 2009 .
  2. Tom Ngo (11 de diciembre de 2006). "Descripción general de Office Open XML" (PDF) . Ecma International. pág. 6. Consultado el 23 de enero de 2007 . 
  3. Patrick Durusau (21 de octubre de 2008). "Vino viejo en odres nuevos" (PDF) .
  4. Intellisafe Technologies. "Desarrollador de software utiliza Office Open XML para minimizar el espacio de archivo y aumentar la interoperabilidad" (PDF) .
  5. George Ou (27 de abril de 2007). "Comparativa entre MS Office 2007 y Open Office 2.2" . ZDnet.com. Archivado del original el 26 de marzo de 2009. Consultado el 27 de abril de 2007 .
  6. "Diferencias entre el sistema de fechas de 1900 y el de 1904 en Excel" . Microsoft. 5 de marzo de 2013. Consultado el 23 de agosto de 2016 .
  7. Rob Weir (14 de marzo de 2008). "Desarmonía de OOXML" .
  8. John Cherry (14 de marzo de 2008). "OOXML — voto "No, con comentarios" Archivado del original el 22 de agosto de 2009. Consultado el 30 de octubre de 2009 .
  9. 1 2 "Posición de Google sobre OOXML como propuesta de estándar ISO" (PDF) . Google . Febrero de 2008. Archivado del original (PDF) el 18 de agosto de 2010. Si la ISO sometiera a OOXML, con sus 6546 páginas, al mismo nivel de revisión que otros estándares, tardaría 18 años (6576 días para 6546 páginas) en alcanzar niveles de revisión comparables al estándar ODF existente (871 días para 867 páginas), que cumple el mismo propósito y, por lo tanto, constituye una buena comparación. Teniendo en cuenta que OOXML solo ha recibido alrededor del 5,5 % de la revisión a la que se han sometido estándares comparables, los informes sobre inconsistencias, contradicciones e información faltante no resultan sorprendentes.
  10. "OOXML: ¿Cuál es el problema?" . IBM . 19 de febrero de 2008. Archivado del original el 3 de octubre de 2009.
  11. 1 2 "ISO/IEC 29500-1:2016" . ISO e IEC. 1 de noviembre de 2016.
  12. Kyd, Charley (octubre de 2006). "Cómo trabajar con fechas anteriores a 1900 en Excel" . ExcelUser . Consultado el 16 de septiembre de 2009 .
  13. 1 2 "La naturaleza contradictoria de OOXML" . ConsortiumInfo.org. 17 de enero de 2007.
  14. "ECMA-376 2.ª edición Parte 1 (3. Referencias normativas)" . Ecma-international.org . Consultado el 16 de septiembre de 2009 .
  15. "Se ha publicado un nuevo conjunto de propuestas de resoluciones, que incluyen cambios más positivos en los formatos Open XML de la Oficina de Ecma : ahora se proponen resoluciones para más de la mitad de los comentarios de los organismos nacionales" . Ecma-international.org. 11 de diciembre de 2007. Consultado el 16 de septiembre de 2009 . 
  16. Jesper Lund Stocholm (12 de febrero de 2008). "Haz tus cálculos: OOXML y OMML (actualizado el 12 de febrero de 2008)" . Un blog de Mooh Point. Archivado del original el 26 de marzo de 2016. Consultado el 18 de noviembre de 2015 .
  17. Murray Sargent (5 de junio de 2007). "Science and Nature tiene dificultades con las matemáticas de Word 2007" . Blogs de MSDN . Consultado el 31 de julio de 2007 .
  18. David Carlisle (09/05/2007). "XHTML y MathML de Office 2007" . David Carlisle . Consultado el 20/09/2007 .
  19. "Blogs de desarrolladores" .
  20. "Ciencia y Naturaleza abandonan Microsoft Office" . ZDNet Australia. 18 de junio de 2007.
  21. "Blogs de desarrolladores" .
  22. Wouter Van Vugt (1 de noviembre de 2008). "Libro electrónico explicativo de Open XML" . Openxmldeveloper.org. Archivado desde el original el 28 de octubre de 2007 . Consultado el 14 de septiembre de 2007 .
  23. Jelliffe, Rick. "¿Por qué las EMU?" . Blog XML de O'Reilly . O'Reilly. Archivado del original el 29-12-2014 . Recuperado el 19-05-2009 .
  24. "The X Factor" . reddevnews.com. Octubre de 2007.
  25. "VML — el lenguaje de marcado vectorial" . W3.org. 13 de mayo de 1998. Consultado el 19 de mayo de 2009 . 
  26. "Documento técnico sobre ODF/OOXML : un documento basado en una comparación técnica entre los formatos ODF y OOXML" . Revista Free Software. 
  27. "ECMA-376 2.ª edición Parte 4 (párrafo 9.7.3)" . Ecma-international.org . Consultado el 16 de septiembre de 2009 .
  28. "Documento técnico sobre ODF/OOXML : un documento basado en una comparación técnica entre los formatos ODF y OOXML" . Revista Free Software. "... OOXML optó por esta vía. En lugar de crear una etiqueta de configuración definible por la aplicación, existe una etiqueta única para cada configuración... Actualmente, las únicas configuraciones únicas de las aplicaciones que se contemplan son las que los autores del estándar han decidido incluir... Para añadir otras aplicaciones, sería necesario definir más nombres de etiquetas en la especificación, lo que podría generar miles de ellas, cada una sin relación alguna con la interoperabilidad...".