2011-12-25 121 views
1

我有一个简单的问题:什么是最长/“无限”,可以使用XSD指定时间:dayTimeDuration()(在ISO8601格式)?最长持续时间:dayTimeDuration()

谢谢, M.

+0

@Dimitre:谢谢,它是!当你回答以下问题时,我只是不在PC的前面:-) – user414366 2011-12-25 22:16:52

+0

@ _user414366:不客气。 – 2011-12-25 22:58:14

回答

4

W3C XSD specification不限制/指定一个xs最大值:dayTimeDuration

的年,月,日,时的值,并分钟组件 不限制,但允许任意的无符号整数,即, 整数符合所述图案[0-9] +。

但是,一个特定的实现可能强加它的实现相关的限制。

例如,撒克逊允许该值

xs:dayTimeDuration('P999999999DT2H30M10S') 

但该值(多一个9位加入到天成分)引发错误:

xs:dayTimeDuration('P9999999999DT2H30M10S') 

FORG0001:无效的持续时间值 'P9999999999DT2H30M10S'(非数字 成分)

XQSharp允许更大的价值 - 这是接受

xs:dayTimeDuration('P999999999999999999DT2H30M10S') 

但一个数字多在天组件引发错误

xs:dayTimeDuration('P9999999999999999999DT2H30M10S') 

FODT0002: Underflow or overflow in construction of 'dayTimeDuration' in namespace 'http://www.w3.org/2001/XMLSchema' from value 'P9999999999999999999DT2H30M10S'. 

这两两个XPath实现允许比实际需要的更大的价值空间 - 只需考虑宇宙年龄估计不超过140亿年,即5124000000000天。

XQSharp允许的持续时间比宇宙的年龄相当大,而最大撒克逊允许只比宇宙的年龄稍显不足。