This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 11006 - Note in 2.4.1 (Atomic vs List vs Union datatypes)
Summary: Note in 2.4.1 (Atomic vs List vs Union datatypes)
Status: CLOSED FIXED
Alias: None
Product: XML Schema
Classification: Unclassified
Component: Datatypes: XSD Part 2 (show other bugs)
Version: 1.1 only
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: David Ezell
QA Contact: XML Schema comments list
URL:
Whiteboard:
Keywords: decided
Depends on:
Blocks:
 
Reported: 2010-10-11 08:35 UTC by Michael Kay
Modified: 2010-11-25 08:03 UTC (History)
1 user (show)

See Also:


Attachments

Description Michael Kay 2010-10-11 08:35:23 UTC
The Note in question reads:

Note: It is a consequence of constraints normatively specified elsewhere in this document that the ·item type· of a list may be any ·atomic· datatype, or any ·union· datatype whose ·transitive membership· consists solely of ·atomic· datatypes (so a ·list· of a ·union· of ·atomic· datatypes is possible, but not a ·list· of a ·union· of ·lists·). The ·item type· of a list must not itself be a list datatype.

I believe that the item type of a list may also be a union datatype whose transitive membership includes union datatypes. For example it is permissible to have a list whose item type is ABC, where ABC is defined as union(AB, C) and AB is defined as union(A,B), where A, B, and C are atomic. In this case the union type AB is part of the transitive membership of ABC.

Perhaps the note should refer to the "basic membership" of the union type rather than its "transitive membership". 

(Technically the note is not wrong: it says the item type of a list may be A or U, without saying that it will always be either A or U. But I suspect it is intended to be read as saying that the item type will always be either atomic or a union of atomics).
Comment 1 C. M. Sperberg-McQueen 2010-10-11 21:28:55 UTC
Background information:  the note in question was added to resolve bug 3228; the text was adopted 21 September 2007.

I initially had a vague feeling that there may have been some reason related to backward compatibility for saying all members of the transitive membership have to be atomic, and not just the basic members.  But the minutes of 21 September report no such discussion, and section 2.4.1.2 says

    If the item type [of a list] is a union, each of its basic members must be atomic.

So I have concluded that my vague feeling was based on a manufactured memory.  (For the record, the sentence just quoted was added to help resolve issue RQ-120 'improve consistency of terminology'; it was adopted into the text on 25 March 2005.)  My guess is that when the fix for bug 3228 was drafted in 2007, the editors were careless about the distinction between the transitive membership of a union and the union's basic members, and that the fix is, as MK suggests, to replace 'union datatype whose transitive membership consists solely of atomic datatypes' with 'union datatype whose basic members are all atomic datatypes'.
Comment 2 David Ezell 2010-10-15 15:36:41 UTC
Adopt MSM's wording in comment #1.
Comment 3 C. M. Sperberg-McQueen 2010-11-25 00:42:51 UTC
The change described in comment 2 has been made in the (member-accessible) 
status-quo version of the document; to reflect that fact, I'm marking this issue as 
resolved.

[To the originator of the comment:]  If you are content with the disposition of the 
comment, you can as originator close the issue to signal your contentment.  If 
for some reason you are unhappy, please re-open the issue and explain what's 
wrong.  If we don't hear from you in the next two weeks or so, we'll assume that 
you are happy with the outcome.