In order to use InfoPath to fill in a form, a designer must develop an InfoPath template first. According to
Jean Paoli and John Godel, two of its developers, a key architectural design decision was "to adhere to the
XML paradigm of separating the data in a document from the formatting." A patent filed in 2000 by Adriana Neagu and Jean Paoli describes the technology as "authoring XML using
DHTML views and
XSLT." All the data stored in InfoPath forms are stored in an XML format, which is referred to as the "data source". The form template must have one primary data source for submitting data and can have multiple secondary data sources for retrieving data into the form. Secondary data sources can be built into the form or they can be accessed through an external data connection to SharePoint or a Web service. The files of the InfoPath form template are saved as an archive in the
cabinet file format with the file name extension xsn. InfoPath provides several controls (e.g.
textbox,
radio button,
checkbox) to present data in the data source to end-users. For data tables and secondary data sources, "Repeating Table" and other repeating controls are introduced. Template parts and ActiveX controls can also be added as custom controls in the designer. For each of these controls, actions (called "rules") can be bound in. Rules come in three types: formatting rules such as hiding or coloring a control, validation rules (e.g. allow only a nine-digit number), and action rules such as setting a field's value based on other fields. Rules can be triggered either by a user action such as clicking a button or by the evaluation of various conditions such as field values. For example, a conditional rule could be: "Set field 'Total' to 100 when field 'field1' is not blank".
Paradigm •
Rules apply specific actions when triggered by button clicks or changing values in the form. They can change the values of fields in the data source, submit to and query databases, display messages, open and close forms, and switch to different
views of the form. •
Data validation tests the validity of input into fields by comparing the input to patterns, checking for the correct data type (such as a string or an integer), and in other customizable ways. •
Conditional formatting can be used to change the appearance or visibility of objects based on values in the form. • InfoPath has many different
ActiveX Controls, all of which have a value bound to a field in the form's data source. Common controls include list boxes, radio buttons, text boxes, buttons, and check boxes. Info Path also uses controls such as Calculated Values, which display the result of xPath expressions, and sections, which are containers for other controls. InfoPath also includes repeating fields and sections, which can store many different values. •
XPath expressions and
functions can be used to calculate values by applying functions to the value of fields in the form, such as "concat(string(field1 + field2), "#;", field3)" (the concatenation of the sum of two fields, the string "#;", and the value of another field). XPath functions for manipulation of strings, simple mathematical operations, and many other operations are included in InfoPath. In addition, data can be filtered (select individual values from a repeating field or database). • InfoPath supports
connections to external datasources. SQL, Microsoft Access, and
SharePoint databases can be connected to and submitted in the form. •
JScript, Visual Basic, C#, and other languages can be used to extend InfoPath's capabilities by adding custom
HTML taskpanes, iterating through data, using
Active Directory, and generally accomplishing tasks that are impossible in the InfoPath design environment. The language support is facilitated by
Visual Studio, although a specific version of Visual Studio is required to use with each version of InfoPath. •
SharePoint integration (see
Integration with SharePoint). •
User roles can customize a user's experience by changing views or using conditional formatting based on the identity of the user. • InfoPath's
formatting capabilities and
user interface are similar to Microsoft Word 2003 and 2010, depending on version. ==Usage==