At 2000-12-14 09:23, Falk, Alexander wrote:
>3) the CR allows the chaining of substitutionGroups, which is illustrated
>in the following skeleton example (complexTypes and extensions are omitted
>for clarity):
><?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v3.5 NT
>beta 2 build Dec 11 2000 (<http://www.xmlspy.com>http://www.xmlspy.com) by
>Alexander Falk (Altova, Inc.) --> <xsd:schema
>xmlns:xsd="<http://www.w3.org/2000/10/XMLSchema>http://www.w3.org/2000/10/XMLSchema"
>elementFormDefault="qualified"> <xsd:element
>name="a"/> <xsd:element name="b"
>substitutionGroup="a"/> <xsd:element name="c"
>substitutionGroup="b"/> </xsd:schema>
>which results in a schema, where a <b> or <c> element can be substituted
>for any <a> and also a <c> can be substituted for any <b>. If, however, a
>schema author accidentially modifies the definition of element <a> to read
> <xsd:element name="a" substitutionGroup="c"/>
>then we have a cyclic link in the substitutionGroup chain, which should
>perhaps be explicitely forbidden by the schema rec.
Well, I quite agree that careless changes can lead to unfortunate results. But
I am not quite sure whether you are recommending that cycles be forbidding
(a) because they cause implementation problems, or (b) because in real
life we believe they will almost always be the result of error, and
forbidding them
will provide better feedback for more schema authors than allowing them.
If (a), could you expand a little on the implementation issues?
If (b), I guess I need to ask the readers of this list whether they can see
any use for circular substitution groups.
-C. M. Sperberg-McQueen