Formatos de archivo Office Open XML - Office Open XML file formats

Documento XML abierto de Office
X-office-document.svg
Extensión de nombre de archivo
.docx, .docm
Tipo de medio de Internet
aplicación / vnd,
openxmlformats-officedocument, wordprocessingml
,
documento
Desarrollado por Microsoft , Ecma , ISO / IEC
Tipo de formato Formato de archivo de documento
Extendido desde XML , DOC , WordProcessingML
Estándar ECMA-376, ISO / IEC 29500
Sitio web ECMA-376 , ISO / IEC 29500: 2008
Presentación de Office Open XML
X-office-presentation.svg
Extensión de nombre de archivo
.pptx, .pptm
Tipo de medio de Internet
application / vnd,
openxmlformats-officedocument,
presentationml,
presentación
Desarrollado por Microsoft , Ecma , ISO / IEC
Tipo de formato Presentación
Extendido desde XML , PPT
Estándar ECMA-376, ISO / IEC 29500
Sitio web ECMA-376 , ISO / IEC 29500: 2008
Libro de trabajo XML abierto de Office
X-office-spreadsheet.svg
Extensión de nombre de archivo
.xlsx, .xlsm
Tipo de medio de Internet
application / vnd,
openxmlformats-officedocument,
spreadsheetml,
sheet
Desarrollado por Microsoft , Ecma , ISO / IEC
Tipo de formato Hoja de cálculo
Extendido desde XML , XLS , SpreadsheetML
Estándar ECMA-376, ISO / IEC 29500
Sitio web ECMA-376 , ISO / IEC 29500: 2008

Los formatos de archivo Office Open XML son un conjunto de formatos de archivo que se pueden utilizar para representar documentos de oficina electrónicos . Existen formatos para documentos procesadores de texto , hojas de cálculo y presentaciones , así como formatos específicos para material 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, después de un contencioso proceso de estandarización , por el Comité Técnico Conjunto 1 de ISO / IEC, donde se convirtieron en ISO / IEC 29500. : 2008.

Envase

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. Dependiendo del tipo de documento, los paquetes tienen diferentes estructuras y nombres de directorios internos. Una aplicación utilizará los archivos de relaciones para localizar secciones individuales (archivos), cada una con metadatos adjuntos, 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 de palabras ). El directorio de palabras contiene el archivo document.xml , que es el contenido principal del documento.

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

Relaciones

Un archivo de relación de ejemplo ( 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>

Como tal, 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, el localizador uniforme de recursos (URL) está en el atributo de destino de la relación a la que se hace referencia a través de la identificación de la relación, "rId2" en este caso. Las imágenes vinculadas, las plantillas y otros elementos se referencian de la misma manera.

Las imágenes se pueden incrustar o vincular mediante una etiqueta:

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

Esta es la referencia al archivo de imagen. Todas las referencias se gestionan mediante relaciones. Por ejemplo, un document.xml tiene una relación con la imagen. Hay un directorio _rels en el mismo directorio que document.xml, dentro de _rels hay un archivo llamado document.xml.rels. En este archivo habrá una definición de relación que contiene el tipo, la identificación y la ubicación. El ID es el ID de referencia utilizado en el documento XML. El tipo será una definición de 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 con 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 del documento. Dublin Core es un estándar para la descripción de recursos de información entre dominios y se define en ISO 15836: 2003 .

Un archivo de propiedades de documento de ejemplo ( docProps / core.xml ) que usa metadatos 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>File format and structure</dc:subject>
 <dc:creator>Wikipedia</dc:creator>
 <cp:keywords>Office Open XML, Metadata, Dublin Core</cp:keywords>
 <dc:description>Office Open XML uses 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>Document file format</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 correspondientes a aplicaciones dentro de la línea de productos de Microsoft Office. Office Open XML define varios vocabularios utilizando 27 espacios de nombres y 89 módulos de esquema .

Los lenguajes de marcado principales son:

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

Los materiales de lenguaje de marcado compartido incluyen:

  • Lenguaje de marcado matemático de Office (OMML)
  • DrawingML utilizado para dibujo vectorial, gráficos y, por ejemplo, arte de texto (además, aunque obsoleto, VML es compatible para dibujar)
  • Propiedades extendidas
  • Propiedades personalizadas
  • Tipos de variantes
  • Propiedades de datos XML personalizadas
  • Bibliografía

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

Enfoque de diseño

Patrick Durusau, editor de ODF , ha considerado que el estilo de marcado de OOXML y ODF representa dos lados de un debate: el "lado del elemento" y el "lado del atributo". Señala que OOXML representa "el lado del elemento de este enfoque" y destaca el KeepNextelemento como ejemplo:

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

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

El esquema XML de Office Open XML enfatiza la reducción del tiempo de carga y la mejora de la velocidad de análisis . En una prueba con aplicaciones actualizadas en abril de 2007, los documentos de Office basados ​​en XML se cargaron más lentamente que los formatos binarios. Para mejorar el rendimiento, Office Open XML utiliza nombres de elementos muy cortos para elementos comunes y las hojas de cálculo guardan las fechas como números de índice (a partir de 1900 o desde 1904). Para ser sistemático y genérico, Office Open XML generalmente usa elementos secundarios separados para datos y metadatos (nombres de elementos que terminan en Pr para propiedades ) en lugar de usar múltiples atributos, lo que permite propiedades estructuradas. Office Open XML no usa contenido mixto, pero usa elementos para colocar una serie de ejecuciones de texto (nombre del elemento r ) en párrafos (nombre del 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 de leer para los humanos.

La denominación de elementos y atributos dentro del texto ha suscitado algunas críticas. Hay tres sintaxis diferentes en OOXML (ECMA-376) para especificar el color y la alineación del texto dependiendo de si el documento es un texto, una hoja de cálculo o una presentación. Rob Weir (un empleado de IBM y copresidente de OASIS OpenDocument Format TC) pregunta "¿Cuál es la justificación de ingeniería para este horror?". Contrasta con OpenDocument : "ODF usa el vocabulario XSL-FO del W3C para el estilo de texto, y usa este vocabulario de manera consistente".

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 pedía a los Organismos Nacionales de ISO que votaran "No, con comentarios" durante la Estandarización Internacional de OOXML. Decía, "OOXML es un puerto directo de los formatos de documentos binarios de un solo proveedor. Evita la reutilización de estándares internacionales existentes relevantes (por ejemplo, varios algoritmos criptográficos, VML, etc.). Hay literalmente cientos de fallas técnicas que deberían ser se abordó antes de estandarizar OOXML, incluido el uso continuo de código binario vinculado a características específicas de la plataforma, propagación de errores en MS-Office en las unidades patentadas estándar, referencias a etiquetas patentadas / confidenciales, propiedad intelectual y derechos de patente poco claros , y mucho más ".

La versión de la norma presentada al JTC 1 tenía 6546 páginas. Se ha cuestionado la necesidad y conveniencia de tal extensión. Google declaró que "el estándar ODF, que logra el mismo objetivo, tiene solo 867 páginas".

WordprocessingML (WML)

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

SpreadsheetML (SML)

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

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

La representación de los valores de fecha y hora en SpreadsheetML ha atraído algunas críticas. ECMA-376 1ª edición no se ajusta a ISO 8601: 2004 "Representación de fechas y horas". Requiere que las implementaciones repliquen un error de Lotus 1-2-3 que trata erróneamente 1900 como un año bisiesto. Los productos que cumplan con ECMA-376 tendrían que utilizar la función de hoja de cálculo WEEKDAY () y, por lo tanto, asignar fechas incorrectas a algunos días de la semana y también calcular mal el número de días entre determinadas fechas. ECMA-376 2ª edición (ISO / IEC 29500) permite el uso de 8601: 2004 "Representación de fechas y horas" además del formulario Lotus 1-2-3 compatible con errores.

Office MathML (OMML)

Office Math Markup Language es un lenguaje de marcado matemático que se puede incrustar en WordprocessingML, con soporte intrínseco para incluir marcado de procesamiento de texto como marcas de revisión, notas al pie, comentarios, imágenes y formatos y estilos elaborados. El formato OMML es diferente de la recomendación MathML del World Wide Web Consortium (W3C) que no admite esas funciones de oficina, pero es parcialmente compatible a través de Transformaciones XSL ; Las herramientas se proporcionan con la suite ofimática y se utilizan automáticamente mediante transformaciones del portapapeles.

El siguiente ejemplo de Office MathML define la fracción :

<m:oMathPara><!-- mathematical block container used as a paragraph -->
  <m:oMath><!-- mathematical inline formula -->
    <m:f><!-- a fraction -->
      <m:num><m:r><m:t>π</m:t></m:r></m:num><!-- numerator containing a single run of text -->
      <m:den><m:r><m:t>2</m:t></m:r></m:den><!-- denominator containing a single run of text -->
    </m:f>
  </m:oMath>
</m:oMathPara>

Algunos han cuestionado la necesidad de Office MathML (OMML) en lugar de abogar 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 de máquina a máquina". Murray Sargent ha respondido a algunos de estos problemas en una publicación de blog, que detalla algunas de las diferencias filosóficas entre los dos formatos.

DrawingML

Ejemplo de gráficos de DrawingML

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

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

DrawingML no está relacionado 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 es un enfoque diferente al del formato OpenDocument , que usa un subconjunto de SVG e incluye gráficos vectoriales como archivos separados.

Las dimensiones de un gráfico DrawingML se especifican en unidades métricas inglesas (EMU). Se llama así porque permite una representación común exacta de las dimensiones originalmente en unidades inglesas o métricas, definidas como 1 / 360.000 de un centímetro , y por lo tanto hay 914.400 EMU por pulgada y 12.700 EMU por punto , para evitar el redondeo. en los cálculos. Rick Jelliffe favorece las EMU como una solución racional para un conjunto particular de criterios de diseño.

Algunos han criticado el uso de DrawingML (y el VML de solo uso transitorio ) en lugar de la recomendación de W3C SVG . VML no se convirtió en una recomendación del W3C.

Recursos extranjeros

Contenido no XML

Los documentos OOXML generalmente se componen de otros recursos además del contenido XML (gráficos, video, etc.).

Algunos han criticado la elección del formato permitido para tales recursos: ECMA-376 1.ª edición especifica "Tipos de solicitudes de imágenes alternativas de objetos incrustados" y "Tipos de formato de portapapeles", que se refieren a metarchivos de Windows o metarchivos mejorados  , cada uno de los cuales son formatos propietarios que tienen dependencias codificadas en el propio Windows . Los críticos afirman que el estándar debería haber hecho referencia al estándar de plataforma neutral ISO / IEC 8632 " Computer Graphics Metafile ".

Marcado extranjero

El Estándar proporciona tres mecanismos para permitir que se incrusten marcas extranjeras en el 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.

Configuraciones de compatibilidad

Las versiones de Office Open XML contienen lo que se denomina "configuración de compatibilidad". Estos están contenidos en la Parte 4 ("Referencia del lenguaje de marcado") de ECMA-376 1st Edition, pero durante la estandarización se movieron para convertirse en una nueva parte (también llamada Parte 4) de ISO / IEC 29500: 2008 ("Características de migración de transición") .

Estos ajustes (incluyendo el elemento con nombres como autoSpaceLikeWord95 , footnoteLayoutLikeWW8 , lineWrapLikeWord6 , mwSmallCaps , shapeLayoutLikeWW8 , suppressTopSpacingWP , truncateFontHeightsLikeWP6 , uiCompat97To2003 , useWord2002TableStyleRules , useWord97LineBreakRules , wpJustification y wpSpaceWidth ) fueron el foco de controversia durante la normalización de la DIS 29500. Como resultado, Se agregó un nuevo texto a ISO / IEC 29500 para documentarlos.

Un artículo de la Revista de software libre ha criticado 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 que se agreguen nuevas configuraciones de compatibilidad, es posible que sea necesario declarar nuevos elementos, "creando potencialmente miles de ellos, cada uno de los cuales no tiene nada que ver con la interoperabilidad".

Extensibilidad

El estándar proporciona dos tipos de mecanismo de extensibilidad, compatibilidad y extensibilidad de marcado (MCE) definido 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