This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
The Schema Component Constraint: Derivation Valid (Restriction, Simple) in section 3.14.6 of Structures was modified in September to require among other things that 3.3 No member of {member type definitions} has the same {name} and {target namespace} as the containing Simple Type Definition itself. What is the meaning of "containing" in this rule? The term 'containing' is used in several ways in Structures. In the usual way, something can be contained in a set, or in a list. XML elements (and attributes, too) are contained by their parent elements. In more schema-specific usage, local components are said to be contained by the component to which they are local. Could "containing Simple Type Definition" mean the <simpleType> element which contains the declaration of another simple type? I can't see how: this is a constraint on components, not on XML. Could "containing Simple Type Definition" mean the simple type to which a particular other simple type is local? If so, what does the constraint mean or do? I do not understand what constraint this clause imposes. If we take 'containing Simple Type Definition' to mean the simple type definition being constrained, the one whose {member type definitions} is referred to (I see no parallels for this usage, but I am out of other candidate interpretations), then clause 3.3 seems to be trying to ensure that no union is a member of itself. But that is already accomplished in the status quo by clause 3.1, which requires that the members not be unions. (The WG has decided to eliminate that constraint, but the proposal to add 3.3 wasn't presented as a way of doing so.) Clause 3.3 also seems to apply only to named (i.e. top-level) types, and not to local types. In schemas derived from schema documents, I suppose it suffices to prevent cycles involving named types, because the XML syntax won't allow us to construct any other kind of membership cycles. But in born-binary schemas, we have no such guarantee. And this is a constraint on components, not on XML. I apologize for not having raised this question when we were considering the proposal to add this clause. But I think this clause urgently requires clarification.
The changes made in January 2006 in connection with unions with other unions as their member types, included the deletion of the relevant item and the insertion of a constraint saying that it must be the case that The Simple Type Definition is not a member of its own transitive membership. with that, this item can be marked closed. As the originator, I am able to confirm that I am satisfied with this resolution. While checking this issue, however, I discovered that the version of the spec showing diffs against 1.0 omits the text of the clause in question, but does not omit its number. There appears to be a problem in (a) the diff markup in the XML source, or (b) the diff group disposition files used to produce the spec, or (c) the diff-group processing stylesheet, or (d) more than one of the above. The editors need to fix those, and I'll leave this item marked 'resolved' instead of 'closed' until it's clear that the problem has been successfully fixed.