Visão Geral do Office Open XML

networking… estava em um dos corredores da Microsoft @ São Paulo, no Encontro de Estudantes Parceiros Microsoft (ainda não tive tempo de postar), conversando com o Roberto Prado e o Lucas Campos sobre as possibilidades de um evento em Brasília quando ficamos sabendo de dois eventos sobre o OpenXML voltados para gerentes e desenvolvedores (manhã e tarde, respectivamente). O evento foi especial da Microsoft para as Empresas Partner Microsoft mas acredito que a grande maioria nem ficou sabendo, pois haviam algumas maquinas vazias.

O evento foi ontem (12/09) e conseguimos (Lucas Campos, Luiz Gonzaguinha e eu) a liberação e fomos. O Gonzaguinha foi no período matutino, onde o evento ocorreu para gerentes, dando uma visão de negócio. A tarde, tivemos a mão-na-massa com os desenvolvedores. O evento da tarde teve como instrutor o Leandro Jekimim Goulart (parabéns pela excelente apresentação).

Gostaria de compartilhar com vocês determinados conteúdos. Hoje, conversando com dois desenvolvedores Adobe/Java, ouvi a resposta: “Bruno, entrega esse folder pra alguém de .NET que vai ser melhor” e pensei “Deus, depois de conversar sobre INTEROPERABILIDADE e das possibilidades de se trabalhar com o padrão seja através de .net, asp.net, php, java, flex, etc., vamos lanchar! Depois eu apresento o WordprocessingML mínimo“, kwk.

1. Introdução

O Office Open XML é um padrão aberto proposto para documentos produzidos em processadores de texto, apresentações e planilhas, que pode ser livremente implementado em diversas plataformas e aplicativos. A sua publicação beneficia organizações que pretendem implementar aplicativos que usem o formato, entidades públicas e privadas que compram esse tipo de software, profissionais ou escritores. Por fim, todos s usuários desfrutarão os benefícios do padrão XML nos documentos, como estabilidade, preservação de recursos existentes (legado), interoperabilidade e evolução contínua.

A padronização do OpenXML foi realizada pelo Technical Committee 45 (TC45) da Ecma International, formado por representantes da Apple (Já é suportado no IPHONE da Apple), Intel, Microsoft, NextPage, Novell, Toshiba, etc.

2. Finalidades do Padrão

O OpenXML foi inteiramente projetado para representar com fidelidade o corpus preexistente de documentos de processadores de texto, apresentações e planilhas, codificados em formatos binários definidos pela Microsoft. O processo de padronização consistiu em incorporar de forma precisa, no XML, as capacidades necessárias para representar o corpus existente e apliá-lo, oferecer documentação detalhada e viabilizar a interoperabilidade. Até a elaboração do padrão, é estimado em 40 bilhões de documentos.

As infra-estruturas modernas de redes, hardware e padrões (em especial o XML) permitem um novo projeto que favorece a implementação por vários fornecedores em diversas plataformas e, em outras palavras, abre as portas para a evolução.

Paralelamente aos avanços tecnológicos, s mercados diversificaram-se e passaram a incluir uma nova gama de aplicações não contepladas originalmente pelo universo simples dos programas de edição de documentos. Essas novas aplicações:

  • Automaticamente geram documentos de dados empresariais
  • Extraem dados empresariais de documentos e alimentam aplicações
  • Fornecem acesso a populações de usuários com necessidades especiais
  • São executadas em uma variedade de hardware

Talvez a questão mais importante seja a preservação de longa duração. A preservação do investimento financeiro e intelectual nesses documentos (existentes e novos) tornou-se uma prioridade premente.

Existem diversos padrões e especificações para documentos: HTML, XHTML, PDF, ODF, DocBook, RTF. O OpenXML responde à necessidade de criar um padrão que abranja os recursos existentes no corpus atual de documentos.

3. Propriedades do Padrão

  • Interoperabilidade: O OpenXML independe de formatos, recursos e ambientes de execução priprietários, deixando aos desenvolvedores uma ampla gama de opções.
  • Internacionalização: Maneiras representativas pelas quais o OpenXML é compatível com cada grupo principal de linguagem (orientação do texto, fluxo do texto, representação de números, etc).
  • Facilidade de adoção pelo desenvolvedor e Modularidade: Pequena curva de aprendizagem e gama de opções
  • .

  • Migração de alta fidelidade: O OpenXML cumpre a vasta meta de preservar as informaçõs, nos documentos existentes e novos/
  • Integração com dados empresariais: O OpenXML incorpora as informações empresariais em esquemas (schemas) personalizados, para permitir a sua integração e reutilização entre aplicativos de produtividade e sistema de informações.
  • Espaço para inovação: prepare-se para o futuro. Mecanismos adicionais de extensibilidade e a disponibilização da interoperabilidade aos aplicativos com conjuntos de recursos diferentes.

A explosiva diversificação das demandas do mercado, incluindo os significativos investimentos existentes em sistemas de missão crítica, torna o padrão essencial.

Esse foi um texto bacana falando um pouco do que é o OpenXML e eu termino aqui com a demonstração de um documento WordprocessingML Mínimo:

Arquivo nome: .rels (sem extensão)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
  <Relationship Id="MyRelationship" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="document.xml"/>
</Relationships>

Arquivo nome Content_Types.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
  <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
  <Override PartName="/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>
</Types>

Arquivo nome document.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:wordDocument xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">

<w:body>
  <w:p>
    <w:r>
      <w:t>Interoperabilidade OpenXML!</w:t>
    </w:r>
  </w:p>
</w:body>

</w:wordDocument>

Instruções:

1. Crie os três arquivos citados.
2. Crie uma pasta chamada “_rels” e adicione o arquivo “.rels” dentro dela.
3. Compacte os três arquivos (content type, document.xml e a pasta _rels) para zip
4. renomeie para DOCX

Para saber mais:

http://www.openxmlcommunity.org/
http://www.openxmldeveloper.org/
http://www.codeplex.com/NDOS/Wiki/View.aspx
http://www.porta25.com.br/
http://www.microsoft.com/opensource/

até a próxima dica de OpenXML apresentando uma visão mais técnica,

Leave a Reply