[Bug 7031] XSD 1.1 doesn't support conversion of xs:sequence to xs:all because xs:all can't contain groups references

http://www.w3.org/Bugs/Public/show_bug.cgi?id=7031


C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Keywords|                            |needsDrafting




--- Comment #3 from C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com>  2009-07-13 18:37:28 ---
It has been pointed out that the minutes of the call referred to in comment 2
are not available to the public; this is to summarize the technical discussion
of this issue in those minutes.  

The meaning of a nested all-group depends on whether all-groups are given the
'SGML interpretation' (all the children, in any order) or the 'interleave
interpretation' (the interleave of the children).  For the SGML interpretation,
(a & (b & c)) != (a & b & c) because (b, a, c) and (c, a, b) are legal in the
latter but not the former.  For the interleave interpretation, the two
expressions are equal.  

In XSD 1.0, all-groups are compatible with both interpretations, because the
differences between them are visible only with maxOccurs > 1 or with nested
subgroups.  

Since the WG has already adopted the interleave interpretation, when relaxing
the constraint on maxOccurs, there is no problem of interpretation, and
allowing references to an all-group from within an all-group does not introduce
any new expressive power in content models, or present any particular
implementation difficulties, for the case when the group reference has
minOccurs = maxOccurs = 1.

Accordingly, the editors have been asked to prepare a wording proposal
specifying that:

1 references to named all-groups may be made from within an all-group.

2 minOccurs and maxOccurs must both be = 1 on that group reference.

3 The language identified by the all-group is as described above.

I note in passing that if we define the meaning of nested all-groups as
described here, it becomes possible in some future revision of the spec to
simplify the treatment of all-group extension:  instead of the existing ad hoc
text and hand-waving about adding items to the all-group, the extension of
all-groups can follow the same pattern as the extension of sequences: 
extending all-group G1 with all-group G2 amounts to defining the extension as
(G1 & G2).    This would also suggest a pattern which could be followed for
or-groups (allow the extension of an or-group G3 by some group G4 to mean (G3 |
G4)); there is some evidence in the comments on XSD 1.0 and 1.1 that some users
would like the ability to add choices to an or-group.  Both of these possible
follow-on steps are described here only for the record; I do not propose that
we make either of these changes to XSD 1.1 at this time (even the purely
editorial one).


-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Monday, 13 July 2009 18:37:37 UTC