Comments on XML Schemas: Datatypes

Nice job. I am very happy to see data types defined in a separate language 
from the rest of schemas and to see that the number of primitives and 
pre-defined generated types have been kept to a minimum. Most of my 
comments are fairly minor and deal with errors in the spec.

-- Ron Bourret

COMMENTS:
=========
Section 2.5.1.1 -- Order
In the first two bullets, change "<=" to "<".

Section 2.5.1.2 -- Bounds
The definition of bounded doesn't work with minExclusive and maxExclusive. 
For example, consider the the set of reals greater than 0 and less than 1. 
This is clearly has upper and lower bounds, but there is no value U in the 
value space for which all values in the value space are less than or equal 
to U, nor is there a value L in the value space for which all values in the 
value space are greater than or equal to L. This can be solved by removing 
the requirement that U be in the value space.

Section 3 -- Built-in datatypes
The issue states that a future revision will provide a mechanism for 
specifying the difference between "null" and "not present". What is the 
difference between these?  I always thought that "null" meant "not 
present".

Section 3.2.6 -- NMTOKEN
a) Change "...restricts the content to a valid XML name." to "... to an XML 
Nmtoken."

b) With respect to the issue, NMTOKEN, ID, etc. should be primitives. This 
allows data types to be factored (I would like regular expressions and 
pictures to be optional) and means that processors can support these types 
without writing a complete regular expression processor.

Section 3.2.9 -- string
Is string intended to be the equivalent of character data in XML (which 
excludes, for example, control characters), or is it really any sequence of 
UCS characters? If the latter, why?  Assuming there is a good reason, there 
should also be a primitive or generated type that matches character data in 
XML.

Section 3.2.9.3 -- Maximum length
What is meant by "absolute maximum length"?  There is no such concept in 
XML.

Section 3.2.10 -- boolean
Booleans should be two-valued. If you want three-valued booleans, create a 
separate type.

Section 3.2.10.1 -- Lexical Representation (boolean)
Please state whether 0/1 are true/false or false/true.

Section 3.2.11 number
What is "the standard mathematical concept of number"?  I assume you mean 
the set of real numbers and, if so, please say so.

Section 3.3.1.1 and 3.3.2.1 -- Lexical Representation (integer and decimal)
Change "optional required" to "optional" or "required".

Section 3.3.3.1 -- Lexical Representation (real)
This is not useful in the real world. "123.45" needs to be supported for 
the US and "123,45" needs to be supported for Europe. Consider allowing 
both as legal lexical representations and stating that thousands separators 
("," in the US and "." in Europe) are not supported.

Section 3.3.6 -- timePeriod
The second bullet point uses "2001-01-05-12.00.00.0000" as an example of a 
time period. How is this a time period?

Appendices D (Pictures) and E (Regular Expressions)
Support for these should be optional.

Received on Tuesday, 8 June 1999 07:09:54 UTC