Re: E rcase-RecurseLax.1: Group's occurrence range, (1,unbounded), is not a valid restriction of base group's occurrence range, (1,1).

Hello Richard,

Xerces is right to report that error as I read the spec. To have this 
correct you need to add an empty sequence as below:
<xs:choice>
   <xs:group ref="a-Group" maxOccurs="unbounded"/>
   <xs:sequence/>
</xs:choice>
Otherwise the main choice particle is ignored according to
http://www.w3.org/TR/xmlschema-1/#cos-particle-restrict
See 2, 2.2, 2.2.2, 2.2.2.2.1.
***
2.2 Any pointless occurrences of <sequence>, <choice> or <all> are 
ignored, where pointlessness is understood as follows:
<choice>
One of the following must be true:
2.2.2 All of the following must be true:
2.2.2.1 The particle within which this <choice> appears has {max occurs} 
and {min occurs} of 1.
2.2.2.2 One of the following must be true:
2.2.2.2.1 The <choice>'s {particles} has only one member.
***

and the restricted type is equivalent with only
<xs:group ref="a-Group" maxOccurs="unbounded"/>

that is equivalent with

<xs:choice maxOccurs="unbounded">
   <xs:element ref="a1"/>
   <xs:element ref="a2"/>
   <xs:element ref="a3"/>
</xs:choice>

and this cannot restrict

<xs:choice>
   <xs:group ref="a-Group" maxOccurs="unbounded"/>
   <xs:element ref="b"/>
</xs:choice>

as the choice here has minOccurs and maxOccurs equal with 1.

Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


richard.liu@ubs.com wrote:
> I have the following W3C XML schema:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
> elementFormDefault="qualified" targetNamespace="http://www.ubs.com/
> namespace/wbml-render" xmlns="http://www.ubs.com/namespace/wbml-
> render" xmlns:wbr="http://www.ubs.com/namespace/wbml-render">
>      <xs:element name="a" type="xs:string"/>
>      <xs:element name="a1" type="xs:string"/>
>      <xs:element name="a2" type="xs:string"/>
>      <xs:element name="a3" type="xs:string"/>
>      <xs:element name="b" type="xs:integer"/>
>      <xs:group name="a-Group">
>          <xs:choice>
>              <xs:element ref="a1"/>
>              <xs:element ref="a2"/>
>              <xs:element ref="a3"/>
>          </xs:choice>
>      </xs:group>
>      <xs:complexType name="groupBaseType">
>          <xs:choice>
>              <xs:group ref="a-Group" maxOccurs="unbounded"/>
>              <xs:element ref="b"/>
>          </xs:choice>
>      </xs:complexType>
>      <xs:complexType name="groupRestrictedType">
>          <xs:complexContent>
>              <xs:restriction base="groupBaseType">
>                  <xs:choice>
>                      <xs:group ref="a-Group" maxOccurs="unbounded"/>
>                  </xs:choice>
>              </xs:restriction>
>          </xs:complexContent>
>      </xs:complexType>
>      <xs:complexType name="baseType">
>          <xs:choice>
>              <xs:element ref="a" maxOccurs="unbounded"/>
>              <xs:element ref="b"/>
>          </xs:choice>
>      </xs:complexType>
>      <xs:complexType name="restrictedType">
>          <xs:complexContent>
>              <xs:restriction base="baseType">
>                  <xs:choice>
>                      <xs:element ref="a" maxOccurs="unbounded"/>
>                  </xs:choice>
>              </xs:restriction>
>          </xs:complexContent>
>      </xs:complexType>
> </xs:schema>
> 
> The a-Group is a choice of three elements.  The groupBaseType is a choice of either one to unbounded many instances of a-Group, or of the element b.  I want to define another complex type as a restriction of the groupBaseType.  It should not allow b.
> 
> In Oxygen 7 I receive the following two error messages.
> 
> SystemID: /Applications/oxygen/Untitled1.xsd
> Location: 21:48
> Description: E rcase-RecurseLax.1: Group's occurrence range, (1,unbounded), is not a valid restriction of base group's occurrence range, (1,1).
> URL: http://www.w3.org/TR/xmlschema-1/#rcase-RecurseLax
> 
> SystemID: /Applications/oxygen/Untitled1.xsd
> Location: 21:48
> Description: E derivation-ok-restriction.5.4.2: Error for type 'groupRestrictedType'.  The particle of the type is not a valid restriction of the particle of the base.
> URL: http://www.w3.org/TR/xmlschema-1/#derivation-ok-restriction
> 
> Evidently, based on the second example using baseType and restrictedType, the error messages pertain to the fact that I am using a group, but I don't understand what is wrong.  Can anybody shed light on the error?
> 
> Regards,
> Richard
> 
> Richard R. Liu
> Gundeldingerstr. 171
> CH-4053 Basel
> Switzerland
> 
> Tel. +41 (61) 361 3275
> Email richard.liu@mac.com
> 
> 
> 
> Richard R. Liu
> UBS AG
> VZA2 - 4.140 IVHS-L2V
> Postfach
> CH-8098 Zürich
> Switzerland
> 
> Tel.  +41-44-238 48 82
> Email richard.liu@ubs.com
> 

Received on Monday, 13 February 2006 09:32:09 UTC