java 生成 infopath_设置以编程方式创建的XML文档,以便在SharePoint中使用InfoPath模板打开...

我在获取以编程方式创建的XML文档时遇到问题,并在SharePoint中添加到表单库以使用InfoPath模板打开,而不是仅在Internet Explorer中打开为纯XML文档 .

基本上,我有一个Web服务,它检查数据库以查看某些条件是否为真 . 如果是,则Web服务以编程方式创建一个XML文档,该XML文档与前面提到的InfoPath模板创建的文件具有相同的XML模式 . 通常的过程是真实用户打开此InfoPath模板,填写数据并单击SUBMIT按钮,该按钮在幕后创建XML文档并将其保存在表单库中 . 当用户进入表单库以便稍后查看该XML文档时,该文档将自动打开InfoPath模板(而不是仅在Internet Explorer中作为XML文档打开) .

我试图找出为什么从Web服务生成的XML文档在这方面的行为与从InfoPath生成的XML文档不同 . 以下是我用于在Web服务中创建XML文档的代码片段:

//specify path to the SharePoint site and the form library

var clientContext = new ClientContext("http://urlToSiteContainingTheFormLibrary");

var site = clientContext.Web;

clientContext.Load(site);

var folder = site.GetFolderByServerRelativeUrl("FormLibraryNameHere");

clientContext.Load(folder);

clientContext.ExecuteQuery();

//create new file to add to the form library

var fci = new FileCreationInformation();

var encoding = new System.Text.UTF8Encoding();

//load the InfoPath document's XML schema from resources file

var baseXml = XElement.Load(new StringReader(Properties.Resources.BaseXml));

//fill out the appropriate elements and attributes of the XML here

//......

//

//set remaining properties of the new FileCreationInformation object

byte[] array = encoding.GetBytes(baseXml.ToString());

fci.Content = array;

fci.Overwrite = true;

fci.Url = "DocumentName"

//add the new file to the form library

var newFile = folder.Files.Add(fci);

clientContext.Load(newFile);

var item = newFile.ListItemAllFields;

clientContext.Load(item);

//set metadata for the xml file here

item["HTML_x0020_File_x0020_Type"] = "InfoPath.Document.3";

item["TemplateUrl"] =

"http://templateUrlHere/template.xsn?openin=preferclient&noredirect=true&xsnlocation=/templateLocation/template.xsn";

//set remaining item properties......

//update changes to the item

item.Update();

//commit the changes

clientContext.ExecuteQuery();

此时,我的XML文档已成功提交到我的表单库,但是当我打开它时,它在Internet Explorer中作为纯XML打开,而不是使用我指定的模板 . 我假设项目的HTML_x0020_File_x0020_Type和TemplateUrl属性将为SharePoint指定足够的信息,以便知道它需要使用InfoPath模板打开此文件,但也许我需要设置一些其他属性 . 有没有人有类似问题的经验?起初我认为我用于模板的URL是错误的,但我直接从通过InfoPath模板创建的现有XML文档中复制它,所以我不认为这是问题(我遗漏了任何真实的我上面的示例代码中的URL和文件名,所以请忽略这些URL不正确的事实) . 我正在继续解决这个问题,但与此同时我认为有人可能已经解决了这个问题,并且可能能够提供一些见解 .

提前感谢您的任何答案,我感谢您提供的任何帮助 .

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值