当前位置 : 主页 > 网页制作 > xml >

XmlWriter – 编写xsi:nil = true属性

来源:互联网 收集:自由互联 发布时间:2021-06-13
我有一个InfoPath 2010表单的问题,它背后有一些代码.我的表单的目的是从用户收集数据,并使用提供的答案,自动填充许多所需的任务.这些任务填充在表单的重复部分中.我的代码后面包含自
我有一个InfoPath 2010表单的问题,它背后有一些代码.我的表单的目的是从用户收集数据,并使用提供的答案,自动填充许多所需的任务.这些任务填充在表单的重复部分中.我的代码后面包含自动填充重复部分中每个条目的逻辑.我正在使用 XMLWriter类和WriteStringElement方法来填充重复节中的每个字段.

最初所有这些逻辑看起来都按预期工作,这些部分按预期填充.但我现在意识到写入XML表单的字段存在问题.

使用工作流程我正在为重复部分中的每个项目生成SharePoint任务.完成任务后,我将状态和完成日期写回表单.我遇到的问题是,在最初设置表单中的任务时,我显然没有填充CompletedDate字段.我假设该字段将自动添加到表单XML中,并带有xsi:nil = true属性.相反,它根本不在XML中,并且我的工作流在查找节点“faCompletedDate”时抛出了Object Reference而没有设置错误.检查表单的XML,它不存在.

我认为我需要的解决方案是在表单后面的代码中写出一个xsi:nil属性到teh faCompletedDate,我不知道这是怎么做的.

我试过了:

writer.WriteStartElement("faCompletedDate", myNs)
writer.WriteAttributeString("xsi", "nil", xsiNs, "true")
writer.WriteEndElement()

但这会引发模式验证,发现非数据类型错误.

有人可以帮助我解决这个问题并建议最好的使用方法.

好的,我设法解决了这个问题.看来我错过了我的一个XMlWriter语句中的命名空间管理器参数.更新这个允许我按预期写出完整的部分.
网友评论