InfoPath生成的xml文件其实是标准的xml文件,无非加上了一个InfoPath的标签,如:
在资源管理器中,之所以InfoPath的xml文件的图标与普通xml文件的不同也就是因为这个,如果把这段标签去掉的话,你会发觉图标就不是InfoPath文件的图标了,资源管理器无法识别出它是不是InfoPath文件。
看了一下相关资料,大部分都是说如何基于InfoPath Form Server或SharePoint来部署,这个成本太高了,自然不会考虑,不过还有一个选项即使用Installable form template(可安装表单模板),这个选项可以在发布向导中找到,但要注意如果要使用这个功能必须安装Visual Studio 2003或2005。
它会要求你填写公司名称和语言种类,这里的公司名称是有用的,最终的文件将被安装到%Program Files%\<公司名称>\<表单名称>\表单模板文件(.xsn)。不过接下来大家要注意一点,制作好安装文件之后现在自己机器上装一遍,然后用%Program Files%\<公司名称>\<表单名称>\目录下的模板文件来生成用于填写的表单,这样的话有一个好处,生成的文件头不会带有一个href标记,如下:
这样它就根本不会去找某个路径的monthlyAttendance模板,而是会让InfoPath负责查找,由于该模板已经由那个模板安装程序(msi)安装到InfoPath中,所以就可以轻易打开。对于部署而言,你唯一要做的就是让所有要用InfoPath打开这个表单的人安装那个可安装表单模板,其他就不用管了。
当然啦,如果你连安装也不想安装,还有一种方案,那就是用xslt。比如我们可以做一个叫做abc的xslt文件,然后我们可以在InfoPath的xml文件中加入xslt引用标签:
这样就可以在没有安装InfoPath的机器上通过IE浏览器查看InfoPath数据了,当然你得在abc.xslt里面做适当的xml数据转换。