以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  xml  schema可以验证闰年,天数问题吗?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=25558)


--  作者:bonovox
--  发布时间:12/16/2005 11:38:00 PM

--  xml  schema可以验证闰年,天数问题吗?
刚学xml schema,了解后者到shcema可以验证 时间的pattern,但是想知道能不能验证时间的有效性,比如2001-2-30是错误的日期?3x
--  作者:98900969r
--  发布时间:12/17/2005 11:31:00 AM

--  
可以。
--  作者:bonovox
--  发布时间:12/17/2005 8:12:00 PM

--  
请给些提示吧?这类数据的逻辑性在什么地方可以验证?3x
--  作者:bonovox
--  发布时间:12/17/2005 8:47:00 PM

--  
难道xml schema中有可以逻辑判断? 首先schema怎么从数据 2001-2-29种知道是2001年? 除非 数据是 <year>2001</year><month>2</month>... 如果是以2001-2-29整个出现,schmea 可以写判断前四位是年,第6位是月。。。吗?即使可以,怎么判断是闰年呢?或许我想法完全是错误的,由已经存在判断闰年的方法。 谢谢大侠解惑
--  作者:98900969r
--  发布时间:12/17/2005 11:57:00 PM

--  
当我们说XML Schema可以验证日期时,意思是它提供了“日期”这种数据类型。这就像c语言提供了整数类型,一个c语言的实现就(应该,或者说,必须)可以验证一串字符是不是一个整数。同样道理,一个XML Schema的实现就(应该,或者说,必须)能够验证XML Schema所定义的每个数据类型,包括“日期”数据类型。所以,不是c语言规范可以验证整数,而是c语言实现可以验证整数。同样,不是XML Schema规范可以验证日期,而是XML Schema实现可以验证日期。

“数据类型”是什么意思呢?从字符表示形式来看,每个数据类型实际上是一种语言,它的定义就是它的语法,根据这个语法,我们可以写出解析器来判断一个给出的字符串是否是这个语言的合法句子。例如,非负整数数据类型是什么呢?从字符表示形式来看,它是所有那些由一个或若干个0-9的字符组成的字符串所组成的集合。这样,非负整数数据类型实际上是一种语言,这个语言的合法句子是所有那些由一个或若干个0-9的字符组成字符串。 这个定义可以由一个正则表达式来表达。然后根据这个正则表达式,我们可以写出解析程序,来判断一个字符串是否是一个非负整数,如果是,就进而把这个字符串所代表的整数转变成计算机内部该整数的表达形式,即一个4个(有的语言是2个,有的是8个)字节长度的2进制数。

实现每个数据类型都不是一件轻而易举的事。就像你已经想象到了的,要实现“日期数据类型”可不太简单。但是原理就是上面讲的那样。


[此贴子已经被作者于2005-12-18 1:27:14编辑过]

--  作者:bonovox
--  发布时间:12/18/2005 8:49:00 PM

--  
恩,明白了!感谢!
--  作者:future
--  发布时间:2/22/2006 11:27:00 PM

--  
好像还是不太懂。。。
--  作者:zhaoshichake
--  发布时间:3/26/2006 8:14:00 PM

--  
举个例子:数据库中定义了一字段为时间类型,则当你插入“2001-2-29”这时间时,插入是不会成功的。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms