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,