2011-12-25 87 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允許的持續時間比宇宙的年齡相當大,而最大撒克遜允許只比宇宙的年齡稍顯不足。