以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  schema中定义了一个字段为int类型。在xml文件中有时会出错!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=28095)


--  作者:jqklw
--  发布时间:3/3/2006 4:18:00 PM

--  schema中定义了一个字段为int类型。在xml文件中有时会出错!
我在一个schema文件中。定义了一个元素 ID 的类型为 int 类型。也是 可选的。
相应的xml文件中。如果 元素 ID 的值为空。
我就写成 <ID></ID> .也用<ID/>试验过。
但是在使用dataset加载的时候。报告字段类型不匹配。
我是这样做的。
dataset.ReadXmlSchema(sch.xsd);
dataset.ReadXml(xml.xml);

但是。如果 ID 为空。就不写 ID 那一项。先读架构再读xml文件就没有问题。
或者 把 ID 的类型定义为string 。也不报错。

初学xml 。不明白这是什么原因。谢谢啊。


--  作者:jqklw
--  发布时间:3/4/2006 12:08:00 PM

--  
自己顶一个。谢谢指点啊
--  作者:wFirebird
--  发布时间:3/9/2006 12:13:00 PM

--  
。。。。。
肯定类型不正确了,你认为整型数据里面会有空这个数吗!
当然字符型数据里面有空,所以你定义整型就会类型不匹配,而字符型会安然同过!
--  作者:jqklw
--  发布时间:3/9/2006 8:16:00 PM

--  
谢谢指点啊。
那可不可以 给 int 型 的 ID 指定一个 默认值呢。
如果 没有 ID 字段 。就 将 ID 赋值为设定的 默认值。
这样可以吗?
如果可以,在 schema 文件里怎么写呢?
--  作者:wFirebird
--  发布时间:3/10/2006 9:45:00 AM

--  
可以的
<element name="test" type="int" default="0"/>
这样就是缺省值了~
不过有一点也要注意,就是在XML文件中如果<test>标签中有数据,那么就按实际的标签中的数据值,如果标签中没有值,也就是你上面的那种写法,<test></test>才会按默认的数据值,如果XML文件中没有使用Schema中定义的<test>标签,则不会把<test>的默认值自动添加进去,这点和属性的默认值不同,属性如果有默认值,那么如果你在XML文件中省略了这个属性的话,那XML也将视它为默认值。
--  作者:メ冰枫ぱ雪
--  发布时间:3/19/2006 4:32:00 AM

--  
emelent 不是有default 吗? 楼上的就是了 - -+

楼上的后半段话还是有点不理解,好郁闷,能给个示例吗? 麻烦了。。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms