InfoPath 2007 - Esclarecimentos sobre XSN & XML (Parte 1.5)

原文链接:http://www.sharepointbrasil.net/Lists/Postagens/Post.aspx?List=f1df0d58%2De1cd%2D4bd2%2Dada1%2Db45e0fe1ec60&ID=21

 

Olá pessoal,
 
Aos geeks de plantão que já trabalham com o InfoPath 2003/2007 .... estou fazendo este post intermediário para compartilhar uma informação interessante.
 
Vocês já se perguntaram qual a estrutura do arquivo XSN?
 
Pois é, segue uma representação gráfica do modelo de composição do XSN, e algumas explicações bacanas ....
 
InfoPath XSN file format INSIDE!!!! :-)
 

 
Pelo diagrama acima, podemos observar que o XSN armazena, de forma organizada, diversas estruturas de dados e configurações.
 
Assim como o Open XML (Office System 2007 - OOXML) e os arquivos WSP (Sharepoint 2007 solution package), o arquivo XSN utiliza o recurso de cabinet (.CAB) para tornar o armazenamento destas diversas estruturas mais fácil e lógico.
 
Ou seja, o primeiro truque aqui é que o XSN é, em sua estrutura-básica, um .CAB. ;-)
 
Para provar isso, vamos utilizar o arquivo XSN criado no post anterior (InfoPath 2007 - Esclarecimentos sobre XSN & XML (Parte 1)) - que deixei disponível para download em: Postagens - Exemplos.
 
É simples e rápido, trata-se de simplesmente renomear o arquivo HelioSa_Form01.xsn para - por exemplo - HelioSa_Form01.xsn.CAB.
 
Feito isso, é só abrir o CAB a partir do Winzip ou Winrar e visualizar a sua estrutura interna.
 
BACAAANA Demais hein?!??!? ;-)
 
Analisando a estrutura de arquivos acima apresentada frente à estrutra do XSN (demonstrada no início deste post - 1ª figura) podemos concluir que:
 
01 - Solution Definition (XSF):
Este arquivo (XSF) é o principal arquivo do nosso XSN (CAB cabinet), pois contem as referências para todos os outros arquivos internos do nosso form.
 
No exemplo em questão o arquivo manifest.xsf representa esta nossa estrutura, o Solution Definition.
 
Obs.: Não vou entrar em detalhes sobre a estrutura interna do XSF ( :-) ) - mas posso dizer que segue um modelo estruturado e hierarquico baseado em XML.
 
Seguem alguns links interessantes:

02 - Schema (XSD):
Os XML Schemas (arquivos XSD) são utilizados para validar a conformidade de estruturas XML frente à regras de composição, estruturação do XML e dados.
 
No contexto do InfoPath 2007, o template de formulário utiliza o XML Schema (XSD) para realizar validações estruturais e dos dados que são armazenados - após o input do usuário - no formato XML.
 
Todo o template de formulário criado no InfoPath contém pelo menos um arquivo XSD schema - utilizado para a validação em run time.
 
Importante lembrar que o modelo de entrada de dados é definido pelo desenvolvedor - logo - este XSD é mutável e sempre atualizado quando ocorre alguma alteração nos controles alocados no formulário.
 
No exemplo em questão o arquivo myschema.xsd representa esta nossa estrutura, o XML Schema.
 
Para maiores detalhes sobre a composição - e possíveis customizações à este XSD (trabalho BEM legal, rs) - recomendo os seguintes artigos:


03 - Views (XSLT):

A estrutura de views compreende todas as regras - baseadas em XSLT - para a apresentação, visualização e transformação de dados contidos nos arquivos XML de informações em um resultado gráfico representando o formulário eletrônico.

No exemplo em questão o arquivo view1.xsl representa esta nossa estrutura, o Views (XSLT).
 

04 - Business Logic (JS, DLL):
Como sabemos, é possível extender as funcionalidades apresentadas e utilizadas nos formulários eletrônicos com codificação - basicamente utilizando client-side scripting (JScript e/ou VBScript) ou então, com .Net Framework - implementando consequentemente algumas classes com regras de negócio.
 
Basicamente, o nosso XSN (.CAB) vai armazenar os arquivos (.JS, .DLL e afins...) corretamente - e com base na estrutura do arquivo 01 - Solution Definition (XSF), poderemos obter o mapeamento dos formulários e de suas respectivas estruturas de codificação.
 
Poxa, tá começando a fazer sentido neh?!??! :-)
 
No exemplo em questão não customizamos ou adicionamos códigos customizados - por esta razão não visualizamos quaisquer arquivos adicionais (.dll ou .js por exemplo).
 

05 - Default Data (XML):
Sendo o nosso template de formulário o início para o preenchimento de "N" (muitos) formulários pelo usuário - por diversas vezes faz-se necessário manter campos pré-preenchidos ou mesmo dados offline em nosso arquivo XSN.
 
Para isso, o InfoPath utiliza este estrutura XML para armazenar estas informações de forma separada da real estrutura do formulário.
 
No exemplo em questão o arquivo sampledata.xml representa esta nossa estrutura, o Default Data (XML).
 
 
Obs.: Uma importante informação é que qualquer alteração realizada de forma direta a estes arquivos que compõe o package XSN devem ser realizada com cuidado - mas são suportadas e podem abrir um grande leque de informações.
 
Para alterar os arquivos, é só extrair a estrutura do CAB, alterar os arquivos (.XML, .XSF, .XSL e afins...) e depois gerar NOVAMENTE o XSN (CAB cabinet). Para isso, utilizem o utilitário MAKECAB.exe da Microsoft.
 
 
Bom pessoal, espero que vocês tenham gostado destas informações ...... acredito que são detalhes interessantes, e que o seu entendimento pode - por muitas vezes - esclarecer o funcionamento dos produtos que trabalhamos no dia-a-dia. :-)
 
Aguardem pela evolução desta série relacionada ao InfoPath!
 
Abraços

 

 

posted on 2009-02-16 14:17  王丹小筑  阅读(415)  评论(0)    收藏  举报

导航