[Bug 1901] Limitations on value ranges

http://www.w3.org/Bugs/Public/show_bug.cgi?id=1901


chamberl@almaden.ibm.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED




------- Additional Comments From chamberl@almaden.ibm.com  2005-09-28 10:36 -------
Andreas,
On Sept. 28, 2005, the Query Working Group considered your comment and resolved 
it as follows:

In XQuery Section 5.3 (Data Model Conformance), the following new rule will be 
added:

4. Ranges of data values: In XQuery, the following limits are
implementation-defined:

(a) For the xs:decimal type, the maximum number of decimal digits 
(totalDigits facet) (must be at least 18)

(b) For the types xs:date, xs:time, xs:dateTime, xs:gYear, 
xs:gYearMonth: the maximum value of the year component, and the
maximum number of fractional second digits (must be at least 3).

(c) For the xs:duration type: the maximum absolute values of the 
years, months, days, hours, minutes, and seconds components.

(d) For the xdt:yearMonthDuration type: the maximum absolute value,
expressed as an integer number of months.

(e) For the xdt:dayTimeDuration type: the maximum absolute value,
expressed as a decimal number of seconds.

(f) For the types xs:string, xs:hexBinary, xs:base64Binary, xs:QName, 
xs:anyURI, xs:NOTATION, and types derived from them: limitations (if any)
imposed by the implementation on lengths of values. 

Note that all of the above limitations
need not be fixed, but may depend on environmental factors such as 
system resources.

In the specific example cited in your comment, the decimal literal 
1.00000000000000000000000001, the XQuery document specifies that the
literal is converted to a decimal value by the rules for casting from
string to decimal, which in turn are defined by the rules for XML Schema
validation. XML Schema validation states that a value 
that is not exactly equal to any point in the target value space is mapped into 
the nearest point in the value space. Therefore the correct handling of the 
literal in your example is to map it into the decimal value 1.0.

I have marked your comment as "Resolved and fixed." If this resolution is 
acceptable to you, please change the status of this comment to "Closed".

Regards,
Don Chamberlin

Received on Wednesday, 28 September 2005 10:36:42 UTC