在程序中设置infopath中的整型等域值时出错解决方法
具体表现就是在代码中对一些值类型的域进行更改的时候,代码报错,出错信息:"Schema validation found non-data type errors."
小弟对xml schema真的不是很了解,所以找了半天,最后总算在infopath team blog上找到标准答案
文章地址:http://blogs.msdn.com/infopath/archive/2006/11/28/the-xsi-nil-attribute.aspx
xsi:nil属性
你是否曾经在程序中设置域值时碰到schema valiadation错误?很多时候这个错误的原因是节点定义了“nillable”属性. Nillable属性是一个特殊的属性,它能出现在一个XML schema的 xsd:elment中.如果一个元素定义了xsi:nil属性,意味着这个元素被定义了,但是没有值,因此它是没有内容的。
然而,如果你试图在程序中给一个定义了nillable属性的节点设置值,你会得到一个错误信息:“Schema validation found non-data type errors.”。你可能会发现nillable属性常被定义在下面几种数据类型上:
- Whole Number (integer)
- Decimal (double)
- Date (date)
- Time (time)
- Date and Time (dateTime)
要解决这个问题,你的代码需要先检测nil属性是否被定义了。如果定义了,那需要在给节点设置值之前移除这个属性。下面这段简单的程序使用一个XpathNavigator类,检查节点的node是否有nil属性。如果存在则删除掉。
{
if (node.MoveToAttribute("nil", "http://www.w3.org/2001/XMLSchema-instance"))
node.DeleteSelf();
}
上面这段代码是通用的,你能很简单的调用这段代码在你需要编程改变一个域的值之前。下面是一个例子,这段代码被一个按钮的click事件调用。
// 为主数据源创建一个Navigator对象
XPathNavigator xn = this.MainDataSource.CreateNavigator();
//Create a navigator object for the field (node)
//where we want to set the current date value
// 为你要设置当前日期值的一个域(节点)创建一个navigator对象
XPathNavigator xnfield1 = xn.SelectSingleNode("/my:myFields/my:field1", this.NamespaceManager);
//Check if the "nil" attribute exists on this node
// 检查节点是否存在 “nil”属性
DeleteNil(xnfield1);
//Create a new dateTime object for the current date
// 创建一个包含当前日期的新的dateTime对象
DateTime curDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day);
//Set the value of field1 to the current date in the
//correct format: yyyy-mm-dd
// 设置field1的值为使用”yyyy-mm-dd”格式的当前日期
xnfield1.SetValue(curDate.GetDateTimeFormats().GetValue(5).ToString());
转载于:https://www.cnblogs.com/pengyuan512/archive/2008/06/24/1228947.html
在程序中设置infopath中的整型等域值时出错解决方法相关推荐
- MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法...
今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...
- WPF中设置了WindowStyle=None后,窗口仍然有边框的解决方法
1. 设置了窗体的WindowStyle="None",窗口还是右边框,如下图: 2. 这是因为窗体默认是可以改变大小的,所以需要修改ResizeMode的值 ResizeMode ...
- 本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字.输入格式:输入在一行中给出一个长整型范围内的非负整数.输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格 1 ...
- char怎么比较_为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?...
在阅读<阿里巴巴Java开发手册>时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下: 这条建议非常值得大家关注, 而且该问题在 Java 面试中十分常见. 还需要思考以下几个 ...
- python字典怎么设置_在python中设置字典中的属性
在python中设置字典中的属性 是否可以在python中从字典创建一个对象,使每个键都是该对象的属性? 像这样的东西: d = { 'name': 'Oscar', 'lastName': 'Rey ...
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
VS2017 启动调试出现 无法启动程序"http://localhost:15613" 操作在当前状态中是非法的. 同时附加进程也是错误的解决方法 参考文章: (1)VS2017 ...
- C#语言中提供了枚举和整型之间的强制转换功能(SelectItem)
[csharp] view plain copy <span style="font-family: Arial, Helvetica, sans-serif;"> ...
- Word论文中设置正文中的引用参考文献 按住Ctrl键+单击鼠标右键 实现跳转到论文参考文献的对应位置
Word论文中设置正文中的引用参考文献 按住Ctrl键+单击鼠标右键 实现跳转到论文参考文献的对应位置 首先要确保文中参考文献排版是插入的编号,而不是自己手敲的[1][2]-- 在正文要引用参考文献的 ...
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法
最近在处理一个项目时使用到了在word中写入信息的功能,由于系统原来就支持在线打印功能,使用了PageOffice,于是就研究了一下PageOffice,发现Pageoffice不能满足自己的功能(或 ...
最新文章
- 011_SpringBoot视图层技术thymeleaf-日期格式化
- tarjan算法_【朝夕的ACM笔记】树上问题-最近公共祖先-倍增算法
- Tomcat学习笔记02【Tomcat部署项目】
- Git检出远程库的分支等相关操作
- 进程调度的时机,切换与过程,方式
- Eclipse自动部署项目到Tomcat的webapps下的有效方法
- 谷歌大脑小姐姐亲授:如何应聘成功羡煞旁人的AI工程师岗位
- 记录一次手机联系人整理(XML文件格式处理)
- 关于打印机状态的获取
- echarts最简单的南丁格尔玫瑰图+图例
- 【CAD算法】【计算机图形学】Coons Patch曲面生成程序(python/numpy实现)[2]
- java js hexmd5_JAVA与JS在MD5上问题
- 感应封盖机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 【Python气象绘图临摹】图像绘制(下):地理子图GeoAxes、xy轴设置、应用ncl色阶colormap、各标题、海岸线、添加文本、添加矩形框
- 计算机课教学进度,小学信息技术教学进度表.doc
- AIO 模拟量采集 电路
- javascript重要事件总结(onsubmit/onclick/onload/onfocus/onblur/onmouseover/onmouseout)
- 第八章 交互技术,8.1 VR电商购物(作者:宋五)
- C# winform中对gridcontrol查询的一些操作
- Vue + Django + PaddleOCR 实现一个在线OCR 识别网站,一键上传快速识别