In this series I'll explain to you how to work programmatically with .xsn
file in a very low level manner. The main idea behind these articles is that in
the web there is very little fragments of information regarding the subject. So
let's start with the first part.
As we all know, InfoPath is an application for designing, distributing, filling and
submitting electronic forms containing structured data. But InfoPath is not only
this simple, in fact you can implement this form in every application developed
by Microsoft! You can insert it into your Outlook mail, Access from, SharePoint
from. You can add it everywhere, which was quite impressive. So this was the
main reason to move from old .NET and Access forms to new InfoPath apps.
At first look (from the developer side) it's some strange .xsn format
For which there is very little information on the internet. But after some
experimenting, it turns out that .xsn is a cab file with a changed extension. For
those who don't know what a cab file is, I'll explain it. A cab file is a Windows
native compressed file (something like a zip file) which contains more than one
file. So when we rename the .xsn to .cab and try to open it, we get the following
screen:
Which gives us all the needed information that we've been looking for. This archive contains several files:
- EMEA_Countries - This file contains Excel workbook like xml schema which stores system information about Regional settings that the .xsn file inherits, author of the project, system schemas and fonts.
- EMEA_Countries.CSV - This csv file contains informational data for the file which was explained above.
- EMEA_Countries. - This file is used as a manifest file for the EMEA_Countries.
- Manifets.xsf - This file stores all the schema for the operational .xsn file which stores all the schemas and fields that are used in .xsn file.
- myschema.xsd - This file is used for initializing an internal schema which is used for the body of the .xsn file. In other words, this file stores the information of what type of fields are creted and what type of links they have between each other.
- sampledata.xml - Basic template that will be the result after submitting the xsn form with row data.
- Template.xml - This is the template from which the xml result file is generated.
- upgrade.xsl and view1.xsl - Are responsible to give the template file a way to set typical design or to give an opportunity to the developers to create a more beautiful file.
So this was the basic information about the
InfoPath forms and the elements from which the .xsn file consist.
In the next part, I'll give more information on how in the very low level we can
check and fill a form from the code in the .xsn.