[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: patterns and restrictions


lexical forms
On Tue, 2003-12-23 at 09:24, David Tolpin wrote:

> My feeling is that every facet is unusual. For example, is '0.0' a
> canonical form for decimal zero? 

Yes, the canonical form for zero, in the decimal type, is "0.0".  As
section 3.2.3 says,

   The canonical representation for decimal is defined by prohibiting
   certain options from the Lexical representation
   (§3.2.3.1). Specifically, the preceding optional "+" sign is
   prohibited. The decimal point is required. Leading and trailing
   zeroes are prohibited subject to the following: there must be at
   least one digit to the right and to the left of the decimal point
   which may be a zero.

> Decimal point is required according to the specification.

It's required in the canonical form, yes.

> If the decimal point is required, how can 'integer' be derived from
> 'decimal'?
 
The decimal point is not required in the lexical form of an
integer-valued decimal.  (It is required in the *canonical* form, but
the set of canonical forms is not the same as the lexical space.)
Non-primitive simple types are derived from others by restricting
their value and lexical spaces; integer is derived from decimal by
restricting the value space to integral values.  The canonical form is
a convenience, primarily for use by others who want for whatever
reason to restrict the possible variation of lexical forms, and is
specified for each built-in type 'by magic'.  (If there were a good
platform-independent way to specify a value-to-lexical-form mapping, I
suspect the WG would have preferred to do canonical forms without
magic, but I don't know of any good way to specify such mappings.)

> If the decimal point is not required, but the canonical form for
> '0.00' is '0.0', what is the number of totalDigits?

> Is it the same as '0'
 
> How many digits are in decimal '0'?

I'm not quite sure how best to interpret your question.  Total digits
is defined as a facet for constraining a value space, not as a direct
characteristic of values.  It constrains the lexical space only
indirectly, the way all facets that work directly on the value space
do (if a lexical form denotes a value excluded from the value space,
it's no longer a legal lexical form).

We can, however, take the 'minimum total digits' of a value V to mean
the smallest value for the total-digits facet which retains V in the
value space, and that is a useful characteristic to know.  If we
wished to associate a 'total digits' characteristic with a particular
lexical form, the only plausible way to do so for XML Schema 1.0 would
be to say that the total digits associated with a given lexical form
is the minimum total digits of its value.  

Section 4.3.11 (as corrected) reads:

    [Definition:] totalDigits controls the maximum number of values in
    the value space of datatypes derived from decimal, by restricting
    it to numbers that are expressible as i × 10^-n where i and n are
    integers such that |i| < 10^totalDigits and 0 <= n <= totalDigits.
    The value of totalDigits must be a positiveInteger.

Since we can express zero as 0 × 10^-0 (i = 0, n = 0), the lowest
legal value of totalDigits which includes zero in the value space is
1, which is the lowest legal value of totalDigits, period.  

So the minimum total digits of the decimal value zero is 1, whether we
express the value using the lexical form "0" or "0.0" or "00000.00".
All these forms map to the same value, and the effect of the
totalDigits facets is defined in terms of values, not in terms of
lexical forms.

I hope this helps.

-C. M. Sperberg-McQueen
 World Wide Web Consortium



PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.