InfoPath 2007 - Esclarecimentos sobre XSN & XML (Parte 1.5)
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.
(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.

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.
(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.
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
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利
This posting is provided "AS IS" with no warranties, and confers no rights.
This posting is provided "AS IS" with no warranties, and confers no rights.
浙公网安备 33010602011771号