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

Documento XML Aberto do Office
X-office-document.svg
Extensão de nome de arquivo
.docx, .docm
Tipo de mídia da Internet
application / vnd,
openxmlformats-officedocument,
wordprocessingml,
document
Desenvolvido por Microsoft , Ecma , ISO / IEC
Tipo de formato Formato de arquivo de documento
Estendido de XML , DOC , WordProcessingML
Padrão ECMA-376, ISO / IEC 29500
Local na rede Internet ECMA-376 , ISO / IEC 29500: 2008
Apresentação do Office Open XML
X-office-presentation.svg
Extensão de nome de arquivo
.pptx, .pptm
Tipo de mídia da Internet
application / vnd,
openxmlformats-officedocument,
presentationml,
presentation
Desenvolvido por Microsoft , Ecma , ISO / IEC
Tipo de formato Apresentação
Estendido de XML , PPT
Padrão ECMA-376, ISO / IEC 29500
Local na rede Internet ECMA-376 , ISO / IEC 29500: 2008
Livro de trabalho do Office Open XML
X-office-spreadsheet.svg
Extensão de nome de arquivo
.xlsx, .xlsm
Tipo de mídia da Internet
application / vnd,
openxmlformats-officedocument,
spreadsheetml,
sheet
Desenvolvido por Microsoft , Ecma , ISO / IEC
Tipo de formato Planilha
Estendido de XML , XLS , SpreadsheetML
Padrão ECMA-376, ISO / IEC 29500
Local na rede Internet ECMA-376 , ISO / IEC 29500: 2008

Os formatos de arquivo Office Open XML são um conjunto de formatos de arquivo que podem ser usados ​​para representar documentos eletrônicos de escritório . Existem formatos para documentos de processamento de texto , planilhas e apresentações , bem como formatos específicos para materiais como fórmulas matemáticas, gráficos, bibliografias etc.

Os formatos foram desenvolvidos pela Microsoft e apareceram pela primeira vez no Microsoft Office 2007 . Eles foram padronizados entre dezembro de 2006 e novembro de 2008, primeiro pelo consórcio Ecma International , onde se tornaram ECMA-376, e posteriormente, após um processo de padronização contencioso , pelo Comitê Técnico Conjunto 1 da ISO / IEC, onde se tornaram ISO / IEC 29500 : 2008.

Recipiente

Estrutura do contêiner da Parte 2 do padrão Ecma Office Open XML, ECMA-376

Os documentos Office Open XML são armazenados em pacotes Open Packaging Conventions (OPC), que são arquivos ZIP contendo XML e outros arquivos de dados, junto com uma especificação das relações entre eles. Dependendo do tipo de documento, os pacotes têm diferentes estruturas e nomes de diretórios internos. Um aplicativo usará os arquivos de relacionamento para localizar seções individuais (arquivos), com cada uma tendo metadados de acompanhamento, em particular metadados MIME .

Um pacote básico contém um arquivo XML chamado [Content_Types] .xml na raiz, junto com três diretórios: _rels , docProps e um diretório específico para o tipo de documento (por exemplo, em um pacote de processamento de texto .docx, haveria um diretório de palavras ). A palavra diretório contém o arquivo document.xml, que é o conteúdo principal do documento.

[Content_Types] .xml
Este arquivo forneceu informações de tipo MIME para partes do pacote, usando padrões para certas extensões de arquivo e substituições para partes especificadas pelo IRI .
_rels
Este diretório contém relacionamentos para os arquivos do pacote. Para encontrar os relacionamentos para um arquivo específico, procure o diretório _rels que é irmão do arquivo e, a seguir, um arquivo que tenha o nome do arquivo original com um .rels anexado a ele. Por exemplo, se o arquivo de tipos de conteúdo tivesse qualquer relacionamento, haveria um arquivo chamado [Content_Types] .xml.rels dentro do diretório _rels .
_rels / .rels
Este arquivo é onde os relacionamentos do pacote estão localizados. Os aplicativos olham aqui primeiro. Visualizando em um editor de texto, verá que descreve cada relação para aquela seção. Em um documento mínimo contendo apenas o arquivo document.xml básico , os relacionamentos detalhados são metadados e document.xml .
docProps / core.xml
Este arquivo contém as propriedades principais de qualquer documento Office Open XML.
word / document.xml
Este arquivo é a parte principal de qualquer documento do Word.

Relacionamentos

Um exemplo de arquivo de relacionamento ( word / _rels / document.xml.rels ) é:

<?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, as imagens referenciadas no documento podem ser encontradas no arquivo de relacionamento procurando por todos os relacionamentos que são do tipo http://schemas.microsoft.com/office/2006/relationships/image. Para alterar a imagem usada, edite o relacionamento.

O código a seguir mostra um exemplo de marcação embutida para um hiperlink :

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

Neste exemplo, o Localizador Uniforme de Recursos (URL) está no atributo Destino do Relacionamento referenciado por meio do Id de relacionamento, "rId2" neste caso. Imagens, modelos e outros itens vinculados são referenciados da mesma maneira.

As imagens podem ser incorporadas ou vinculadas usando uma tag:

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

Esta é a referência ao arquivo de imagem. Todas as referências são gerenciadas por meio de relacionamentos. Por exemplo, um document.xml tem um relacionamento com a imagem. Existe um diretório _rels no mesmo diretório que document.xml, dentro de _rels está um arquivo chamado document.xml.rels. Neste arquivo haverá uma definição de relacionamento que contém tipo, ID e localização. O ID é o ID referenciado usado no documento XML. O tipo será uma definição de esquema de referência para o tipo de mídia e o local será um local interno dentro do pacote ZIP ou um local externo definido com um URL.

Propriedades do documento

O Office Open XML usa o Dublin Core Metadata Element Set e DCMI Metadata Terms para armazenar propriedades de documentos. Dublin Core é um padrão para descrição de recursos de informações de domínio cruzado e é definido na ISO 15836: 2003 .

Um exemplo de arquivo de propriedades de documento ( docProps / core.xml ) que usa metadados Dublin Core é:

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

Linguagens de marcação de documento

Um arquivo Office Open XML pode conter vários documentos codificados em linguagens de marcação especializadas correspondentes a aplicativos dentro da linha de produtos do Microsoft Office. O Office Open XML define vários vocabulários usando 27 namespaces e 89 módulos de esquema .

As principais linguagens de marcação são:

  • WordprocessingML para processamento de texto
  • SpreadsheetML para planilhas
  • PresentationML para apresentações

Os materiais de linguagem de marcação compartilhada incluem:

  • Office Math Markup Language (OMML)
  • DrawingML usado para desenho vetorial, gráficos e, por exemplo, arte de texto (além disso, embora obsoleto, VML é compatível com desenho)
  • Propriedades estendidas
  • Propriedades personalizadas
  • Tipos de Variante
  • Propriedades de dados XML personalizadas
  • Bibliografia

Além das linguagens de marcação acima, esquemas XML personalizados podem ser usados ​​para estender o Office Open XML.

Abordagem de design

Patrick Durusau, o editor do ODF , viu o estilo de marcação de OOXML e ODF como representando dois lados de um debate: o "lado do elemento" e o "lado do atributo". Ele observa que OOXML representa "o lado do elemento desta abordagem" e destaca o KeepNextelemento como exemplo:

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

Em contraste, ele observa que o ODF usaria o único atributo fo:keep-next, em vez de um elemento, para a mesma semântica.

O esquema XML do Office Open XML enfatiza a redução do tempo de carregamento e o aprimoramento da velocidade de análise . Em um teste com aplicativos atuais em abril de 2007, os documentos de escritório baseados em XML demoraram mais para carregar do que os formatos binários. Para melhorar o desempenho, o Office Open XML usa nomes de elemento muito curtos para elementos comuns e planilhas salvam datas como números de índice (começando em 1900 ou 1904). Para ser sistemático e genérico, o Office Open XML normalmente usa elementos filhos separados para dados e metadados (nomes de elementos que terminam em Pr para propriedades ) em vez de usar vários atributos, o que permite propriedades estruturadas. O Office Open XML não usa conteúdo misto, mas usa elementos para colocar uma série de execuções de texto (nome do elemento r ) em parágrafos (nome do elemento p ). O resultado é conciso e altamente aninhado em contraste com o HTML , por exemplo, que é bastante simples, projetado para humanos escreverem em editores de texto e é mais adequado para humanos lerem.

A nomeação de elementos e atributos dentro do texto atraiu algumas críticas. Existem três sintaxes diferentes em OOXML (ECMA-376) para especificar a cor e o alinhamento do texto, dependendo se o documento é um texto, uma planilha ou uma apresentação. Rob Weir (um funcionário da IBM e co-presidente do OASIS OpenDocument Format TC) pergunta "Qual é a justificativa de engenharia para esse horror?". Ele contrasta com o OpenDocument : "O ODF usa o vocabulário XSL-FO do W3C para definir o estilo do texto e usa esse vocabulário de maneira consistente".

Alguns argumentaram que o design se baseia muito nos aplicativos da Microsoft. Em agosto de 2007, a Linux Foundation publicou uma postagem no blog convocando os Órgãos Nacionais ISO para votar "Não, com comentários" durante a Padronização Internacional de OOXML. Ele disse: "OOXML é uma porta direta dos formatos de documentos binários de um único fornecedor. Isso evita a reutilização de padrões internacionais existentes (por exemplo, vários algoritmos criptográficos, VML, etc.). Existem literalmente centenas de falhas técnicas que deveriam ser tratadas antes de padronização do OOXML incluindo o uso continuado de código binário ligada a características específicas plataforma, propagação bugs no MS-Office na norma, as unidades de propriedade, as referências a marcas proprietárias / confidenciais, claro IP e direitos de patentes, e muito mais".

A versão do padrão submetida ao JTC 1 tinha 6.546 páginas. A necessidade e adequação de tal comprimento tem sido questionada. O Google afirmou que "o padrão ODF, que atinge o mesmo objetivo, é de apenas 867 páginas"

WordprocessingML (WML)

Os documentos de processamento de texto usam o vocabulário XML conhecido como WordprocessingML, definido normativamente pelo esquema wml.xsd que acompanha o padrão. Este vocabulário é definido na cláusula 11 da Parte 1.

SpreadsheetML (SML)

Os documentos de planilha usam o vocabulário XML conhecido como SpreadsheetML, definido normativamente pelo esquema sml.xsd que acompanha o padrão. Este vocabulário é descrito na cláusula 12 da Parte 1.

Cada planilha em uma planilha é representada por um documento XML com um elemento raiz nomeado <worksheet>...</worksheet>no http://schemas.openxmlformats.org/spreadsheetml/2006/main Namespace.

A representação de valores de data e hora em SpreadsheetML atraiu algumas críticas. ECMA-376 1ª edição não está em conformidade com a ISO 8601: 2004 "Representação de datas e horas". Exige que as implementações replicem um bug do Lotus 1-2-3 que trata, erroneamente, 1900 como um ano bissexto. Os produtos em conformidade com ECMA-376 seriam obrigados a usar a função de planilha WEEKDAY () e, portanto, atribuir datas incorretas a alguns dias da semana e também calcular mal o número de dias entre certas datas. ECMA-376 2ª edição (ISO / IEC 29500) permite o uso de 8601: 2004 "Representação de datas e horas" além do formato compatível com bug do Lotus 1-2-3.

Office MathML (OMML)

Office Math Markup Language é uma linguagem de marcação matemática que pode ser incorporada no WordprocessingML, com suporte intrínseco para incluir marcação de processamento de texto como marcações de revisão, notas de rodapé, comentários, imagens e formatação e estilos elaborados. O formato OMML é diferente da recomendação MathML do World Wide Web Consortium (W3C), que não oferece suporte a esses recursos de escritório, mas é parcialmente compatível por meio de Transformações XSL ; as ferramentas são fornecidas com o pacote de escritório e são usadas automaticamente por meio de transformações da área de transferência.

O seguinte exemplo do Office MathML define a fração :

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

Alguns questionaram a necessidade do Office MathML (OMML) em vez de defender o uso de MathML , uma recomendação do W3C para a "inclusão de expressões matemáticas em páginas da Web" e "comunicação de máquina para máquina". Murray Sargent respondeu a algumas dessas questões em uma postagem de blog, que detalha algumas das diferenças filosóficas entre os dois formatos.

DrawingML

Exemplo de gráficos DrawingML

DrawingML é a linguagem de marcação de gráficos vetoriais usada em documentos Office Open XML. Seus principais recursos são a renderização gráfica de elementos de texto, elementos de forma baseados em vetores gráficos, tabelas e gráficos gráficos.

A tabela DrawingML é o terceiro modelo de tabela no Office Open XML (próximo aos modelos de tabela em WordprocessingML e SpreadsheetML) e é otimizada para efeitos gráficos e seu principal uso é em apresentações criadas com marcação PresentationML. O DrawingML contém efeitos gráficos (como sombras e reflexos) que podem ser usados ​​nos diferentes elementos gráficos usados ​​no DrawingML. No DrawingML você também pode criar efeitos 3D, por exemplo, para mostrar os diferentes elementos gráficos através de um ponto de vista de câmera flexível. É possível criar partes separadas do tema DrawingML em um pacote Office Open XML. Esses temas podem ser aplicados a elementos gráficos em todo o pacote Office Open XML.

O DrawingML não está relacionado a outros formatos de gráficos vetoriais , como SVG . Eles podem ser convertidos em DrawingML para incluir nativamente em um documento Office Open XML. Esta é uma abordagem diferente do formato OpenDocument , que usa um subconjunto de SVG e inclui gráficos vetoriais como arquivos separados.

As dimensões de um gráfico DrawingML são especificadas em unidades métricas inglesas (EMUs). É assim chamado porque permite uma representação comum exata das dimensões originalmente em unidades inglesas ou métricas - definidas como 1/360.000 de centímetro e, portanto, há 914.400 EMUs por polegada e 12.700 EMUs por ponto , para evitar arredondamento nos cálculos. Rick Jelliffe favorece EMUs como uma solução racional para um conjunto particular de critérios de design.

Alguns criticaram o uso de DrawingML (e o VML de uso transicional apenas ) em vez da recomendação do W3C SVG . O VML não se tornou uma recomendação do W3C.

Recursos estrangeiros

Conteúdo não XML

Os documentos OOXML são normalmente compostos de outros recursos além do conteúdo XML (gráficos, vídeo, etc.).

Alguns criticaram a escolha do formato permitido para tais recursos: ECMA-376 1ª edição especifica "Embedded Object Image Requests Types" e "Clipboard Format Types", que se referem a Windows Metafiles ou Enhanced Metafiles  - cada um dos quais são formatos proprietários que têm dependências embutidas no próprio Windows . Os críticos afirmam que o padrão deveria ter feito referência ao padrão de plataforma neutra ISO / IEC 8632 " Computer Graphics Metafile ".

Marcação estrangeira

O padrão fornece três mecanismos para permitir que marcação estrangeira seja incorporada ao conteúdo para fins de edição:

  • Etiquetas inteligentes
  • Marcação XML personalizada
  • Tags de documento estruturado

Estes são definidos na cláusula 17.5 da Parte 1.

Configurações de compatibilidade

As versões do Office Open XML contêm o que é denominado "configurações de compatibilidade". Eles estão contidos na Parte 4 ("Referência de linguagem de marcação") da ECMA-376 1ª Edição, mas durante a padronização foram movidos para se tornarem uma nova parte (também chamada de Parte 4) da ISO / IEC 29500: 2008 ("Recursos de migração de transição") .

Essas configurações (incluindo elemento com nomes como autoSpaceLikeWord95 , footnoteLayoutLikeWW8 , lineWrapLikeWord6 , mwSmallCaps , shapeLayoutLikeWW8 , suppressTopSpacingWP , truncateFontHeightsLikeWP6 , uiCompat97To2003 , useWord2002TableStyleRules , useWord97LineBreakRules , wpJustification e wpSpaceWidth ) foram o foco de alguma controvérsia durante a padronização do DIS 29500. Como resultado, novo texto foi adicionado à ISO / IEC 29500 para documentá-los.

Um artigo na Free Software Magazine criticou a marcação usada para essas configurações. O Office Open XML usa elementos com nomes distintos para cada configuração de compatibilidade, cada um deles declarado no esquema. O repertório de configurações é, portanto, limitado - para novas configurações de compatibilidade a serem adicionadas, novos elementos podem precisar ser declarados, "potencialmente criando milhares deles, cada um não tendo nada a ver com interoperabilidade".

Extensibilidade

O padrão fornece dois tipos de mecanismo de extensibilidade, Compatibilidade de Marcação e Extensibilidade (MCE) definida na Parte 3 (ISO / IEC 29500-3: 2008) e Listas de Extensão definidas na cláusula 18.2.10 da Parte 1.

Referências