NMTOKENS definition - contradiction?

The XML schema spec (http://www.w3.org/TR/xmlschema-2/#NMTOKENS) defines
NMTOKENS:
"NMTOKENS represents the NMTOKENS attribute type from [XML 1.0
Recommendation (Second Edition)]."

The XML spec referred to says that "values of type NMTOKENS must match
[the] Nmtokens [production]." (at
http://www.w3.org/TR/2000/WD-xml-2e-20000814#nmtok), essentially defining
NMTOKENS via the following production: (at
http://www.w3.org/TR/2000/WD-xml-2e-20000814#NT-Nmtokens)
Nmtokens ::= Nmtoken (#x20 Nmtoken)*

The XML schema spec (still http://www.w3.org/TR/xmlschema-2/#NMTOKENS)
further defines the lexical space of NMTOKENS:
"The lexical space of NMTOKENS is the set of white space separated tokens,
each of which is in the lexical space of NMTOKEN."


The differences:

1. The XML spec allows only a single space and not general whitespace
between tokens (a change on April 9, 2000, for rationale see
http://www.w3.org/XML/xml-19980210-errata#E62).

2. The XML spec allows one or more tokens (minLength="1"), the schema spec
seems to allow zero or more tokens (minLength="0").

3. The XML spec does not seem to allow any leading or trailing whitespace,
the schema spec seems to allow arbitrary leading and trailing whitespace.


A suggestion, if we are correct that the spec is a contradiction:
1. Change "NMTOKENS represents       the NMTOKENS attribute type" from XML
   to     "NMTOKENS is a superset of the NMTOKENS attribute type" from XML
2. Remove this line from the definition and make it non-normative.

Received on Tuesday, 28 November 2000 12:59:22 UTC