Re: Substitution groups question

"Stan Kitsis" <skits@microsoft.com> writes:

> What should be the behavior of schema validators in the following
> example?
>
> <xs:element name="head" type="xs:integer" block="substitution"/>
>
> <xs:element name="member" type="xs:string" substitutionGroup="head"/>
>
> Is "member" element a "potential member" [of head's substitution group]?

Yes.

> [Is <member> element a] non-member of head's substitution group?

Yes.

> Should validators report an error/warning because "member" element's
> type is neither the same nor derived from "head" element's type?

Yes, because the relevant constraint [1] doesn't talk about
membership, just the relevant component properties:

 "If there is a {substitution group affiliation}, the {type
  definition} of the element declaration must be validly derived from
  the {type definition} of the {substitution group affiliation}, given
  the value of the {substitution group exclusions} of the
  {substitution group affiliation}, as defined in . . . Type
  Derivation OK (Simple) (3.14.6)"

> Should they ignore the type checking since "head" element blocks all
> substitutions and therefore "member" element is not a member of
> head's substitution group?

No.

> Should both checks be suspended until the time when "member" is used
> as a part of the substitution group?

No.

ht

[1] http://www.w3.org/TR/xmlschema-1/#e-props-correct
-- 
 Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                     Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
            Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
                   URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]

Received on Saturday, 2 April 2005 15:02:58 UTC