Наибольшая продолжительность, которая может быть указана с помощью xsd: dayTimeDuration () - PullRequest
1 голос
/ 25 декабря 2011

У меня простой вопрос: какая самая длинная / «бесконечная» продолжительность может быть указана с помощью xsd: dayTimeDuration () (в формате ISO8601)?

Спасибо, М.

1 Ответ

4 голосов
/ 25 декабря 2011

Спецификация W3C XSD не ограничивает / не задает максимальное значение для xs: dayTimeDuration :

Значения года, месяцаКомпоненты Day, Hour и Minutes не ограничены, но допускают произвольное целое число без знака, т. Е. Целое число, которое соответствует шаблону [0-9] +.

Однако конкретная реализация может навязывать своипределы, зависящие от реализации.

Например, Saxon допускает это значение :

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 допускают гораздо большее пространство значений, чем было бы практически - просто учтите, что возраст Вселенной оценивается не более чем в 14 миллиардов лет, что составляет 5124000000000 дней.

XQSharp допускает длительности, значительно превышающие возрастВселенная, в то время как максимальный допустимый саксонский немного меньше, чем возраст Вселенной.

...