- From: Pete Cordell <pete++xmlschema-dev@codalogic.com>
- Date: Wed, 24 Apr 2019 13:40:09 +0100
- To: Michael Kay <mike@saxonica.com>
- Cc: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Thanks Michael.
Pete.
--
---------------------------------------------------------------------
Pete Cordell
Codalogic Ltd
Read & write XML in C++, http://www.xml2cpp.com
---------------------------------------------------------------------
On 24/04/2019 13:04, Michael Kay wrote:
>
>
>> On 24 Apr 2019, at 10:54, Pete Cordell
>> <pete++xmlschema-dev@codalogic.com
>> <mailto:pete++xmlschema-dev@codalogic.com>> wrote:
>>
>> Hi All,
>>
>> In XSD 1.0, can an xs:all model group contain a particle that refers
>> to a substitution group?
>
> Yes, it can.
>>
>> In my head I see substitution groups as an alternative way of building
>> xs:choice like constructs. As xs:all only allows Content of
>> (annotation?, element*), by my rule, an element that refers to a
>> substitution Group wouldn't be permitted.
>>
>> Is this the case? If so, (for bonus marks) where does the spec say?
>
> Well, it doesn't say it can't, therefore it can.
>
> More specifically, §3.8.4 says
>
> 3 *If *the {compositor}
> <https://www.w3.org/TR/xmlschema-1/#compositor> is /all/, *then *there
> must be a ·partition·
> <https://www.w3.org/TR/xmlschema-1/#key-partition> of the sequence into
> |n| sub-sequences where |n| is the length of {particles}
> <https://www.w3.org/TR/xmlschema-1/#particles> such that there is a
> one-to-one mapping between the sub-sequences and the {particles}
> <https://www.w3.org/TR/xmlschema-1/#particles> where each sub-sequence
> is ·valid· <https://www.w3.org/TR/xmlschema-1/#key-vn> with respect to
> the corresponding particle as defined in Element Sequence Locally Valid
> (Particle) (§3.9.4) <https://www.w3.org/TR/xmlschema-1/#cvc-particle>.
>
> and §3.9.4 clause 2.3.3 allows members of the substitution group to
> match an element particle.
>
> Michael Kay
> Saxonica
Received on Wednesday, 24 April 2019 12:40:35 UTC