UPA Question

I have two toolkits (from the same company, BTW) that compile the schema
shown below differently.  One says the schema is fine while the other says
the choice inside grpC/ElementC1 violates the UPA rule.  This example looks
a bit contrived, but it's a reduction from something a lot more complex that
obviously could be re-factored.   On the surface, I can see why one might
think having grpA in choice particles at two levels within ElementC1 makes
the content ambiguous.  But after thinking about it, I don't think that the
content model is ambiguous.  My question is which toolkit is right and which
one gets my bug report?  Thanks!

 

<xs:schema id="XMLSchema1" 

                  targetNamespace="uri:erik:upaQuestion"

                  elementFormDefault="qualified"

                  xmlns="uri:erik:upaQuestion"

                  xmlns:tns="uri:erik:upaQuestion"

                  xmlns:xs="http://www.w3.org/2001/XMLSchema">

 

      <xs:group name="grpA">

            <xs:sequence>

                  <xs:element name="ElementA1"/>

            </xs:sequence>

      </xs:group>

 

      <xs:group name="grpB">

            <xs:choice>

                  <xs:element name="ElementB1" />

                  <xs:group ref="tns:grpA"/>

            </xs:choice>

      </xs:group>

 

      <xs:group name="grpC">

            <xs:sequence>

                  <xs:element name="ElementC1">

                        <xs:complexType>

                              <xs:sequence>

                                    <xs:choice>

                                          <xs:group ref="tns:grpB"/>

                                          <xs:group ref="tns:grpA"/>

                                    </xs:choice>

                              </xs:sequence>

                        </xs:complexType>

                  </xs:element>

            </xs:sequence>

      </xs:group>

 

      <xs:element name="RootElement">

            <xs:complexType>

                  <xs:choice>

                        <xs:group ref="tns:grpC"/>

                        <xs:sequence>

                              <xs:element name="OtherStuff" />

                        </xs:sequence>

                  </xs:choice>

            </xs:complexType>

      </xs:element>

 

</xs:schema>

 

 

Received on Tuesday, 28 November 2006 01:18:33 UTC