Desarrollo de Soluciones Utilizando los Formatos de Archivo Open XML de Microsoft Office System 2007 Microsoft Corporation.

1 2 ...
Author: María Cristina Montoya Pinto
0 downloads 0 Views

1

2 Desarrollo de Soluciones Utilizando los Formatos de Archivo Open XML de Microsoft Office System 2007 Microsoft Corporation

3 Agenda Anticipo de DEMOAnticipo de DEMO Formato Office Open XMLFormato Office Open XML Papel de XML dentro de los documentos OfficePapel de XML dentro de los documentos Office Información estructuralInformación estructural Ventajas en Open XML para desarrolladoresVentajas en Open XML para desarrolladores Alcance de la plataformaAlcance de la plataforma DEMO (ver código)DEMO (ver código)

4 Escenarios de ejemplo Interoperabilidad de datosInteroperabilidad de datos Manipulación de contenidosManipulación de contenidos Compartir y reutilizar contenidosCompartir y reutilizar contenidos Ensamblado del documentoEnsamblado del documento Seguridad del documentoSeguridad del documento Manejo de información sensibleManejo de información sensible Estilos del documentoEstilos del documento Análisis del documentoAnálisis del documento

5 Formato Office Open XML

6 Formatos Office Open XML Nuevo formato para Microsoft Word, Excel y PowerPointNuevo formato para Microsoft Word, Excel y PowerPoint –Los nuevos formatos serán los formatos por defecto, con nuevas extensiones de archivo (.docx;.pptx;.xlsx) –Completamente -100%- compatible con los formatos existentes El formato abierto y basado en protocolos estándar mejora la interoperabilidadEl formato abierto y basado en protocolos estándar mejora la interoperabilidad –XML Transparente, el formato XML permite nuevos panoramas de integración para los documentos y los sistemas de Line Of Business –ZIP La compresión ZIP del paquete resuelve simultáneamente la visión de único archivo para los usuarios y el acceso estándar a cada compenente por parte de los desarrolladores –100% Free Covenant not to sue: Toda utilización del formato queda 100% libre de derechos

7 Formatos Office Open XML EstandarizaciónEstandarización –Ecma internacional - TC45 creado para documentar completamente Open XML –Los miembros incluyen: Apple, Barclays Capital, BP, the British Library, Essilor, Intel Corporation, NextPage Inc., Statoil ASA y Toshiba –La especificación actual está ya en el orden de 2000 páginas Desarrolladores: NO hay límitesDesarrolladores: NO hay límites –Las soluciones que creen podrán leer, escribir, y modificar íntegramente el contenido de los archivos de Microsoft Office (sin la necesidad de las APIs de Office)

8 Formatos Office Open XML Ventajas agregadas: compactación y robustezVentajas agregadas: compactación y robustez –El contenedor ZIP permite la compresión estándar en todos los archivos y produce mejoras dramáticas en su tamaño sin esfuerzo del usuario –Los archivos considerablemente más robustos ayudan a reducir al mínimo la pérdida de datos Compatible hacia atrás: Microsoft Office 2000, Microsoft Office XP, Microsoft Office 2003Compatible hacia atrás: Microsoft Office 2000, Microsoft Office XP, Microsoft Office 2003 –Complementos de compatibilidad disponibles en el lanzamiento –100%: Grabar, Leer, Modificar Soporte de herencia: seguirá el soporte actual a formatos binarios Microsoft Office 97 - 2003Soporte de herencia: seguirá el soporte actual a formatos binarios Microsoft Office 97 - 2003 –El soporte para los formatos anteriores no cambia

9 Papel de XML dentro de los documentos Office

10 El rol de XML en los Documentos EscenarioEjemplo Ensamblado de documentos Construcción Server-based o User-assisted de documentos originados en contenidos provenientes de todo origen (incluyendo bases de datos, servicios, archivos, etc.) Crear reportes de ventas desde financieros hasta de pronóstico utilizando datos provenientes de un CRM Reutilización de contenido Es mucho más fácil mover información entre documentos, inclusive entre diferentes tipos de documentos o mucho más aún. Aplique contenido almacenado en documentos Word a páginas Web rápida y eficientemente Marcado de documentos Metadata específica puede ser añadida para proveer soluciones personalizadas Marque presentaciones usando una taxonomía especifica y mejore la eficiencia del manejo de conocimiento Consulta de documentos Es natural buscar información en repositorios de documentos basados en custom data, content types o metadata Buscar en todos los documentos un contacto específico, o una empresa o… Depuración de documentos Remover contenido no deseado como comentarios o código embebido cuando sea necesario Remover las revisiones y los comentarios de un documento cuando se publica

11 El rol de XML Reference y Custom-defined Schemas Custom-defined Schemas Data-oriented (por ejemplo Precio, Factura) Representan información de negocios dentro del documento Favorecen la integración de sistemas XML Reference Schemas Display-oriented (por ejemplo Bold, Italics, Tables, Paragraphs, Styles) Abierto Favorece el archivamiento y la interoperabilidad

12 El rol de XML Reference Schemas John Doe Health Agency XML Reference Schemas Display-oriented (por ejemplo Bold, Italics, Tables, Paragraphs, Styles) Abierto Favorece el archivamiento y la interoperabilidad

13 3/24/2004 Health Agency 100 25% … El rol de XML Custom-defined Schemas Custom-defined Schemas Data-oriented (por ejemplo Precio, Factura) Representan información de negocios dentro del documento Favorecen la integración de sistemas

14 Información estructural

15 Arquitectura Open XML El usuario: 1 archivo Questionnaire.docx Partes del documento Mayormente XML Cada una es un componente No necesito Office para eliminar, agregar o modificar partes Una corrupción o ausencia de una parte no bloquea el análisis del archivo El desarrollador ve: 1 Estructura Modular Document properties Contenedor ZIP Comments WordML/SpreadsheetML, etc. Custom-defined XML Images, video, sound Embedded code/macros Charts

16 Componentes Open XML Package – Contenedor ZIPPackage – Contenedor ZIP Part – Los “archivos” en el ZIPPart – Los “archivos” en el ZIP Content Types – Cada parte tiene un determinado tipo de contenido preestablecidoContent Types – Cada parte tiene un determinado tipo de contenido preestablecido Relationships – Las partes se referencian entre sí mediante relaciones, éstas definen la estructura del paqueteRelationships – Las partes se referencian entre sí mediante relaciones, éstas definen la estructura del paquete

17 Nada de reinventar la rueda (se reutilizan los schemas de Office 2003 en toda la medida de lo posible) Word, por ejemplo, utiliza WordprocessingML 2003 (Schema documentado) Los desarrolladores de WordprocessingML 2003 encontrarán los formatos muy similares XML siempre Donde no necesitamos binario (almacenamiento de imágenes por ej..), no lo hay Binario solamente si no "poseemos" un objeto Modularidad que beneficia a los Desarrolladores y a usuarios finales Mover comentarios a partes separadas Mueva las definiciones de estilo a una parte separada (cambie la hoja del estilo fácilmente) Si una área del documento se corrompe, el resto del documento puede todavía ser recuperado Estrategias de diseño

18 WordprocessingML Document body properties fontTable headers/footers images numberingDefinitions styles customXML footnotes/endnotes comments Un archivo WordprocessingML es unacollección de múltiples ‘subdocuments’, formalmente llamados stories: Main story Header(s) / Footer(s) Footnote(s) / Endnote(s) Subdocuments Frame(s) Comment(s)

19 SpreadsheetML Workbookproperties table chart styles calcChain sharedStrings sheet1..N drawing

20 PresentationML View Properties Presentation Properties Code Themes Fonts Slides Notes SlidesNotes Masters Handout Masters Slide MastersSlide Layouts

21 Ventajas en Open XML para desarrolladores

22 Herramientas de acceso a archivos Office Open XML Edición XML System.XML Paquete ZIP.Net 3.0 System.IO.Packaging Office Open XML Resource Kit Code Snippets - Beta 2 C# y VB.NET Validation Library Analiza un archivo e informa sobre el Schema, errores en relaciones y advertencias Serialization/Deserialization Library Aplana el paquete en un solo archivo para facilidad del desarrollo en escenarios simples.Net 3.0 – System.IO.Packaging Concretamente WindowsBase.dll

23 System.IO.Packaging Funcionalidad de la API Crea y abre paquetes crea y suprime piezas y relaciones lee y escribe en/de las partes itera a través de colecciones de partes y de relaciones Package PackagePart PackagePartCollection PackageRelationship PackageRelationshipCollection PackUriHelper

24 System.IO.Packaging.Package Package proporciona métodos para crear, para enumerar y para suprimir las entidades siguientes: Package Package Relationships PackagePropertiesParts Core Properties Common Package Parts Thumbnail Digital Signatures officeDocument XML Part Specific Format Parts Etc… Part Rels XML Part Part Rels

25 Cómo: obtener un paquete Necesitamos sólo la ubicación del documento (e indicar de qué modo deseamos acceder al mismo)Necesitamos sólo la ubicación del documento (e indicar de qué modo deseamos acceder al mismo) Private Function ObtenerPaquete(ByVal NombreArchivo As String, ByVal TipoAcceso As FileAccess) As Package Private Function ObtenerPaquete(ByVal NombreArchivo As String, ByVal TipoAcceso As FileAccess) As Package Dim paquete As Package Dim paquete As Package Try Try paquete = Package.Open( _ paquete = Package.Open( _ NombreArchivo, FileMode.Open, TipoAcceso) NombreArchivo, FileMode.Open, TipoAcceso) Catch ex As IOException Catch ex As IOException ‘Manejar excepciones aquí….. ‘Manejar excepciones aquí….. End Try End Try Return paquete Return paquete End Function End Function

26 System.IO.Packaging.Relationship Las relaciones vinculan a las piezas entre sí Requeridas para encontrar partes (los nombres de la parte no están garantizados) Itere la RelationshipCollection por Type o ID Propiedades de la relación: IDPackageRelationshipTypeSourceUriTargetModeTargetUri Package Relationships Core Properties Common Package Parts Thumbnail Digital Signatures officeDocument XML Part Specific Format Parts Etc… Part Rels XML Part Part Rels

27 Cómo: obtener las relaciones Las relaciones nos muestran la estructura del paqueteLas relaciones nos muestran la estructura del paquete GetRelationships se puede usar con Package o PackagePartGetRelationships se puede usar con Package o PackagePart Dim retValue As New Collections.Generic.List(Of PackageRelationship) Dim retValue As New Collections.Generic.List(Of PackageRelationship) For Each relacion As PackageRelationship In parte.GetRelationships For Each relacion As PackageRelationship In parte.GetRelationships retValue.Add(relacion) retValue.Add(relacion) Next Next

28 System.IO.Packaging.PackagePart Las partes son los objetos de datos dentro del paquete PackagePart proporciona la ayuda para crear, para enumerar y para suprimir relaciones Obtenga los datos de la parte como Stream Propiedades de PackagePart : CompressionOptionContentTypePackageUri Package Relationships Core Properties Common Package Parts Thumbnail Digital Signatures officeDocument XML Part Specific Format Parts Etc… Part Rels XML Part Part Rels

29 Cómo: obtener las partes Las partes con contenido (filtramos las relaciones)Las partes con contenido (filtramos las relaciones) For Each parte As PackagePart In paquete.GetParts For Each parte As PackagePart In paquete.GetParts If Not parte.ContentType = relationShipType Then If Not parte.ContentType = relationShipType Then Console.WriteLine(parte.Uri) Console.WriteLine(parte.ContentType) Console.WriteLine(parte.Uri) Console.WriteLine(parte.ContentType) End If End If Next Next

30 Nueva comunidad destinada a Desarrolladores Patrocinada actualmente por casi 40 instituciones de todo el mundo Comunidad y Web site para intercambio de información Code Snippets, Herramientas, Discusiones Gratuitamente disponible para quien desea participar y/o estimular el desarrollo en todas las plataformas. Sea uno de los primeros en vincularse con esta comunidad! http://openxmldeveloper.org

31 Alcance de la plataforma

32 Desarrollo Open XML Soluciones más confiablesSoluciones más confiables –Las herramientas de terceros eran causa principal de las corrupciones de un documento Formatos completamente documentadosFormatos completamente documentados –Disponible para descarga con licencia royalty free –Los schemas del formato del archivo Office validan el contenido para una parte dada Ejemplos, ejemplos, ejemplosEjemplos, ejemplos, ejemplos – Bajo la forma de code "snippets" para mayor practicidad de uso e integración con las Visual Studio Tools for the Microsoft Office System (VSTO).Net 3.0 Package APIs.Net 3.0 Package APIs –Acceso y mantenimiento de parts y relationships en el paquete –Maneja implícitamente toda la compresión ZIP

33 Desarrollo Open XML XPathXPath –Navegación dentro del contenido XML DOMXML DOM –Manipulación del contenido Office Open XML Resource KitOffice Open XML Resource Kit –Herramientas para construir y desarmar los archivos –Design time Validation tool Analiza un archivo y reporta anomalías –Runtime serialization tool Unifica el paquete

34 Recursos Office Preview Site: http://www.microsoft.com/office/preview/Office Preview Site: http://www.microsoft.com/office/preview/ http://www.microsoft.com/office/preview/ Brian Jones’s Blog: http://blogs.msdn.com/Brian_Jones/Brian Jones’s Blog: http://blogs.msdn.com/Brian_Jones/http://blogs.msdn.com/Brian_Jones/ Kevin Boske’s Blog: http://blogs.msdn.com/KevinBoske/Kevin Boske’s Blog: http://blogs.msdn.com/KevinBoske/http://blogs.msdn.com/KevinBoske/ Erika Ehrli’s Blog: http://blogs.msdn.com/erikaehrli/Erika Ehrli’s Blog: http://blogs.msdn.com/erikaehrli/http://blogs.msdn.com/erikaehrli/ Office 2003 Reference Schema Information: http://www.microsoft.com/office/xml/Office 2003 Reference Schema Information: http://www.microsoft.com/office/xml/ http://www.microsoft.com/office/xml/

35 MauricioGrimberg Mauricio Grimberg [email protected] MVTech’s

36 Muchas gracias