You are reading O'Reilly XForms Essentials by Micah Dubinko. (What is this?) - Buy XForms Essentials Online

Appendix A. Examining Microsoft InfoPath

Do not go where the path may lead; go instead where there is no path and leave a trail.

Ralph Waldo Emerson

For months, people wondered what Microsoft's response to XForms would be. In the fall of 2002, Microsoft announced a new product code-named "XDocs" that appeared, at least on the surface, to be quite similar in functionality to an XForms implementation. The product came to be known officially as InfoPath and, due to the sheer size and influence of Microsoft, a subject of frequent comparison with XForms and other related technologies.

The InfoPath application, like an XForms implementation, converts user input into a new or modified XML, which can then be fed into a back-end system. A single application is used for both designing and completing a form. InfoPath is available only on the Windows platform, as part of Microsoft Office System 2003.

An InfoPath document is stored and processed as several files, which can be either compressed into a single CAB-compressed file with a file extension of .xsn or stored in the same directory.

This file is roughly analogous to an XForms Model, in that it contains the non-rendered basis for a form.

The XSLT portion doesn't have an equivalent in XForms, but the HTML-like format produced by the transformation is conceptually similar to the XForms User Interface.

<?mso-infoPathSolution solutionVersion="1.0.0.2" href="path/manifest.xsf" productVersion="11.0.5329" PIVersion="1.0.0.0" ?>
<?mso-application-progid="InfoPath.Document"?>

When Internet Explorer encounters any XML document with these processing instructions, it attempts to launch the locally installed InfoPath application, pointing it towards the indicated manifest file.

It's possible for the InfoPath document to contain other user-inserted documents as well, including images, XML that can be used as a data source, and even HTML files that can be displayed in a special area called the Task Pane.