如何对已经发布过的InfoPath模板进行修改

  设计完InfoPath模板之后,需要将其发布到一个公共的地方(如公共网络上),用户可以下载该模板填写内容然后生成固定格式的XML数据文件。一个复杂的InfoPath模板可以包含一个主数据源(Schema文件)或多个辅助数据源,并且其中还可能包括VSTA(Visual Studio Tools for Application)所生成的代码。InfoPath模板源文件和已经发布过的模板文件后缀相同(均为.xsn),但是对于一个已经发布过的InfoPath模板文件而言,由于缺少对应的源代码(包括原始schema文件、辅助数据源文件、VSTA源代码等等),我们很难对其进行重新设计。有什么好的方法可以实现这一点呢?

  答案是肯定的!

  首先,在公共网络上找到已经发布过的InfoPath模板xsn文件并下载到本地。右键点击xsn文件选择Design,然后你可以重新对InfoPath模板的界面进行修改,但无法直接修改主数据源的schema。退出设计模式,将xsn文件的后缀直接改成cab,双击打开,你可以看到里面包含了许多你所需要的文件,包括manifest.xsf文件(InfoPath Form的定义文件),主数据源的schema文件,view1.xsl界面定义文件,template.xml,sampledata.xml,以及其它辅助数据源文件和第三方提供的控件,VBTA所编译的.dll文件等。

  几乎所有的定义文件都能手动修改,你可以直接将cab文件中需要修改的文件拖放到其它位置手动进行修改,然后设计xsn文件重新指定这些修改过的文件。或者也可以将cab文件中所有的文件拖放到一个新的文件夹中,然后修改需要的文件,右键点击manifest.xsf文件,选择Design,将InfoPath另存为一个新的文件。注意,如果你重新定义过主数据源的schema文件,则需要在InfoPath设计中查看控件的绑定情况,确保所有的控件绑定是正确的。如果需要修改XML节点的前缀,则需要同时修改manifest.xsf,view1.xsl,template.xml和主数据源的schema文件。

  在schema定义文件中,属性attributeFormDefault规定了所生成的XML节点的属性是否必须定义前缀,值为unqualified不需要,值为qualified需要;属性elementFormDefault规定了所生成的XML节点是否必须定义前缀,值为unqualified不需要,值为qualified需要。如下面的代码:

< xs:schema  attributeFormDefault ="unqualified"  elementFormDefault ="qualified" targetNamespace="http://www.jaxu.com"  xmlns:j ="http://www.jaxu.com" >
</xs:schema>

  属性targetNameSpace规定了所生成的XML节点或属性的前缀所对应的命名空间,该命名空间必须与后面指定的命名空间定义具有相同的URI。对于前缀的指定,在manifest.xsf,view1.xsl和template.xml文件中必须具有相同的URI。也就是说,如果你想要修改InfoPath所生成的XML文件中节点或属性的前缀,则这四个文件中的前缀定义均要修改成一致。

  dll文件不能直接修改。不过你可以反编译并重新创建VSTA工程。

  修改完后,重新打包并设计InfoPath文件,然后重新发布即完成了模板的更新。注意你可能需要重新为其指定签名。

转载于:https://www.cnblogs.com/jaxu/archive/2011/11/25/2263163.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值