首页 文章

将旧的XML数据加载到InfoPath表单的新版本中

提问于
浏览
2

我们有一个带有InfoPath表单组件的ASP.NET应用程序,使用InfoPath Forms Server将InfoPath表单提供给浏览器 . 我们不是将表单保存在SharePoint中,而是将XML表单数据提交给ASP.NET Web服务,该服务将数据保存为SQL Server 2005中的XML数据类型 . 这样工作正常,我们在加载XML数据时没有问题回到InfoPath表单 .

当我们尝试将旧数据(从表单的第1版)加载到表单的新版本(版本2)时,我们就会遇到问题 . 例如,这个新版本的表单(V2)有一个新的文本框字段 . 由于V2字段中不存在V2字段,因此它们在V2表单上可见,但是已禁用且无法填充 .

我们的问题是如何将V1 XML数据加载到V2表单中,并让用户能够完成现在存在于表单V2中的那些字段 .

使用InfoPath Forms Server和存储在表单库中的表单可以实现此行为 . 如果更新表单模板,则可以在新模板中打开旧表单,查看新字段,并可以在新字段中保存数据 . 当Form XML数据存储在SQL Server而不是表单库中时,我们需要知道如何以编程方式执行此操作 .

1 回答

  • 1

    自从我做了任何InfoPath之后已经有一段时间了,所以对此道歉有点模糊:

    InfoPath模板的一部分,它几乎只是一个具有不同扩展名的ZIP存档,是一个名为“upgrade.xsl”的文件 . 此文件包含一个或多个XSL转换,可“升级”针对早期架构版本的文档 .

    问题是:为什么在一个场景(SharePoint /表单库)中应用正确的转换而在另一个场景(Web服务)中不应用?第二个进程是否可能丢失InfoPath用于了解源文档所针对的架构版本的标记?我相信我所指的标签是“?mso-infoPathSolution”标签(“solutionVersion”属性) .

    如果确实从文档中剥离了此标记(并且您无法轻易阻止它),则可能需要“手动”应用适当的XSL转换 . 当然,如果您正在处理多个版本,则可能很难确定在任何情况下需要应用哪些转换 .

相关问题